Enum Class SmithyIdlComponentOrder

java.lang.Object
java.lang.Enum<SmithyIdlComponentOrder>
software.amazon.smithy.model.shapes.SmithyIdlComponentOrder
All Implemented Interfaces:
Serializable, Comparable<SmithyIdlComponentOrder>, Constable, SmithyIdlSerializationOrder

public enum SmithyIdlComponentOrder extends Enum<SmithyIdlComponentOrder> implements SmithyIdlSerializationOrder
Defines how shapes, traits, and metadata are sorted when serializing a model with SmithyIdlModelSerializer.

This enum provides the built-in orderings. For custom ordering logic, implement SmithyIdlSerializationOrder directly and pass it to SmithyIdlModelSerializer.Builder.componentOrder(SmithyIdlSerializationOrder).

  • Enum Constant Details

    • ALPHA_NUMERIC

      public static final SmithyIdlComponentOrder ALPHA_NUMERIC
      Sort shapes, traits, and metadata alphabetically. Member order, however, is not sorted.
    • SOURCE_LOCATION

      public static final SmithyIdlComponentOrder SOURCE_LOCATION
      Sort shapes, traits, and metadata by source location, persisting their original placement when parsed.
    • PREFERRED

      public static final SmithyIdlComponentOrder PREFERRED
      Reorganizes shapes based on a preferred ordering of shapes, and alphanumeric traits and metadata.

      Shapes are ordered as follows:

      • Trait definitions
      • Services
      • Resources
      • Operations
      • Structures
      • Unions
      • Lists
      • Maps
      • Finally, alphabetically by shape type.
  • Method Details

    • values

      public static SmithyIdlComponentOrder[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static SmithyIdlComponentOrder valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • shapeComparator

      public Comparator<Shape> shapeComparator()
      Description copied from interface: SmithyIdlSerializationOrder
      Returns a comparator used to sort shapes within a namespace file.
      Specified by:
      shapeComparator in interface SmithyIdlSerializationOrder
      Returns:
      Comparator for ordering shapes.
    • traitComparator

      public Comparator<Trait> traitComparator()
      Description copied from interface: SmithyIdlSerializationOrder
      Returns a comparator used to sort traits applied to a shape.

      The default implementation sorts traits alphabetically by their shape ID. Custom implementations that use source-location-based ordering should consider overriding this method to also sort traits by source location for consistency.

      Specified by:
      traitComparator in interface SmithyIdlSerializationOrder
      Returns:
      Comparator for ordering traits.
    • metadataComparator

      public Comparator<Map.Entry<String,Node>> metadataComparator()
      Description copied from interface: SmithyIdlSerializationOrder
      Returns a comparator used to sort metadata entries.

      The default implementation sorts metadata alphabetically by key.

      Specified by:
      metadataComparator in interface SmithyIdlSerializationOrder
      Returns:
      Comparator for ordering metadata entries.