Class OperationIndex
- java.lang.Object
-
- software.amazon.smithy.model.knowledge.OperationIndex
-
- All Implemented Interfaces:
KnowledgeIndex
public final class OperationIndex extends java.lang.Object implements KnowledgeIndex
Index of operation IDs to their resolved input, output, and error structures.This index performs no validation that the input, output, and errors actually reference valid structures. Such operation inputs, outputs, and errors may be discarded as if they do not exist.
-
-
Constructor Summary
Constructors Constructor Description OperationIndex(Model model)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description StructureShape
expectInputShape(ToShapeId operation)
Gets the input shape of an operation, and returns Smithy's Unit type trait if the operation has no meaningful input.StructureShape
expectOutputShape(ToShapeId operation)
Gets the output shape of an operation, and returns Smithy's unit type trait if the operation has no meaningful output.java.util.Set<Shape>
getErrorBindings(ToShapeId error)
Gets all the operations and services that bind the given shape as an error.java.util.List<StructureShape>
getErrors(ToShapeId operation)
Gets the list of error structures defined on an operation.java.util.List<StructureShape>
getErrors(ToShapeId service, ToShapeId operation)
Gets the list of error structures defined on an operation, including any common errors inherited from a service shape.java.util.Optional<StructureShape>
getInput(ToShapeId operation)
Gets the optional input structure of an operation, and returns an empty optional if the input targetssmithy.api#Unit
.java.util.Set<OperationShape>
getInputBindings(ToShapeId input)
Gets all the operations that bind the given shape as input.java.util.Map<java.lang.String,MemberShape>
getInputMembers(ToShapeId operation)
Gets the input members of an operation as a map of member names toMemberShape
.java.util.Optional<StructureShape>
getInputShape(ToShapeId operation)
Gets the optional input structure of an operation.java.util.Optional<StructureShape>
getOutput(ToShapeId operation)
Gets the optional output structure of an operation, and returns an empty optional if the output targetssmithy.api#Unit
.java.util.Set<OperationShape>
getOutputBindings(ToShapeId output)
Gets all the operations that bind the given shape as output.java.util.Map<java.lang.String,MemberShape>
getOutputMembers(ToShapeId operation)
Gets the output members of an operation as a map of member names toMemberShape
.java.util.Optional<StructureShape>
getOutputShape(ToShapeId operation)
Gets the optional output structure of an operation.boolean
isInputStructure(ToShapeId structureId)
Returns true if the given structure is used as input by any operation in the model or is marked with the input trait.boolean
isOutputStructure(ToShapeId structureId)
Returns true if the given structure is used as output by any operation in the model or is marked with the output trait.static OperationIndex
of(Model model)
-
-
-
Constructor Detail
-
OperationIndex
public OperationIndex(Model model)
-
-
Method Detail
-
of
public static OperationIndex of(Model model)
-
getInput
public java.util.Optional<StructureShape> getInput(ToShapeId operation)
Gets the optional input structure of an operation, and returns an empty optional if the input targetssmithy.api#Unit
.- Parameters:
operation
- Operation to get the input structure of.- Returns:
- Returns the optional operation input structure.
-
getInputShape
public java.util.Optional<StructureShape> getInputShape(ToShapeId operation)
Gets the optional input structure of an operation.Operations in the model always have input. This operation will only return an empty optional if the given operation shape cannot be found in the model or if it is not an operation shape.
- Parameters:
operation
- Operation to get the input structure of.- Returns:
- Returns the optional operation input structure.
-
expectInputShape
public StructureShape expectInputShape(ToShapeId operation)
Gets the input shape of an operation, and returns Smithy's Unit type trait if the operation has no meaningful input.In general, this method should be used instead of
getInputShape(ToShapeId)
when getting the input of operations that are known to exist.- Parameters:
operation
- Operation to get the input of.- Returns:
- Returns the input shape of the operation.
- Throws:
ExpectationNotMetException
- if the operation shape cannot be found.
-
getInputMembers
public java.util.Map<java.lang.String,MemberShape> getInputMembers(ToShapeId operation)
Gets the input members of an operation as a map of member names toMemberShape
.The return map is ordered using the same order defined in the model. If the operation has no input, an empty map is returned.
- Parameters:
operation
- Operation to get the input members of.- Returns:
- Returns the map of members, or an empty map.
-
isInputStructure
public boolean isInputStructure(ToShapeId structureId)
Returns true if the given structure is used as input by any operation in the model or is marked with the input trait.- Parameters:
structureId
- Structure to check.- Returns:
- Returns true if the structure is used as input.
-
getInputBindings
public java.util.Set<OperationShape> getInputBindings(ToShapeId input)
Gets all the operations that bind the given shape as input.- Parameters:
input
- The structure that may be used as input.- Returns:
- Returns a set of operations that bind the given input shape.
-
getOutput
public java.util.Optional<StructureShape> getOutput(ToShapeId operation)
Gets the optional output structure of an operation, and returns an empty optional if the output targetssmithy.api#Unit
.- Parameters:
operation
- Operation to get the output structure of.- Returns:
- Returns the optional operation output structure.
-
getOutputShape
public java.util.Optional<StructureShape> getOutputShape(ToShapeId operation)
Gets the optional output structure of an operation.Operations in the model always have output. This operation will only return an empty optional if the given operation shape cannot be found in the model or if it is not an operation shape.
- Parameters:
operation
- Operation to get the output structure of.- Returns:
- Returns the optional operation output structure.
-
expectOutputShape
public StructureShape expectOutputShape(ToShapeId operation)
Gets the output shape of an operation, and returns Smithy's unit type trait if the operation has no meaningful output.In general, this method should be used instead of
getOutputShape(ToShapeId)
when getting the output of operations that are known to exist.- Parameters:
operation
- Operation to get the output of.- Returns:
- Returns the output shape of the operation.
- Throws:
ExpectationNotMetException
- if the operation shape cannot be found.
-
getOutputMembers
public java.util.Map<java.lang.String,MemberShape> getOutputMembers(ToShapeId operation)
Gets the output members of an operation as a map of member names toMemberShape
.The return map is ordered using the same order defined in the model. If the operation has no output, an empty map is returned.
- Parameters:
operation
- Operation to get the output members of.- Returns:
- Returns the map of members, or an empty map.
-
isOutputStructure
public boolean isOutputStructure(ToShapeId structureId)
Returns true if the given structure is used as output by any operation in the model or is marked with the output trait.- Parameters:
structureId
- Structure to check.- Returns:
- Returns true if the structure is used as output.
-
getOutputBindings
public java.util.Set<OperationShape> getOutputBindings(ToShapeId output)
Gets all the operations that bind the given shape as output.- Parameters:
output
- The structure that may be used as output.- Returns:
- Returns a set of operations that bind the given output shape.
-
getErrors
public java.util.List<StructureShape> getErrors(ToShapeId operation)
Gets the list of error structures defined on an operation.An empty list is returned if the operation is not found or has no errors.
- Parameters:
operation
- Operation to get the errors of.- Returns:
- Returns the list of error structures, or an empty list.
- See Also:
to get errors that inherit from a service.
-
getErrors
public java.util.List<StructureShape> getErrors(ToShapeId service, ToShapeId operation)
Gets the list of error structures defined on an operation, including any common errors inherited from a service shape.An empty list is returned if the operation is not found or has no errors.
- Parameters:
service
- Service shape to inherit common errors from.operation
- Operation to get the errors of.- Returns:
- Returns the list of error structures, or an empty list.
-
getErrorBindings
public java.util.Set<Shape> getErrorBindings(ToShapeId error)
Gets all the operations and services that bind the given shape as an error.- Parameters:
error
- The structure that may be used as an error.- Returns:
- Returns a set of operations and services that bind the given error shape.
-
-