Class AbstractShapeBuilder<B extends AbstractShapeBuilder<B,S>,S extends Shape>
java.lang.Object
software.amazon.smithy.model.shapes.AbstractShapeBuilder<B,S>
- Type Parameters:
B
- Concrete builder type.S
- Shape being created.
- All Implemented Interfaces:
FromSourceLocation
,SmithyBuilder<S>
- Direct Known Subclasses:
BigDecimalShape.Builder
,BigIntegerShape.Builder
,BlobShape.Builder
,BooleanShape.Builder
,ByteShape.Builder
,CollectionShape.Builder
,DocumentShape.Builder
,DoubleShape.Builder
,EntityShape.Builder
,FloatShape.Builder
,IntegerShape.Builder
,LongShape.Builder
,MapShape.Builder
,MemberShape.Builder
,OperationShape.Builder
,ShortShape.Builder
,StringShape.Builder
,StructureShape.Builder
,TimestampShape.Builder
,UnionShape.Builder
public abstract class AbstractShapeBuilder<B extends AbstractShapeBuilder<B,S>,S extends Shape>
extends Object
implements SmithyBuilder<S>, FromSourceLocation
Abstract builder used to create
Shape
s.-
Method Summary
Modifier and TypeMethodDescriptionaddMember
(MemberShape member) Adds a member to the shape IFF the shape supports members.Adds a mixin to the shape.Adds a trait to the shape builder, replacing any conflicting traits.addTraits
(Collection<? extends Trait> traitsToAdd) Adds traits from an iterator to the shape builder, replacing any conflicting traits.Removes all members from the builder.Removes all mixins.Removes all traits.Removes mixins from a shape and flattens them into the shape.Get an immutable view of the traits applied to the builder.getId()
Gets the shape ID of the builder.abstract ShapeType
Gets the type of shape being built.Gets the source location of a value.Sets the shape ID of the shape.Sets the shape ID of the shape.mixins
(Collection<? extends Shape> mixins) Replaces the mixins of the shape.removeMixin
(ToShapeId shape) Removes a mixin from the shape by shape or ID.removeTrait
(String traitId) Removes a trait from the shape builder.removeTrait
(ShapeId traitId) Removes a trait from the shape builder.Sets the source location of the shape.source
(SourceLocation sourceLocation) Sets the source location of the shape.traits
(Collection<Trait> traitsToSet) Replace all traits in the builder.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface software.amazon.smithy.utils.SmithyBuilder
build
-
Method Details
-
getSourceLocation
Description copied from interface:FromSourceLocation
Gets the source location of a value.- Specified by:
getSourceLocation
in interfaceFromSourceLocation
- Returns:
- Returns the source location of the value.
-
getShapeType
Gets the type of shape being built.- Returns:
- Returns the shape type.
-
getId
Gets the shape ID of the builder.- Returns:
- Returns null if no shape ID is set.
-
id
Sets the shape ID of the shape.- Parameters:
shapeId
- Shape ID to set.- Returns:
- Returns the builder.
-
id
Sets the shape ID of the shape.- Parameters:
shapeId
- Absolute shape ID string to set.- Returns:
- Returns the builder.
- Throws:
ShapeIdSyntaxException
- if the shape ID is invalid.
-
source
Sets the source location of the shape.- Parameters:
sourceLocation
- Source location to set.- Returns:
- Returns the builder.
-
source
Sets the source location of the shape.- Parameters:
filename
- Name of the file in which the shape was defined.line
- Line number in the file where the shape was defined.column
- Column number of the line where the shape was defined.- Returns:
- Returns the builder.
-
traits
Replace all traits in the builder.- Parameters:
traitsToSet
- Sequence of traits to set on the builder.- Returns:
- Returns the builder.
-
getAllTraits
Get an immutable view of the traits applied to the builder.- Returns:
- Returns the applied traits.
-
addTraits
Adds traits from an iterator to the shape builder, replacing any conflicting traits.- Parameters:
traitsToAdd
- Sequence of traits to add to the builder.- Returns:
- Returns the builder.
-
addTrait
Adds a trait to the shape builder, replacing any conflicting traits.- Parameters:
trait
- Trait instance to add.- Returns:
- Returns the builder.
-
removeTrait
Removes a trait from the shape builder.A relative trait name will attempt to remove a prelude trait with the given name.
- Parameters:
traitId
- Absolute or relative ID of the trait to remove.- Returns:
- Returns the builder.
-
removeTrait
Removes a trait from the shape builder.- Parameters:
traitId
- ID of the trait to remove.- Returns:
- Returns the builder.
-
clearTraits
Removes all traits.- Returns:
- Returns the builder.
-
addMember
Adds a member to the shape IFF the shape supports members.- Parameters:
member
- Member to add to the shape.- Returns:
- Returns the builder.
- Throws:
UnsupportedOperationException
- if the shape does not support members.
-
clearMembers
Removes all members from the builder.- Returns:
- Returns the builder.
-
addMixin
Adds a mixin to the shape.- Parameters:
shape
- Mixin to add.- Returns:
- Returns the builder.
-
mixins
Replaces the mixins of the shape.- Parameters:
mixins
- Mixins to add.- Returns:
- Returns the builder.
-
removeMixin
Removes a mixin from the shape by shape or ID.- Parameters:
shape
- Shape or shape ID to remove.- Returns:
- Returns the builder.
-
clearMixins
Removes all mixins.- Returns:
- Returns the builder.
-
flattenMixins
Removes mixins from a shape and flattens them into the shape.Flattening a mixin into a shape copies the traits and members of a mixin onto the shape, effectively resulting in the same shape but with no trace of the mixin relationship.
- Returns:
- Returns the updated builder.
-