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>
AQueryFilterVisitorthat 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 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 anandfilter.Map<String,Object>visitBooleanLiteralFilter(Void parameters, boolean value)Visits a boolean literal filter.Map<String,Object>visitComplexFilter(Void parameters, F field, QueryFilter<F> subFilter)Visits acomplexfilter.Map<String,Object>visitContainsFilter(Void parameters, F field, Object valueAssertion)Visits acontainsfilter.Map<String,Object>visitEqualsFilter(Void parameters, F field, Object valueAssertion)Visits aequalityfilter.Map<String,Object>visitExtendedMatchFilter(Void parameters, F field, String operator, Object valueAssertion)Visits acomparisonfilter.Map<String,Object>visitGreaterThanFilter(Void parameters, F field, Object valueAssertion)Visits agreater thanfilter.Map<String,Object>visitGreaterThanOrEqualToFilter(Void parameters, F field, Object valueAssertion)Visits agreater than or equal tofilter.Map<String,Object>visitLessThanFilter(Void parameters, F field, Object valueAssertion)Visits aless thanfilter.Map<String,Object>visitLessThanOrEqualToFilter(Void parameters, F field, Object valueAssertion)Visits aless than or equal tofilter.Map<String,Object>visitNotFilter(Void parameters, QueryFilter<F> subFilter)Visits anotfilter.Map<String,Object>visitOrFilter(Void parameters, List<QueryFilter<F>> subFilters)Visits anorfilter.Map<String,Object>visitPresentFilter(Void parameters, F field)Visits apresentfilter.Map<String,Object>visitStartsWithFilter(Void parameters, F field, Object valueAssertion)Visits astarts withfilter.
-
-
-
Method Detail
-
visitAndFilter
public Map<String,Object> visitAndFilter(Void parameters, List<QueryFilter<F>> subFilters)
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
public Map<String,Object> visitBooleanLiteralFilter(Void parameters, boolean value)
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
public Map<String,Object> visitContainsFilter(Void parameters, F field, Object valueAssertion)
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
public Map<String,Object> visitEqualsFilter(Void parameters, F field, Object valueAssertion)
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
public Map<String,Object> visitGreaterThanFilter(Void parameters, F field, Object valueAssertion)
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
public Map<String,Object> visitLessThanFilter(Void parameters, F field, Object valueAssertion)
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
public Map<String,Object> visitNotFilter(Void parameters, QueryFilter<F> subFilter)
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
public Map<String,Object> visitOrFilter(Void parameters, List<QueryFilter<F>> subFilters)
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
public Map<String,Object> visitPresentFilter(Void parameters, F field)
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
public Map<String,Object> visitStartsWithFilter(Void parameters, F field, Object valueAssertion)
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
public Map<String,Object> visitComplexFilter(Void parameters, F field, QueryFilter<F> subFilter)
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.
-
-