public interface AttributesSchema
attributes
and how they
can be matched together.Modifier and Type | Method | Description |
---|---|---|
<T> AttributeMatchingStrategy<T> |
attribute(Attribute<T> attribute) |
Declares a new attribute in the schema and configures it with the default strategy.
|
<T> AttributeMatchingStrategy<T> |
attribute(Attribute<T> attribute,
Action<? super AttributeMatchingStrategy<T>> configureAction) |
Configures the matching strategy for an attribute.
|
void |
attributeDisambiguationPrecedence(Attribute<?>... attributes) |
Adds attributes to the precedence order.
|
java.util.List<Attribute<?>> |
getAttributeDisambiguationPrecedence() |
Returns the order that attributes should be considered when resolving ambiguity.
|
java.util.Set<Attribute<?>> |
getAttributes() |
Returns the set of attributes known to this schema.
|
<T> AttributeMatchingStrategy<T> |
getMatchingStrategy(Attribute<T> attribute) |
Returns the matching strategy for a given attribute.
|
boolean |
hasAttribute(Attribute<?> key) |
Returns true when this schema contains the given attribute.
|
void |
setAttributeDisambiguationPrecedence(java.util.List<Attribute<?>> attributes) |
Sets the order of precedence of attributes when resolving ambiguity.
|
<T> AttributeMatchingStrategy<T> getMatchingStrategy(Attribute<T> attribute) throws java.lang.IllegalArgumentException
T
- the type of the attributeattribute
- the attributejava.lang.IllegalArgumentException
- When no strategy is available for the given attribute.<T> AttributeMatchingStrategy<T> attribute(Attribute<T> attribute)
T
- the concrete type of the attributeattribute
- the attribute to declare in the schema<T> AttributeMatchingStrategy<T> attribute(Attribute<T> attribute, Action<? super AttributeMatchingStrategy<T>> configureAction)
T
- the concrete type of the attributeattribute
- the attribute for which to configure the matching strategyconfigureAction
- the strategy configurationjava.util.Set<Attribute<?>> getAttributes()
boolean hasAttribute(Attribute<?> key)
@Incubating void attributeDisambiguationPrecedence(Attribute<?>... attributes)
The attributes will be added to any existing precedence order. If an attribute has already been added, adding it again will fail.
attributes
- the attributes in ordersetAttributeDisambiguationPrecedence(List)
@Incubating void setAttributeDisambiguationPrecedence(java.util.List<Attribute<?>> attributes)
By default, there is no explicit precedence between attributes and all attributes must be considered when disambiguating.
attributes
- the attributes in order, highest priority first@Incubating java.util.List<Attribute<?>> getAttributeDisambiguationPrecedence()