Class Model
- All Implemented Interfaces:
 ToSmithyBuilder<Model>
- 
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classBuilder used to create a Model. - 
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringSpecifies the highest supported version of the IDL. - 
Method Summary
Modifier and TypeMethodDescriptionstatic ModelAssemblerAssembles and validates a Smithy model from files, nodes, and other disparate sources.static ModelAssemblerassembler(ClassLoader classLoader) Creates aModelAssemblerthat is configured to discover traits, validators, and built-in validators using the givenClassLoader.static Model.Builderbuilder()Builds an explicitly configured Smithy model.booleanexpectShape(ShapeId id) <T extends Shape>
TexpectShape(ShapeId id, Class<T> type) Gets a set of every trait shape ID that is used in the model.Gets an immutable set of all bigDecimals in the Model.getBigDecimalShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all bigDecimals in the Model that have a specific trait.Gets an immutable set of all bigIntegers in the Model.getBigIntegerShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all bigIntegers in the Model that have a specific trait.Gets an immutable set of all blobs in the Model.getBlobShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all blobs in the Model that have a specific trait.Gets an immutable set of all booleans in the Model.getBooleanShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all booleans in the Model that have a specific trait.Gets an immutable set of all bytes in the Model.getByteShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all bytes in the Model that have a specific trait.Gets an immutable set of all documents in the Model.getDocumentShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all documents in the Model that have a specific trait.Gets an immutable set of all doubles in the Model.getDoubleShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all doubles in the Model that have a specific trait.Gets an immutable set of all enums in the Model.getEnumShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all enums in the Model that have a specific trait.Gets an immutable set of all floats in the Model.getFloatShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all floats in the Model that have a specific trait.Gets an immutable set of all integers in the Model.getIntegerShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all integers in the Model that have a specific trait.Gets an immutable set of all intEnums in the Model.getIntEnumShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all intEnums in the Model that have a specific trait.<T extends KnowledgeIndex>
TgetKnowledge(Class<T> type) Deprecated.<T extends KnowledgeIndex>
TgetKnowledge(Class<T> type, Function<Model, T> constructor) Gets a computed "knowledge index" of a specific type for the model and caches it for subsequent retrieval.Gets an immutable set of all lists in the Model.getListShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all lists in the Model that have a specific trait.Gets an immutable set of all longs in the Model.getLongShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all longs in the Model that have a specific trait.Gets an immutable set of all maps in the Model.getMapShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all maps in the Model that have a specific trait.Gets an immutable set of all members in the Model.getMemberShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all members in the Model that have a specific trait.getMetadataProperty(String name) Gets a metadata property by namespace and name.Gets an immutable set of all operations in the Model.getOperationShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all operations in the Model that have a specific trait.Gets an immutable set of all resources in the Model.getResourceShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all resources in the Model that have a specific trait.Gets an immutable set of all services in the Model.getServiceShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all services in the Model that have a specific trait.Deprecated.getSetShapesWithTrait(Class<? extends Trait> trait) Deprecated.Gets the immutable set ofShapeIdin the model.getShapesWithTrait(Class<? extends Trait> trait) Gets a set of shapes in the model marked with a specific trait.getShapesWithTrait(ToShapeId trait) Gets a set of shapes in the model marked with a specific trait.Gets an immutable set of all shorts in the Model.getShortShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all shorts in the Model that have a specific trait.Gets an immutable set of all strings in the Model.getStringShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all strings in the Model that have a specific trait.Gets an immutable set of all structures in the Model.getStructureShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all structures in the Model that have a specific trait.Gets an immutable set of all timestamps in the Model.getTimestampShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all timestamps in the Model that have a specific trait.getTraitDefinition(ToShapeId traitId) Gets the trait definition of a specific trait shape ID.Gets an immutable set of all unions in the Model.getUnionShapesWithTrait(Class<? extends Trait> trait) Gets an immutable set of all unions in the Model that have a specific trait.inthashCode()booleanisTraitApplied(Class<? extends Trait> trait) Returns true if the given trait shape ID was used in the model.shapes()Gets a stream ofShapes in the index.Gets a stream of shapes in the index of a specific typeT.Take this object and create a builder that contains all of the current property values of this object.toSet()Converts the model to an immutable Set of shapes.Gets an immutable Set of shapes of a specific type. 
- 
Field Details
- 
MODEL_VERSION
Specifies the highest supported version of the IDL.- See Also:
 
 
 - 
 - 
Method Details
- 
builder
Builds an explicitly configured Smithy model.Note that the builder does not validate the correctness of the model. Use the
assembler()method to build and validate a model.- Returns:
 - Returns a model builder.
 - See Also:
 
 - 
assembler
Assembles and validates a Smithy model from files, nodes, and other disparate sources.- Returns:
 - Returns a model assembler.
 
 - 
assembler
Creates aModelAssemblerthat is configured to discover traits, validators, and built-in validators using the givenClassLoader.- Parameters:
 classLoader- Class loader used to discover services.- Returns:
 - Returns a model assembler.
 
 - 
getMetadataProperty
Gets a metadata property by namespace and name.- Parameters:
 name- Name of the property to retrieve.- Returns:
 - Returns the optional property.
 
 - 
getMetadata
- Returns:
 - Gets the unmodifiable metadata of the model across all namespaces.
 
 - 
getTraitDefinition
Gets the trait definition of a specific trait shape ID.- Parameters:
 traitId- ID of the shape to get the trait definition of.- Returns:
 - Returns the optionally found trait definition.
 
 - 
getShapesWithTrait
Gets a set of shapes in the model marked with a specific trait.- Parameters:
 trait- Trait shape ID to look for on shapes.- Returns:
 - Returns the immutable set of matching shapes.
 
 - 
getShapeIds
Gets the immutable set ofShapeIdin the model.- Returns:
 - Returns the shape IDs.
 
 - 
getShapesWithTrait
Gets a set of shapes in the model marked with a specific trait.The result is an exact match on trait classes and does not utilize any kind of polymorphic instance of checks.
- Parameters:
 trait- Trait class to look for on shapes.- Returns:
 - Returns the immutable set of matching shapes.
 
 - 
getBigDecimalShapes
Gets an immutable set of all bigDecimals in the Model.- Returns:
 - Returns the Set of 
bigDecimalss. 
 - 
getBigDecimalShapesWithTrait
Gets an immutable set of all bigDecimals in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
bigdecimals that have a specific trait. 
 - 
getBigIntegerShapes
Gets an immutable set of all bigIntegers in the Model.- Returns:
 - Returns the Set of 
bigIntegerss. 
 - 
getBigIntegerShapesWithTrait
Gets an immutable set of all bigIntegers in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
bigIntegerss that have a specific trait. 
 - 
getBlobShapes
Gets an immutable set of all blobs in the Model.- Returns:
 - Returns the Set of 
blobs. 
 - 
getBlobShapesWithTrait
Gets an immutable set of all blobs in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
blobs that have a specific trait. 
 - 
getBooleanShapes
Gets an immutable set of all booleans in the Model.- Returns:
 - Returns the Set of 
booleans. 
 - 
getBooleanShapesWithTrait
Gets an immutable set of all booleans in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
booleans that have a specific trait. 
 - 
getByteShapes
Gets an immutable set of all bytes in the Model.- Returns:
 - Returns the Set of 
bytes. 
 - 
getByteShapesWithTrait
Gets an immutable set of all bytes in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
bytes that have a specific trait. 
 - 
getDocumentShapes
Gets an immutable set of all documents in the Model.- Returns:
 - Returns the Set of 
documents. 
 - 
getDocumentShapesWithTrait
Gets an immutable set of all documents in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
documents that have a specific trait. 
 - 
getDoubleShapes
Gets an immutable set of all doubles in the Model.- Returns:
 - Returns the Set of 
doubles. 
 - 
getDoubleShapesWithTrait
Gets an immutable set of all doubles in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
doubles that have a specific trait. 
 - 
getFloatShapes
Gets an immutable set of all floats in the Model.- Returns:
 - Returns the Set of 
floats. 
 - 
getFloatShapesWithTrait
Gets an immutable set of all floats in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
floats that have a specific trait. 
 - 
getIntegerShapes
Gets an immutable set of all integers in the Model.- Returns:
 - Returns the Set of 
integers. 
 - 
getIntegerShapesWithTrait
Gets an immutable set of all integers in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
integers that have a specific trait. 
 - 
getIntEnumShapes
Gets an immutable set of all intEnums in the Model.- Returns:
 - Returns the Set of 
intEnums. 
 - 
getIntEnumShapesWithTrait
Gets an immutable set of all intEnums in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
intEnums that have a specific trait. 
 - 
getListShapes
Gets an immutable set of all lists in the Model.- Returns:
 - Returns the Set of 
lists. 
 - 
getListShapesWithTrait
Gets an immutable set of all lists in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
lists that have a specific trait. 
 - 
getLongShapes
Gets an immutable set of all longs in the Model.- Returns:
 - Returns the Set of 
longs. 
 - 
getLongShapesWithTrait
Gets an immutable set of all longs in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
longs that have a specific trait. 
 - 
getMapShapes
Gets an immutable set of all maps in the Model.- Returns:
 - Returns the Set of 
maps. 
 - 
getMapShapesWithTrait
Gets an immutable set of all maps in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
maps that have a specific trait. 
 - 
getMemberShapes
Gets an immutable set of all members in the Model.- Returns:
 - Returns the Set of 
members. 
 - 
getMemberShapesWithTrait
Gets an immutable set of all members in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
members that have a specific trait. 
 - 
getOperationShapes
Gets an immutable set of all operations in the Model.- Returns:
 - Returns the Set of 
operations. 
 - 
getOperationShapesWithTrait
Gets an immutable set of all operations in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
operations that have a specific trait. 
 - 
getResourceShapes
Gets an immutable set of all resources in the Model.- Returns:
 - Returns the Set of 
resources. 
 - 
getResourceShapesWithTrait
Gets an immutable set of all resources in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
resources that have a specific trait. 
 - 
getServiceShapes
Gets an immutable set of all services in the Model.- Returns:
 - Returns the Set of 
services. 
 - 
getServiceShapesWithTrait
Gets an immutable set of all services in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
services that have a specific trait. 
 - 
getSetShapes
Deprecated.Gets an immutable set of all sets in the Model.- Returns:
 - Returns the Set of 
sets. 
 - 
getSetShapesWithTrait
Deprecated.Gets an immutable set of all sets in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
sets that have a specific trait. 
 - 
getShortShapes
Gets an immutable set of all shorts in the Model.- Returns:
 - Returns the Set of 
shorts. 
 - 
getShortShapesWithTrait
Gets an immutable set of all shorts in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
shorts that have a specific trait. 
 - 
getStringShapes
Gets an immutable set of all strings in the Model.- Returns:
 - Returns the Set of 
strings. 
 - 
getStringShapesWithTrait
Gets an immutable set of all strings in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
strings that have a specific trait. 
 - 
getEnumShapes
Gets an immutable set of all enums in the Model.- Returns:
 - Returns the Set of 
enums. 
 - 
getEnumShapesWithTrait
Gets an immutable set of all enums in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
enums that have a specific trait. 
 - 
getStructureShapes
Gets an immutable set of all structures in the Model.- Returns:
 - Returns the Set of 
structures. 
 - 
getStructureShapesWithTrait
Gets an immutable set of all structures in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
structures that have a specific trait. 
 - 
getTimestampShapes
Gets an immutable set of all timestamps in the Model.- Returns:
 - Returns the Set of 
timestamps. 
 - 
getTimestampShapesWithTrait
Gets an immutable set of all timestamps in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
timestamps that have a specific trait. 
 - 
getUnionShapes
Gets an immutable set of all unions in the Model.- Returns:
 - Returns the Set of 
unions. 
 - 
getUnionShapesWithTrait
Gets an immutable set of all unions in the Model that have a specific trait.- Parameters:
 trait- The exact trait class to look for on shapes.- Returns:
 - Returns the set of 
unions that have a specific trait. 
 - 
getAppliedTraits
Gets a set of every trait shape ID that is used in the model.- Returns:
 - Returns the shape IDs of traits used in the model.
 
 - 
isTraitApplied
Returns true if the given trait shape ID was used in the model.- Parameters:
 trait- The trait class to check.- Returns:
 - Returns true if the trait was used in the model.
 
 - 
getShape
- Parameters:
 id- Shape to retrieve by ID.- Returns:
 - Returns the optional shape.
 
 - 
expectShape
- Parameters:
 id- Shape to retrieve by ID.- Returns:
 - Returns the shape.
 - Throws:
 ExpectationNotMetException- if the shape is not found.
 - 
expectShape
Attempts to retrieve aShapebyShapeIdand throws if not found or if the shape is not of the expected type.- Type Parameters:
 T- Expected shape type.- Parameters:
 id- Shape to retrieve by ID.type- Shape type to expect and convert to.- Returns:
 - Returns the shape.
 - Throws:
 ExpectationNotMetException- if the shape is not found or is not the expected type.
 - 
shapes
Gets a stream ofShapes in the index.- Returns:
 - Returns a stream of shapes.
 
 - 
shapes
Gets a stream of shapes in the index of a specific typeT.The provided shapeType class must exactly match the class of a shape in the model in order to be returned from this method; that is, the provided class must be a concrete subclass of
Shapeand not an abstract class likeNumberShape.- Type Parameters:
 T- Shape type to stream from the index.- Parameters:
 shapeType- Shape typeTto retrieve.- Returns:
 - A stream of shapes of 
TmatchingshapeType. 
 - 
toSet
Gets an immutable Set of shapes of a specific type.- Type Parameters:
 T- Shape type to get from the index.- Parameters:
 shapeType- Type of shape to get a set of.- Returns:
 - Returns an unmodifiable set of shapes.
 
 - 
toSet
Converts the model to an immutable Set of shapes.- Returns:
 - Returns an unmodifiable set of shapes.
 
 - 
equals
 - 
hashCode
public int hashCode() - 
toBuilder
Description copied from interface:ToSmithyBuilderTake this object and create a builder that contains all of the current property values of this object.- Specified by:
 toBuilderin interfaceToSmithyBuilder<Model>- Returns:
 - a builder for type T
 
 - 
getKnowledge
Deprecated.This method is deprecated. Use theofmethod of theKnowledgeIndexyou wish to create instead.- Type Parameters:
 T- The type of knowledge index to retrieve.- Parameters:
 type- Type of knowledge index to retrieve.- Returns:
 - Returns the computed knowledge index.
 
 - 
getKnowledge
Gets a computed "knowledge index" of a specific type for the model and caches it for subsequent retrieval.This method should not typically be called directly because KnowledgeIndex classes should all provide a public static
ofmethod that accepts aModeland returns an instance of the index by invokinggetKnowledge.If a
KnowledgeIndexof the given type has not yet been computed, one will be created using the providedconstructorfunction that accepts aModel. Computed knowledge indexes are cached and returned on subsequent retrievals.- Type Parameters:
 T- The type of knowledge index to retrieve.- Parameters:
 type- Type of knowledge index to retrieve.constructor- The method used to createtype.- Returns:
 - Returns the computed knowledge index.
 
 
 -