Interface AttributesSchema


@Incubating public interface AttributesSchema
An attributes schema stores information about attributes and how they can be matched together.
Since:
3.3
  • Method Details

    • getMatchingStrategy

      <T> AttributeMatchingStrategy<T> getMatchingStrategy(Attribute<T> attribute) throws IllegalArgumentException
      Returns the matching strategy for a given attribute.
      Type Parameters:
      T - the type of the attribute
      Parameters:
      attribute - the attribute
      Returns:
      the matching strategy for this attribute.
      Throws:
      IllegalArgumentException - When no strategy is available for the given attribute.
    • attribute

      <T> AttributeMatchingStrategy<T> attribute(Attribute<T> attribute)
      Declares a new attribute in the schema and configures it with the default strategy. If the attribute was already declared it will simply return the existing strategy.
      Type Parameters:
      T - the concrete type of the attribute
      Parameters:
      attribute - the attribute to declare in the schema
      Returns:
      the matching strategy for this attribute
    • attribute

      <T> AttributeMatchingStrategy<T> attribute(Attribute<T> attribute, Action<? super AttributeMatchingStrategy<T>> configureAction)
      Configures the matching strategy for an attribute. The first call to this method for a specific attribute will create a new matching strategy, whereas subsequent calls will configure the existing one.
      Type Parameters:
      T - the concrete type of the attribute
      Parameters:
      attribute - the attribute for which to configure the matching strategy
      configureAction - the strategy configuration
      Returns:
      the configured strategy
    • getAttributes

      Set<Attribute<?>> getAttributes()
      Returns the set of attributes known to this schema.
    • hasAttribute

      boolean hasAttribute(Attribute<?> key)
      Returns true when this schema contains the given attribute.