Class NullableIndex
java.lang.Object
software.amazon.smithy.model.knowledge.NullableIndex
- All Implemented Interfaces:
KnowledgeIndex
- Direct Known Subclasses:
BoxIndex
An index that checks if a member is nullable.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
Defines the type of model consumer to assume when determining if a member should be considered nullable or always present. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
isDefaultZeroValueOfTypeInV1
(Node defaultValue, ShapeType targetType) Detects if the given node value equals the default value of the given shape type based on Smithy 1.0 semantics.boolean
isMemberNullable
(MemberShape member) Checks if a member is nullable usingNullableIndex.CheckMode.CLIENT
.boolean
isMemberNullable
(MemberShape member, NullableIndex.CheckMode checkMode) Checks if a member is nullable using v2 nullability rules.final boolean
isNullable
(ToShapeId shapeId) Deprecated.static boolean
isShapeSetToDefaultZeroValueInV1
(MemberShape member, Shape target) Detects if the given member is configured to use the zero value for the target shape using Smithy 1.0 semantics (that is, it targets a number shape other than bigInteger or bigDecimal and set to 0; or it targets a boolean shape and is set to false).static NullableIndex
-
Constructor Details
-
NullableIndex
-
-
Method Details
-
of
-
isMemberNullable
Checks if a member is nullable usingNullableIndex.CheckMode.CLIENT
.- Parameters:
member
- Member to check.- Returns:
- Returns true if the member is optional in non-authoritative consumers of the model like clients.
- See Also:
-
isMemberNullable
Checks if a member is nullable using v2 nullability rules.A
checkMode
parameter is required to declare what kind of model consumer is checking if the member is optional. The authoritative consumers like servers do not need to honor theInputTrait
orClientOptionalTrait
, while non-authoritative consumers like clients must honor these traits.- Parameters:
member
- Member to check.checkMode
- The mode used when checking if the member is considered nullable.- Returns:
- Returns true if the member is optional.
-
isNullable
Deprecated.Checks if the given shape is optional using Smithy IDL 1.0 semantics.This method does not return the same values that are returned by
isMemberNullable(MemberShape)
. This method uses 1.0 model semantics and attempts to detect when a model has been passed though model assembler upgrades to provide the most accurate v1 nullability result.Use
isMemberNullable(MemberShape)
to check using Smithy IDL 2.0 semantics that take required, default, and other traits into account with no special 1.0 handling.- Parameters:
shapeId
- Shape or shape ID to check.- Returns:
- Returns true if the shape is nullable.
-
isShapeSetToDefaultZeroValueInV1
Detects if the given member is configured to use the zero value for the target shape using Smithy 1.0 semantics (that is, it targets a number shape other than bigInteger or bigDecimal and set to 0; or it targets a boolean shape and is set to false).- Parameters:
member
- Member to check.target
- Shape target to check.- Returns:
- Returns true if the member has a default trait set to a v1 zero value.
-
isDefaultZeroValueOfTypeInV1
Detects if the given node value equals the default value of the given shape type based on Smithy 1.0 semantics.- Parameters:
defaultValue
- Value to check.targetType
- Shape type to check against.- Returns:
- Returns true if the value is the v1 zero value of the type.
-