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>
AQueryFilterVisitor
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 }
- 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 Constructor Description MapFilterVisitor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Map<String,Object>
visitAndFilter(Void parameters, List<QueryFilter<F>> subFilters)
Visits anand
filter.Map<String,Object>
visitBooleanLiteralFilter(Void parameters, boolean value)
Visits a boolean literal filter.Map<String,Object>
visitContainsFilter(Void parameters, F field, Object valueAssertion)
Visits acontains
filter.Map<String,Object>
visitEqualsFilter(Void parameters, F field, Object valueAssertion)
Visits aequality
filter.Map<String,Object>
visitExtendedMatchFilter(Void parameters, F field, String operator, Object valueAssertion)
Visits acomparison
filter.Map<String,Object>
visitGreaterThanFilter(Void parameters, F field, Object valueAssertion)
Visits agreater than
filter.Map<String,Object>
visitGreaterThanOrEqualToFilter(Void parameters, F field, Object valueAssertion)
Visits agreater than or equal to
filter.Map<String,Object>
visitLessThanFilter(Void parameters, F field, Object valueAssertion)
Visits aless than
filter.Map<String,Object>
visitLessThanOrEqualToFilter(Void parameters, F field, Object valueAssertion)
Visits aless than or equal to
filter.Map<String,Object>
visitNotFilter(Void parameters, QueryFilter<F> subFilter)
Visits anot
filter.Map<String,Object>
visitOrFilter(Void parameters, List<QueryFilter<F>> subFilters)
Visits anor
filter.Map<String,Object>
visitPresentFilter(Void parameters, F field)
Visits apresent
filter.Map<String,Object>
visitStartsWithFilter(Void parameters, F field, Object valueAssertion)
Visits astarts with
filter.
-
-
-
Method Detail
-
visitAndFilter
public Map<String,Object> visitAndFilter(Void parameters, List<QueryFilter<F>> subFilters)
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
public Map<String,Object> visitBooleanLiteralFilter(Void parameters, boolean value)
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
public Map<String,Object> visitContainsFilter(Void parameters, F field, Object valueAssertion)
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
public Map<String,Object> visitEqualsFilter(Void parameters, F field, Object valueAssertion)
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
public Map<String,Object> visitGreaterThanFilter(Void parameters, F field, Object valueAssertion)
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
public Map<String,Object> visitLessThanFilter(Void parameters, F field, Object valueAssertion)
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
public Map<String,Object> visitNotFilter(Void parameters, QueryFilter<F> subFilter)
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
public Map<String,Object> visitOrFilter(Void parameters, List<QueryFilter<F>> subFilters)
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
public Map<String,Object> visitPresentFilter(Void parameters, F field)
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
public Map<String,Object> visitStartsWithFilter(Void parameters, F field, Object valueAssertion)
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.
-
-