Interface IAdornmentProvider
- All Known Implementing Classes:
AllValidAdornments
,LazyPlanningAdornments
public interface IAdornmentProvider
An adornment provider is used to define the adornments the pattern matcher should prepare for.
A default implementation is available in AllValidAdornments
that describes all
adornments fulfilling the parameter direction declarations;
another default option (with better performance but restricted applicability) is LazyPlanningAdornments
.
Users may implement this interface to limit the number of prepared plans based on some runtime information:
class SomeAdornments{ public Iterable<Set<PParameter
>> getAdornments(PQuery
query){ if (SomeGeneratedQuerySpecification.instance().getInternalQueryRepresentation().equals(query)){ return Collections.singleton(Sets.filter(Sets.newHashSet(query.getParameters()), new Predicate() { @Override public boolean apply(PParameter input) { // Decide whether this particular parameter will be bound return false; } })); } // Returning an empty iterable is safe for unknown queries return Collections.emptySet(); } }
- Since:
- 1.5
-
Method Summary
Modifier and TypeMethodDescriptiongetAdornments
(PQuery query) The bound parameter setsstatic QueryEvaluationHint
toHint
(IAdornmentProvider adornmentProvider)
-
Method Details
-
getAdornments
The bound parameter sets -
toHint
- Returns:
- a simple hint that only overrides the adornment provider
- Since:
- 2.1
-