Class TraitDefinition
- java.lang.Object
-
- software.amazon.smithy.model.traits.AbstractTrait
-
- software.amazon.smithy.model.traits.TraitDefinition
-
- All Implemented Interfaces:
FromSourceLocation
,ToNode
,ToShapeId
,Trait
,ToSmithyBuilder<TraitDefinition>
public final class TraitDefinition extends AbstractTrait implements ToSmithyBuilder<TraitDefinition>
Trait definition trait.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TraitDefinition.Builder
Builder to create a TraitDefinition.static class
TraitDefinition.Provider
static class
TraitDefinition.StructurallyExclusive
The structural exclusion semantics of the trait.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CONFLICTS_KEY
static ShapeId
ID
static java.lang.String
SELECTOR_KEY
static java.lang.String
STRUCTURALLY_EXCLUSIVE_KEY
-
Constructor Summary
Constructors Constructor Description TraitDefinition(TraitDefinition.Builder builder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static TraitDefinition.Builder
builder()
protected Node
createNode()
The result of toNode is used for hashCodes and equality.java.util.List<ShapeId>
getConflicts()
Gets the trait names that conflict with this trait.Selector
getSelector()
Gets the valid places in a model that this trait can be applied.java.util.Optional<TraitDefinition.StructurallyExclusive>
getStructurallyExclusive()
Gets thestructurallyExclusive
property of the trait.boolean
isStructurallyExclusiveByMember()
boolean
isStructurallyExclusiveByTarget()
TraitDefinition.Builder
toBuilder()
Take this object and create a builder that contains all of the current property values of this object.-
Methods inherited from class software.amazon.smithy.model.traits.AbstractTrait
equals, getSourceLocation, hashCode, toNode, toShapeId, toString
-
-
-
-
Field Detail
-
ID
public static final ShapeId ID
-
SELECTOR_KEY
public static final java.lang.String SELECTOR_KEY
- See Also:
- Constant Field Values
-
STRUCTURALLY_EXCLUSIVE_KEY
public static final java.lang.String STRUCTURALLY_EXCLUSIVE_KEY
- See Also:
- Constant Field Values
-
CONFLICTS_KEY
public static final java.lang.String CONFLICTS_KEY
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
TraitDefinition
public TraitDefinition(TraitDefinition.Builder builder)
-
-
Method Detail
-
builder
public static TraitDefinition.Builder builder()
-
toBuilder
public TraitDefinition.Builder toBuilder()
Description copied from interface:ToSmithyBuilder
Take this object and create a builder that contains all of the current property values of this object.- Specified by:
toBuilder
in interfaceToSmithyBuilder<TraitDefinition>
- Returns:
- a builder for type T
-
getSelector
public Selector getSelector()
Gets the valid places in a model that this trait can be applied.- Returns:
- Returns the trait selector.
-
getConflicts
public java.util.List<ShapeId> getConflicts()
Gets the trait names that conflict with this trait.- Returns:
- Returns the conflicting trait names.
-
getStructurallyExclusive
public java.util.Optional<TraitDefinition.StructurallyExclusive> getStructurallyExclusive()
Gets thestructurallyExclusive
property of the trait.- Returns:
- Returns the
structurallyExclusive
property of the trait.
-
isStructurallyExclusiveByMember
public boolean isStructurallyExclusiveByMember()
- Returns:
- Returns true if the trait is
structurallyExclusive
by member.
-
isStructurallyExclusiveByTarget
public boolean isStructurallyExclusiveByTarget()
- Returns:
- Returns true if the trait is
structurallyExclusive
by target.
-
createNode
protected Node createNode()
Description copied from class:AbstractTrait
The result of toNode is used for hashCodes and equality. Subclasses must implement createNode to turn the trait into a Node. This is then cached for subsequent retrievals.- Specified by:
createNode
in classAbstractTrait
- Returns:
- Returns the trait as a node.
-
-