Class FilterQuery

    • Constructor Detail

      • FilterQuery

        public FilterQuery()
      • FilterQuery

        public FilterQuery​(Query query,
                           Query filter)
        Construct a new FilterQuery
    • Method Detail

      • getFilter

        public Query getFilter()
      • setFilter

        public void setFilter​(Query filter)
      • rewrite

        public Query rewrite​(QueryHandler handler)
        Recursively rewrite this query using handler.
      • rewriteChildren

        public void rewriteChildren​(QueryHandler handler)
        Rewrite child nodes using handler.
      • optimize

        public Query optimize()
        Optimizes this query object, removing unnecessary levels of expressions.
        Returns:
        an optimized form of this Query, or null if this Query is a no-op
      • prettyFormat

        protected void prettyFormat​(java.lang.StringBuilder buffer,
                                    int indent)
        Pretty format all parameters for this Query instance.
        Parameters:
        buffer - buffer to write pretty formated parameters to.
        indent - the indentation level
      • toString

        protected void toString​(java.lang.StringBuilder buffer,
                                boolean compact)
        Write the String representation of this query to buffer.
      • equals

        protected boolean equals​(java.lang.Object other,
                                 java.util.Map<java.lang.String,​java.lang.Object> defaults,
                                 java.util.Set<java.lang.String> ignore)
        Checks whether query equals this Query object.
        Parameters:
        other - the query to compare to
        defaults - map of default values for query parameters
        ignore - set of query parameters to ignore during equality check.
        Returns:
        true if other is equal to this Query
      • hashCode

        public int hashCode()
      • clone

        public FilterQuery clone()
        Returns a deep copy of this Query instance.

        NOTE: values for parameters are shallow copied.

        Returns:
        a copy of this Query.
      • isAllowNull

        protected boolean isAllowNull()
        Are null sub queries allowed.
      • getQuery

        public Query getQuery()
        Get the search query.
      • setQuery

        public void setQuery​(Query value)
        Set the search query.
      • setQuery

        public void setQuery​(java.lang.String term)
        Set the search query to be a search for term.
      • getFirstNode

        public Query getFirstNode​(QueryHandler selector)
        Get the first query in the tree that has parameter set to value.

        WARNING: this is an experimental API and may change in the near future.

        Overrides:
        getFirstNode in class Query
        Returns:
        the first query in the query tree that matches selector, or null if no match found.
      • getNodes

        protected void getNodes​(java.util.List<Query> nodes,
                                QueryHandler selector)
        Internal method to collect all nodes that have parameter set to value .
        Overrides:
        getNodes in class Query
      • parameters

        public java.util.Iterator<java.util.Map.Entry<java.lang.String,​java.lang.Object>> parameters()
        Get an iterator for returning all custom parameters.
      • containsParameter

        public boolean containsParameter​(java.lang.String name)
        Returns true if the specified parameter exists for this Query object.
        Parameters:
        name - parameter name.
        Returns:
        true if the specified parameter exists.
      • getParameter

        public final java.lang.Object getParameter​(java.lang.String name)
        Returns a named property for this Query object.
        Parameters:
        name - parameter name.
        Returns:
        the value for the named property (or null if not found)
      • getParameterList

        public final java.util.List<java.lang.Object> getParameterList​(java.lang.String name)
        Returns list of values found for the named property for this Query object.
        Parameters:
        name - parameter name.
        Returns:
        list, which might be empty (but we never return null)
      • getParameter

        public final java.lang.String getParameter​(java.lang.String name,
                                                   java.lang.String defaultValue)
        Gets a String parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final boolean getParameter​(java.lang.String name,
                                          boolean defaultValue)
        Gets a boolean parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final int getParameter​(java.lang.String name,
                                      int defaultValue)
        Gets an integer parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final long getParameter​(java.lang.String name,
                                       long defaultValue)
        Gets a long parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final float getParameter​(java.lang.String name,
                                        float defaultValue)
        Gets a float parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final double getParameter​(java.lang.String name,
                                         double defaultValue)
        Gets a double parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public java.lang.Object getParameter​(java.lang.String name,
                                             java.lang.Object defaultValue)
        Gets a parameter.
        Parameters:
        name - name of parameter to return.
        defaultValue - default value to return if not set.
      • setParameters

        public final void setParameters​(java.util.Map<java.lang.String,​java.lang.Object> value)
      • setParameters

        public void setParameters​(java.util.Map<java.lang.String,​java.lang.Object> params,
                                  boolean override)
        Copies parameters from a Map into this Query.
        Parameters:
        params - the parameters to copy into this Query instance.
        override - indicates if parameters from params should overwrite existing parameters in this Query
      • parseIntParameter

        protected static int parseIntParameter​(java.lang.Object value,
                                               int defaultValue)
      • removeParameter

        public java.lang.Object removeParameter​(java.lang.String name)
        Remove the value for a parameter for this Query object.
        Parameters:
        name - the parameter to remove.
      • setEnumParameter

        protected final void setEnumParameter​(java.lang.String key,
                                              java.lang.Object value,
                                              java.lang.String... enumValues)
        Internal method for setting an object parameter.

        NOTE: enumValues must contain lower case strings.

      • setStringParameter

        protected final void setStringParameter​(java.lang.String key,
                                                java.lang.Object value)
        Internal method for setting a string parameter.
      • setIntegerParameter

        protected final void setIntegerParameter​(java.lang.String key,
                                                 java.lang.Object value)
        Internal method for setting an integer parameter.
      • setUnsignedParameter

        protected final void setUnsignedParameter​(java.lang.String key,
                                                  java.lang.Object value)
        Internal method for setting an integer parameter.
      • setBooleanParameter

        protected final void setBooleanParameter​(java.lang.String key,
                                                 java.lang.Object value)
        Internal method for setting a boolean parameter.
      • setRollupParameter

        protected final void setRollupParameter​(java.lang.String key,
                                                java.lang.Object value)
      • appendParameter

        protected static void appendParameter​(java.lang.StringBuilder buffer,
                                              java.lang.String name,
                                              java.lang.Object value)
        Add ", \"name\"=\"value\"" to buffer.
      • addParameter

        protected static void addParameter​(java.lang.StringBuilder buffer,
                                           java.lang.String name,
                                           java.lang.Object value)
        Add "\"name\"=\"value\"" to buffer.
      • addParameterCompact

        protected static void addParameterCompact​(java.lang.StringBuilder buffer,
                                                  java.lang.String name,
                                                  java.lang.Object value)
        Add "\"name\"=\"value\"" to buffer, omitting value if it is Boolean.TRUE.
      • escape

        protected static void escape​(java.lang.StringBuilder buffer,
                                     java.lang.Object value)
      • escape

        protected void escape​(java.lang.StringBuilder buffer,
                              java.lang.String value,
                              boolean quote)
        Helper method to escape a string for toString() .
        Parameters:
        buffer - buffer to write escaped value to
        value - the value to escape
        quote - if true, escaped value will be wrapped in double quotes.
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • toString

        public final java.lang.String toString​(boolean compact)
      • prettyPrint

        public final void prettyPrint()
        Sends a hierarchical representation of this query to standard out.
      • prettyPrint

        public final void prettyPrint​(java.io.PrintStream out)
        Sends a hierarchical representation of this query specified PrintStream.
        Parameters:
        out - stream to output query representation to
      • prettyFormat

        public final java.lang.String prettyFormat()
        Returns a hierarchical representation of this query as a string.
      • indent

        protected static java.lang.StringBuilder indent​(java.lang.StringBuilder buffer,
                                                        int indent)
        Support method to indent a "line" in a StringBuilder.