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 parsedQueryFilterobjects.
- 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.JsonPointersyntax; actual field representation depends on field type of QueryFilter.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvisitAndFilter(Void parameters, List<QueryFilter<F>> subFilters) Visits anandfilter.visitBooleanLiteralFilter(Void parameters, boolean value) Visits a boolean literal filter.visitComplexFilter(Void parameters, F field, QueryFilter<F> subFilter) Visits acomplexfilter.visitContainsFilter(Void parameters, F field, Object valueAssertion) Visits acontainsfilter.visitEqualsFilter(Void parameters, F field, Object valueAssertion) Visits aequalityfilter.visitExtendedMatchFilter(Void parameters, F field, String operator, Object valueAssertion) Visits acomparisonfilter.visitGreaterThanFilter(Void parameters, F field, Object valueAssertion) Visits agreater thanfilter.visitGreaterThanOrEqualToFilter(Void parameters, F field, Object valueAssertion) Visits agreater than or equal tofilter.visitLessThanFilter(Void parameters, F field, Object valueAssertion) Visits aless thanfilter.visitLessThanOrEqualToFilter(Void parameters, F field, Object valueAssertion) Visits aless than or equal tofilter.visitNotFilter(Void parameters, QueryFilter<F> subFilter) Visits anotfilter.visitOrFilter(Void parameters, List<QueryFilter<F>> subFilters) Visits anorfilter.visitPresentFilter(Void parameters, F field) Visits apresentfilter.visitStartsWithFilter(Void parameters, F field, Object valueAssertion) Visits astarts withfilter.
-
Constructor Details
-
MapFilterVisitor
public MapFilterVisitor()
-
-
Method Details
-
visitAndFilter
Visits anandfilter.Implementation note: for the purposes of matching, an empty sub-filter list should always evaluate to
true.- Specified by:
visitAndFilterin 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:
visitBooleanLiteralFilterin 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 acontainsfilter.- Specified by:
visitContainsFilterin 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 aequalityfilter.- Specified by:
visitEqualsFilterin 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 acomparisonfilter.- Specified by:
visitExtendedMatchFilterin 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 thanfilter.- Specified by:
visitGreaterThanFilterin 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 tofilter.- Specified by:
visitGreaterThanOrEqualToFilterin 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 thanfilter.- Specified by:
visitLessThanFilterin 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 tofilter.- Specified by:
visitLessThanOrEqualToFilterin 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 anotfilter.- Specified by:
visitNotFilterin interfaceQueryFilterVisitor<Map<String,Object>, Void, F> - Parameters:
parameters- A visitor specified parameter.subFilter- The sub-filter.- Returns:
- Returns a visitor specified result.
-
visitOrFilter
Visits anorfilter.Implementation note: for the purposes of matching, an empty sub-filter list should always evaluate to
false.- Specified by:
visitOrFilterin 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 apresentfilter.- Specified by:
visitPresentFilterin 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 withfilter.- Specified by:
visitStartsWithFilterin 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:QueryFilterVisitorVisits acomplexfilter.- Specified by:
visitComplexFilterin 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.
-