Class TraceFile
- java.lang.Object
-
- software.amazon.smithy.codegen.core.trace.TraceFile
-
- All Implemented Interfaces:
ToNode
,ToSmithyBuilder<TraceFile>
public final class TraceFile extends java.lang.Object implements ToNode, ToSmithyBuilder<TraceFile>
Class that represents the contents of a Smithy trace file. TraceFile's require a smithyTrace file version number,TraceMetadata
, andMap
fromShapeId
to a List ofShapeLink
objects. TraceFile's optionally have aArtifactDefinitions
object. TraceFile handles parsing, serialization and deserialization of a Smithy trace file.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TraceFile.Builder
Builder for constructing TraceFile's from scratch.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DEFINITIONS_TEXT
static java.lang.String
METADATA_TEXT
static java.lang.String
SHAPES_TEXT
static java.lang.String
SMITHY_TRACE_TEXT
static java.lang.String
SMITHY_TRACE_VERSION
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static TraceFile.Builder
builder()
static TraceFile
fromNode(Node value)
Converts ObjectNode into TraceFile.java.util.Optional<ArtifactDefinitions>
getArtifactDefinitions()
Gets this TraceFile's Definitions.TraceMetadata
getMetadata()
Gets this TraceFile's TraceMetadata.java.util.Map<ShapeId,java.util.List<ShapeLink>>
getShapes()
Gets this TraceFile's Shapes map.java.lang.String
getSmithyTrace()
Gets this TraceFile's smithyTrace.TraceFile.Builder
toBuilder()
Take this object and create a builder that contains all of the current property values of this object.ObjectNode
toNode()
Converts TraceFile instance variables into an ObjectNode.void
validateModel(Model model)
Parses model and determines whether the trace file object meets the specs of the model by checking if the trace file contains all the ShapeIds in the model and the model contains all the ShapeIDs in the trace file.
-
-
-
Field Detail
-
SMITHY_TRACE_TEXT
public static final java.lang.String SMITHY_TRACE_TEXT
- See Also:
- Constant Field Values
-
METADATA_TEXT
public static final java.lang.String METADATA_TEXT
- See Also:
- Constant Field Values
-
DEFINITIONS_TEXT
public static final java.lang.String DEFINITIONS_TEXT
- See Also:
- Constant Field Values
-
SHAPES_TEXT
public static final java.lang.String SHAPES_TEXT
- See Also:
- Constant Field Values
-
SMITHY_TRACE_VERSION
public static final java.lang.String SMITHY_TRACE_VERSION
- See Also:
- Constant Field Values
-
-
Method Detail
-
fromNode
public static TraceFile fromNode(Node value)
Converts ObjectNode into TraceFile.- Parameters:
value
- an ObjectNode that represents the entire trace file.- Returns:
- TraceFile produced from an ObjectNode.
-
builder
public static TraceFile.Builder builder()
-
toNode
public ObjectNode toNode()
Converts TraceFile instance variables into an ObjectNode.
-
validateModel
public void validateModel(Model model)
Parses model and determines whether the trace file object meets the specs of the model by checking if the trace file contains all the ShapeIds in the model and the model contains all the ShapeIDs in the trace file.- Parameters:
model
- the Smithy model to validate the trace file against.- Throws:
ExpectationNotMetException
- if model contains a ShapeID not in TraceFile or TraceFile contains a ShapeID not in model.
-
getSmithyTrace
public java.lang.String getSmithyTrace()
Gets this TraceFile's smithyTrace. The smithyTraceString
contains the Smithy trace file version number.- Returns:
- a String representing trace file ID.
-
getMetadata
public TraceMetadata getMetadata()
Gets this TraceFile's TraceMetadata.- Returns:
- a TraceMetadata object.
-
getArtifactDefinitions
public java.util.Optional<ArtifactDefinitions> getArtifactDefinitions()
Gets this TraceFile's Definitions.- Returns:
- an Optional Definitions container that contains this TraceFile's Definition or isEmpty if Definition's has not been set.
-
getShapes
public java.util.Map<ShapeId,java.util.List<ShapeLink>> getShapes()
Gets this TraceFile's Shapes map. The shapesMap
provides a mapping of absolute Smithy shape IDs to a list of shape link objects. A single Smithy shape can be responsible for generating multiple components in the target artifact.- Returns:
- a Map from ShapeIDs to a list of ShapeLink's that represents the contents of the shapes tag in the trace file.
-
toBuilder
public TraceFile.Builder toBuilder()
Take this object and create a builder that contains all of the current property values of this object.- Specified by:
toBuilder
in interfaceToSmithyBuilder<TraceFile>
- Returns:
- a builder for type T
-
-