Class 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.
    • Constructor Detail

      • NullableIndex

        public NullableIndex​(Model model)
    • Method Detail

      • 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 the InputTrait or ClientOptionalTrait, 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.