Package org.forgerock.util.query
Class MapFilterVisitor<F>
java.lang.Object
org.forgerock.util.query.MapFilterVisitor<F>
- Type Parameters:
F
- The type of field description used in parsedQueryFilter
objects.
- All Implemented Interfaces:
QueryFilterVisitor<Map<String,
Object>, Void, F>
public class MapFilterVisitor<F>
extends Object
implements QueryFilterVisitor<Map<String,Object>,Void,F>
A
QueryFilterVisitor
that produces a Map representation of the filter tree.
The produced map is constructed according to the following representation:
- an and expression
{ "operator" : "and", "subfilters" : [ the subfilters ] }
- an or expression
{ "operator" : "or", "subfilters" : [ the subfilters ] }
- a not expression
{ "operator" : "not", "subfilter" : the subfilter }
- indicates a complex subfilter expression
{ "operator" : "complex", "field" : "/afield", "subfilter" : the subfilter }
- a presence expression
{ "operator" : "pr", "field" : "/afield"}
- an equals expression
{ "operator" : "eq", "field" : "/afield", "value" : "something"}
- a contains expression
{ "operator" : "co", "field" : "/afield", "value" : "something"}
- a starts-with expression
{ "operator" : "sw", "field" : "/afield", "value" : "some"}
- a less-than expression
{ "operator" : "lt", "field" : "/afield", "value" : "something"}
- a less-than-or-equal-to expression
{ "operator" : "le", "field" : "/afield", "value" : "something"}
- a greater-than expression
{ "operator" : "gt", "field" : "/afield", "value" : "something"}
- a greater-than-or-equal-to expression
{ "operator" : "ge", "field" : "/afield", "value" : "something"}
-
JSON notation used for convenience to illustrate Map-structure.
- To produce JSON, use
new com.fasterxml.jackson.databind.ObjectMapper().writeValueAsString(map);
- Or wrap with JsonValue:
new org.forgerock.json.JsonValue(map);
- To produce JSON, use
-
Field values are shown in
org.forgerock.json.JsonPointer
syntax; actual field representation depends on field type of QueryFilter.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvisitAndFilter
(Void parameters, List<QueryFilter<F>> subFilters) Visits anand
filter.visitBooleanLiteralFilter
(Void parameters, boolean value) Visits a boolean literal filter.visitComplexFilter
(Void parameters, F field, QueryFilter<F> subFilter) Visits acomplex
filter.visitContainsFilter
(Void parameters, F field, Object valueAssertion) Visits acontains
filter.visitEqualsFilter
(Void parameters, F field, Object valueAssertion) Visits aequality
filter.visitExtendedMatchFilter
(Void parameters, F field, String operator, Object valueAssertion) Visits acomparison
filter.visitGreaterThanFilter
(Void parameters, F field, Object valueAssertion) Visits agreater than
filter.visitGreaterThanOrEqualToFilter
(Void parameters, F field, Object valueAssertion) Visits agreater than or equal to
filter.visitLessThanFilter
(Void parameters, F field, Object valueAssertion) Visits aless than
filter.visitLessThanOrEqualToFilter
(Void parameters, F field, Object valueAssertion) Visits aless than or equal to
filter.visitNotFilter
(Void parameters, QueryFilter<F> subFilter) Visits anot
filter.visitOrFilter
(Void parameters, List<QueryFilter<F>> subFilters) Visits anor
filter.visitPresentFilter
(Void parameters, F field) Visits apresent
filter.visitStartsWithFilter
(Void parameters, F field, Object valueAssertion) Visits astarts with
filter.
-
Constructor Details
-
MapFilterVisitor
public MapFilterVisitor()
-
-
Method Details
-
visitAndFilter
Visits anand
filter.Implementation note: for the purposes of matching, an empty sub-filter list should always evaluate to
true
.- Specified by:
visitAndFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.subFilters
- The unmodifiable list of sub-filters.- Returns:
- Returns a visitor specified result.
-
visitBooleanLiteralFilter
Visits a boolean literal filter.- Specified by:
visitBooleanLiteralFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.value
- The boolean literal value.- Returns:
- Returns a visitor specified result.
-
visitContainsFilter
Visits acontains
filter.- Specified by:
visitContainsFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.field
- A definition of the field to be compared.valueAssertion
- The value assertion.- Returns:
- Returns a visitor specified result.
-
visitEqualsFilter
Visits aequality
filter.- Specified by:
visitEqualsFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.field
- A definition of the field to be compared.valueAssertion
- The value assertion.- Returns:
- Returns a visitor specified result.
-
visitExtendedMatchFilter
public Map<String,Object> visitExtendedMatchFilter(Void parameters, F field, String operator, Object valueAssertion) Visits acomparison
filter.- Specified by:
visitExtendedMatchFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.field
- A definition of the field to be compared.operator
- The operator to use for the comparison, which will not be one of the core operator names.valueAssertion
- The value assertion.- Returns:
- Returns a visitor specified result.
-
visitGreaterThanFilter
Visits agreater than
filter.- Specified by:
visitGreaterThanFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.field
- A definition of the field to be compared.valueAssertion
- The value assertion.- Returns:
- Returns a visitor specified result.
-
visitGreaterThanOrEqualToFilter
public Map<String,Object> visitGreaterThanOrEqualToFilter(Void parameters, F field, Object valueAssertion) Visits agreater than or equal to
filter.- Specified by:
visitGreaterThanOrEqualToFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.field
- A definition of the field to be compared.valueAssertion
- The value assertion.- Returns:
- Returns a visitor specified result.
-
visitLessThanFilter
Visits aless than
filter.- Specified by:
visitLessThanFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.field
- A definition of the field to be compared.valueAssertion
- The value assertion.- Returns:
- Returns a visitor specified result.
-
visitLessThanOrEqualToFilter
public Map<String,Object> visitLessThanOrEqualToFilter(Void parameters, F field, Object valueAssertion) Visits aless than or equal to
filter.- Specified by:
visitLessThanOrEqualToFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.field
- A definition of the field to be compared.valueAssertion
- The value assertion.- Returns:
- Returns a visitor specified result.
-
visitNotFilter
Visits anot
filter.- Specified by:
visitNotFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.subFilter
- The sub-filter.- Returns:
- Returns a visitor specified result.
-
visitOrFilter
Visits anor
filter.Implementation note: for the purposes of matching, an empty sub-filter list should always evaluate to
false
.- Specified by:
visitOrFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.subFilters
- The unmodifiable list of sub-filters.- Returns:
- Returns a visitor specified result.
-
visitPresentFilter
Visits apresent
filter.- Specified by:
visitPresentFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.field
- A definition of the field to be compared.- Returns:
- Returns a visitor specified result.
-
visitStartsWithFilter
Visits astarts with
filter.- Specified by:
visitStartsWithFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.field
- A definition of the field to be compared.valueAssertion
- The value assertion.- Returns:
- Returns a visitor specified result.
-
visitComplexFilter
Description copied from interface:QueryFilterVisitor
Visits acomplex
filter.- Specified by:
visitComplexFilter
in interfaceQueryFilterVisitor<Map<String,
Object>, Void, F> - Parameters:
parameters
- A visitor specified parameter.field
- A definition of the field to be compared.subFilter
- The subfilter expression to be evaluated on the object @field
.- Returns:
- Returns a visitor specified result.
-