Class BooleanAndQuery

  • All Implemented Interfaces:
    QueryParameters, LocaleAware, java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<Query>

    public final class BooleanAndQuery
    extends Query
    A BooleanAndQuery requires all sub queries must match.
    See Also:
    Serialized Form
    • Field Detail

      • clauses

        protected java.util.ArrayList<Query> clauses
        List of all clauses for this expression
    • Constructor Detail

      • BooleanAndQuery

        public BooleanAndQuery()
      • BooleanAndQuery

        public BooleanAndQuery​(Query a,
                               Query b)
        Construct a new BooleanAndQuery.
      • BooleanAndQuery

        public BooleanAndQuery​(Query... clauses)
        Construct a new BooleanAndQuery.
        Parameters:
        clauses - the clauses to add to this BooleanAndQuery
      • BooleanAndQuery

        public BooleanAndQuery​(java.util.List<? extends Query> clauses)
        Construct a new BooleanAndQuery.
        Parameters:
        clauses - the clauses to add to this BooleanAndQuery
      • BooleanAndQuery

        public BooleanAndQuery​(java.lang.String a,
                               java.lang.String b)
        Construct a new BooleanAndQuery.
      • BooleanAndQuery

        public BooleanAndQuery​(java.lang.String... terms)
        Construct a new BooleanAndQuery.
        Parameters:
        terms - the search terms to add to this BooleanAndQuery
    • Method Detail

      • append

        public BooleanAndQuery append​(Query... args)
        Adds required sub queries.
        Parameters:
        args - the sub queries to add.
        Returns:
        this (for call chaining)
      • append

        public BooleanAndQuery append​(java.lang.String... terms)
        Adds required search terms.
        Parameters:
        terms - the search terms to add.
        Returns:
        this (for call chaining)
      • 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.
      • hashCode

        public int hashCode()
      • 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
      • clone

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

        NOTE: values for parameters are shallow copied.

        Returns:
        a copy of this Query.
      • setParameter

        public void setParameter​(java.lang.String name,
                                 java.lang.Object value)
        Overrides:
        setParameter in class Query
      • iterator

        public java.util.Iterator<Query> iterator()
        Gets an iterator for iterating over sub queries.
        Specified by:
        iterator in interface java.lang.Iterable<Query>
      • listIterator

        public java.util.ListIterator<Query> listIterator()
        Gets a list iterator for iterating over sub queries.
      • getClauses

        public Query[] getClauses()
      • setClauses

        public void setClauses​(Query... value)
      • setClauses

        public void setClauses​(java.util.List<Query> value)
      • size

        public int size()
        Gets the number of sub queries.
      • add

        public void add​(Query... args)
        Add queries.
      • add

        public void add​(java.util.List<? extends Query> args)
        Add queries.
      • add

        public void add​(java.lang.String... terms)
        Add search terms.
      • addFirst

        public void addFirst​(Query query)
        Add query as the first subquery.
      • add

        public void add​(Query query)
        Add query.
      • add

        public void add​(java.lang.String term)
        Add search term.
      • optimize

        public Query optimize()
        Optimizes this query object, removing unnecessary levels of expressions.
        Overrides:
        optimize in class Query
        Returns:
        an optimized form of this Query, or null if this Query is a no-op
      • 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.