Class 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 for getLocale().
      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 in field.
      void rewrite​(FieldExpression... fields)
      Recursively rewrite any queries in fields.
      Query rewrite​(Query query)
      Recursively rewrite query.
      void rewrite​(java.util.List<Query> queries)  
      void rewriteAll​(QueryRequest request)
      Recursively rewrite all queries in request using this traverser.
      protected Query rewriteChildren​(Query query, QueryHandler defaultHandler)
      Called to recursively rewrite children of query.
      void rewriteFacet​(FacetRequest facet)  
      void rewriteFacets​(java.util.Collection<FacetRequest> facets)
      Rewrite any embedded queries in facets using handler.
      void rewriteFieldRequest​(FieldRequest field)  
      void rewriteFilters​(QueryRequest request)
      Recursively rewrite all filter queries in request using this traverser.
      protected Query rewriteQuery​(Query query)
      Callback method called prior to traversing the children of query.
      protected Query rewriteTree​(Query query, QueryHandler defaultHandler)
      Called to recursively rewrite a top level query.
      void setLocale​(java.util.Locale locale)
      Sets the local associated with this object.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • QueryTraverser

        public QueryTraverser()
    • 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 parameter
        defaultValue - 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 parameter
        defaultValue - 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 parameter
        defaultValue - 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 parameter
        defaultValue - 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 parameter
        defaultValue - 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 parameter
        defaultValue - 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 parameter
        defaultValue - 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 interface LocaleAware
      • getDefaultLocale

        protected java.util.Locale getDefaultLocale()
        Get the default locale to return for getLocale().
      • setLocale

        public void setLocale​(java.util.Locale locale)
        Sets the local associated with this object.
        Specified by:
        setLocale in interface LocaleAware
      • rewrite

        public final Query rewrite​(Query query)
        Recursively rewrite query.
      • rewriteFieldRequest

        public final void rewriteFieldRequest​(FieldRequest field)
      • rewrite

        public final void rewrite​(FieldExpression field)
        Recursively rewrite any queries in field.
      • rewrite

        public final void rewrite​(java.util.List<Query> queries)
      • rewrite

        public final void rewrite​(FieldExpression... fields)
        Recursively rewrite any queries in fields.
      • rewriteFacets

        public final void rewriteFacets​(java.util.Collection<FacetRequest> facets)
        Rewrite any embedded queries in facets using handler.
      • rewriteFacet

        public final void rewriteFacet​(FacetRequest facet)
      • rewriteQuery

        protected Query rewriteQuery​(Query query)
        Callback method called prior to traversing the children of query.
      • rewriteTree

        protected Query rewriteTree​(Query query,
                                    QueryHandler defaultHandler)
        Called to recursively rewrite a top level query.
      • rewriteChildren

        protected Query rewriteChildren​(Query query,
                                        QueryHandler defaultHandler)
        Called to recursively rewrite children of query.

        Override this method to provide custom traversal of children.