Class SimpleAttributePredicate

  • All Implemented Interfaces:
    Predicate<ProfileRequestContext>, Predicate<ProfileRequestContext>

    public class SimpleAttributePredicate
    extends AbstractAttributePredicate
    Predicate that evaluates an AttributeContext and checks for particular attribute/value pairs.

    A map to a collection of strings is used to represent the attribute(s) and value(s) to evaluate. The values are evaluated as a disjunction (OR) and the attributes are evaluated as a conjunction (AND).

    This handles only simple string-valued data.

    For the special case of checking for an attribute's presence, regardless of values, the '*' value is supported. Note that this does NOT exclude pathological cases such as empty or null values. A more advanced predicate should be used to deal with such cases.

    • Constructor Detail

      • SimpleAttributePredicate

        public SimpleAttributePredicate()
        Constructor.
    • Method Detail

      • setAttributeValueMap

        public void setAttributeValueMap​(@Nonnull @NonnullElements
                                         Map<String,​Collection<String>> map)
        Set the map of attribute/value pairs (as a map of string collections) to check for.
        Parameters:
        map - map of attribute/value pairs
      • hasMatch

        protected boolean hasMatch​(Map<String,​IdPAttribute> attributeMap)
        Abstract implementation of the condition to evaluate.
        Specified by:
        hasMatch in class AbstractAttributePredicate
        Parameters:
        attributeMap - the attributes to evaluate
        Returns:
        the condition result
      • findMatch

        protected boolean findMatch​(@Nonnull @NotEmpty
                                    String toMatch,
                                    @Nonnull
                                    IdPAttribute attribute)
        Look for a matching value in an attribute.
        Parameters:
        toMatch - value to look for
        attribute - attribute to check
        Returns:
        true iff the value is one of the attribute's values