Class NullableIndex
- java.lang.Object
-
- software.amazon.smithy.model.knowledge.NullableIndex
-
- All Implemented Interfaces:
KnowledgeIndex
- Direct Known Subclasses:
BoxIndex
public class NullableIndex extends java.lang.Object implements KnowledgeIndex
An index that checks if a member is nullable.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
NullableIndex.CheckMode
Defines the type of model consumer to assume when determining if a member should be considered nullable or always present.
-
Constructor Summary
Constructors Constructor Description NullableIndex(Model model)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static 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.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
of(Model model)
-
-
-
Constructor Detail
-
NullableIndex
public NullableIndex(Model model)
-
-
Method Detail
-
of
public static NullableIndex of(Model model)
-
isMemberNullable
public boolean isMemberNullable(MemberShape member)
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(MemberShape, CheckMode)
-
isMemberNullable
public boolean isMemberNullable(MemberShape member, NullableIndex.CheckMode checkMode)
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 public final boolean isNullable(ToShapeId shapeId)
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
public 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).- 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
public static 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.- 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.
-
-