code/app/be/objectify/deadbolt/java/filters/FilterConstraints.java
public FilterFunction composite(final String name,
                                    final Optional<String> content)
    {
        return compositeCache.apply(name).map(constraint -> composite(constraint,
                                                                      content))
                             .orElseThrow(() -> new IllegalStateException(String.format("No constraint with name [%s] found",
                                                                                        name)));
    }
public FilterFunction composite(final String name,
                                    final Optional<String> content)
    {
        return compositeCache.apply(name).map(constraint -> composite(constraint,
                                                                      content))
                             .orElseThrow(() -> new IllegalStateException(String.format("No constraint with name [%s] found",
                                                                                        name)));
    }
A constraint that uses a {@link Constraint} to determine access.  This may be an arbitrarily complex
tree of constraints.

@param name    the name of the composite constraint defined in {@link CompositeCache}.
@param content is passed to {@link DeadboltHandler#onAuthFailure(Http.RequestHeader, Optional)} if the authorization fails
@return a function that wraps the constraint
@throws IllegalStateException if no constraint with the given name is present in the composite cache