Package com.attivio.util.query
Class QueryTraverser
- java.lang.Object
-
- com.attivio.util.query.QueryTraverser
-
- All Implemented Interfaces:
LocaleAware
public abstract class QueryTraverser extends java.lang.Object implements LocaleAware
Abstract base class for a query traverser that maintains tree state during traversal.NOTE: This class is not thread safe.
-
-
Constructor Summary
Constructors Constructor Description QueryTraverser()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.Locale
getDefaultLocale()
Get the default locale to return forgetLocale()
.java.util.Locale
getLocale()
Gets the local associated with this object or null if not set.java.lang.Object
getParameter(java.lang.String name)
Gets a named property from the query.boolean
getParameter(java.lang.String name, boolean defaultValue)
Gets the boolean property for this QueryStack.double
getParameter(java.lang.String name, double defaultValue)
Gets a named double property for this QueryStack.float
getParameter(java.lang.String name, float defaultValue)
Gets a named float property for this QueryStack.int
getParameter(java.lang.String name, int defaultValue)
Gets a named integer property for this QueryStack.java.lang.Object
getParameter(java.lang.String name, java.lang.Object defaultValue)
Gets a parameter for this QueryStack.java.lang.String
getParameter(java.lang.String name, java.lang.String defaultValue)
Gets a named String property for this QueryStack.java.util.Locale
getParameter(java.lang.String name, java.util.Locale defaultValue)
Gets a named Locale property for this QueryStack.boolean
isExcluded()
Returns true if the number of containing NOT operators is odd.void
rewrite(FieldExpression field)
Recursively rewrite any queries infield
.void
rewrite(FieldExpression... fields)
Recursively rewrite any queries infields
.Query
rewrite(Query query)
Recursively rewritequery
.void
rewrite(java.util.List<Query> queries)
void
rewriteAll(QueryRequest request)
Recursively rewrite all queries inrequest
using this traverser.protected Query
rewriteChildren(Query query, QueryHandler defaultHandler)
Called to recursively rewrite children ofquery
.void
rewriteFacet(FacetRequest facet)
void
rewriteFacets(java.util.Collection<FacetRequest> facets)
Rewrite any embedded queries infacets
usinghandler
.void
rewriteFieldRequest(FieldRequest field)
void
rewriteFilters(QueryRequest request)
Recursively rewrite all filter queries inrequest
using this traverser.protected Query
rewriteQuery(Query query)
Callback method called prior to traversing the children ofquery
.protected Query
rewriteTree(Query query, QueryHandler defaultHandler)
Called to recursively rewrite a top levelquery
.void
setLocale(java.util.Locale locale)
Sets the local associated with this object.
-
-
-
Method Detail
-
isExcluded
public boolean isExcluded()
Returns true if the number of containing NOT operators is odd.
-
getParameter
public java.lang.Object getParameter(java.lang.String name)
Gets a named property from the query.
-
getParameter
public java.lang.String getParameter(java.lang.String name, java.lang.String defaultValue)
Gets a named String property for this QueryStack.- Parameters:
name
- the parameterdefaultValue
- the default value- Returns:
- the parameter or the defaultValue if not found
-
getParameter
public float getParameter(java.lang.String name, float defaultValue)
Gets a named float property for this QueryStack.- Parameters:
name
- the parameterdefaultValue
- the default value- Returns:
- the parameter or the defaultValue if not found
-
getParameter
public java.util.Locale getParameter(java.lang.String name, java.util.Locale defaultValue)
Gets a named Locale property for this QueryStack.- Parameters:
name
- the parameterdefaultValue
- the default value- Returns:
- the parameter or the defaultValue if not found/cannot parse
-
getParameter
public double getParameter(java.lang.String name, double defaultValue)
Gets a named double property for this QueryStack.- Parameters:
name
- the parameterdefaultValue
- the default value- Returns:
- the parameter or the defaultValue if not found
-
getParameter
public int getParameter(java.lang.String name, int defaultValue)
Gets a named integer property for this QueryStack.- Parameters:
name
- the parameterdefaultValue
- the default value- Returns:
- the parameter or the defaultValue if not found
-
getParameter
public boolean getParameter(java.lang.String name, boolean defaultValue)
Gets the boolean property for this QueryStack.- Parameters:
name
- the parameterdefaultValue
- the default value- Returns:
- the parameter or the defaultValue if not found
-
getParameter
public java.lang.Object getParameter(java.lang.String name, java.lang.Object defaultValue)
Gets a parameter for this QueryStack.- Parameters:
name
- the parameterdefaultValue
- the default value- Returns:
- the parameter or default value if not found
-
getLocale
public java.util.Locale getLocale()
Gets the local associated with this object or null if not set.- Specified by:
getLocale
in interfaceLocaleAware
-
getDefaultLocale
protected java.util.Locale getDefaultLocale()
Get the default locale to return forgetLocale()
.
-
setLocale
public void setLocale(java.util.Locale locale)
Sets the local associated with this object.- Specified by:
setLocale
in interfaceLocaleAware
-
rewriteFieldRequest
public final void rewriteFieldRequest(FieldRequest field)
-
rewrite
public final void rewrite(FieldExpression field)
Recursively rewrite any queries infield
.
-
rewriteAll
public final void rewriteAll(QueryRequest request)
Recursively rewrite all queries inrequest
using this traverser.WARNING: do not use this method unless you are sure you want to modify absolutely all queries in
request
.This method rewrites all queries in:
QueryRequest.getQuery()
,QueryRequest.getBoostQueries()
,QueryRequest.getFilters()
,QueryRequest.getFields()
,QueryRequest.getFacets()
.
-
rewriteFilters
public final void rewriteFilters(QueryRequest request)
Recursively rewrite all filter queries inrequest
using this traverser.This method rewrites all queries in:
QueryRequest.getFilters()
,QueryRequest.getFacets()
.
-
rewrite
public final void rewrite(java.util.List<Query> queries)
-
rewrite
public final void rewrite(FieldExpression... fields)
Recursively rewrite any queries infields
.
-
rewriteFacets
public final void rewriteFacets(java.util.Collection<FacetRequest> facets)
Rewrite any embedded queries infacets
usinghandler
.
-
rewriteFacet
public final void rewriteFacet(FacetRequest facet)
-
rewriteQuery
protected Query rewriteQuery(Query query)
Callback method called prior to traversing the children ofquery
.
-
rewriteTree
protected Query rewriteTree(Query query, QueryHandler defaultHandler)
Called to recursively rewrite a top levelquery
.
-
rewriteChildren
protected Query rewriteChildren(Query query, QueryHandler defaultHandler)
Called to recursively rewrite children ofquery
.Override this method to provide custom traversal of children.
-
-