Class Query

    • Field Detail

      • DEFAULT_PARAMETERS

        protected static final BaseTypesMap<java.lang.String,​java.lang.Object> DEFAULT_PARAMETERS
        Map of default values for query parameters
      • IGNORE_PARAMETERS

        protected static final java.util.Set<java.lang.String> IGNORE_PARAMETERS
        Set of parameters to ignore for equality checks.
      • boost

        protected int boost
    • Constructor Detail

      • Query

        protected Query()
    • Method Detail

      • setParameters

        public void setParameters​(Query query)
        Copies all parameters from another query into this Query instance.
        Parameters:
        query - the Query to copy parameters from
      • setParameters

        public void setParameters​(Query query,
                                  boolean override)
        Copies all parameters from another query into this Query instance.
        Parameters:
        query - the Query to copy parameters from.
        override - indicates if parameters from query should overwrite existing parameters in this Query
      • isCompactParameter

        protected boolean isCompactParameter​(java.lang.String key,
                                             java.lang.Object value)
        Check if parameter should be included in compact representation.
      • containsParameters

        public boolean containsParameters()
      • setParameter

        public void setParameter​(java.lang.String name,
                                 java.lang.Object value)
      • addParameter

        public void addParameter​(java.lang.String name,
                                 java.lang.Object value)
        allow multiple values per name
      • getInternalParameter

        protected java.lang.Object getInternalParameter​(java.lang.String name)
      • addParameters

        protected void addParameters​(java.lang.StringBuilder buffer,
                                     boolean compact)
        Append all parameters for this query to buffer.
      • appendParameters

        protected void appendParameters​(java.lang.StringBuilder buffer,
                                        boolean compact)
        Append all parameters to buffer.
      • prettyFormatParameters

        protected void prettyFormatParameters​(java.lang.StringBuilder buffer,
                                              int indent)
      • getBoost

        public int getBoost()
        Gets the boost value for this Query.
      • setBoost

        public void setBoost​(int value)
        Sets the boost for this Query.
      • setBoost

        public void setBoost​(java.lang.String value)
                      throws java.lang.IllegalArgumentException
        Sets the boost for this Query.
        Parameters:
        value - the boost to set
        Throws:
        java.lang.IllegalArgumentException - if value is not parsable as a number
      • getLocale

        public java.util.Locale getLocale()
        Gets the local associated with this object or null if not set.
        Specified by:
        getLocale in interface LocaleAware
      • setLocale

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

        public java.lang.String getQueryString()
        Get the query string used to create this query.

        NOTE: this may be null if the query object was created manually.

        See Also:
        QueryParameters.QUERY
      • getQueryLanguage

        public java.lang.String getQueryLanguage()
        Get the query language for this query.

        NOTE: this may not be meaningful in the event that this query was programatically created.

      • getAllParameters

        public java.util.List<QueryParameters.Parameter> getAllParameters()
        Get generic query options
        Returns:
        List of options (never null)
      • rewrite

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

        public void rewriteChildren​(QueryHandler handler)
        Rewrite child nodes using handler.
      • 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.

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

        public final java.lang.Iterable<Query> getNodes​(QueryHandler selector)
        Get all nodes in the query tree that have parameter set to value.

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

      • getNodes

        protected void getNodes​(java.util.List<Query> nodes,
                                QueryHandler selector)
        Internal method to collect all nodes that have parameter set to value .
      • 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
      • equals

        public final boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • equals

        public final boolean equals​(Query other,
                                    java.util.Map<java.lang.String,​java.lang.Object> defaults,
                                    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 - varargs of query parameter names to ignore when checking for equality
        Returns:
        true if other is equal to this Query
      • 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 Query clone()
        Returns a deep copy of this Query instance.

        NOTE: values for parameters are shallow copied.

        Returns:
        a copy of this Query.
      • equals

        protected static boolean equals​(Query a,
                                        Query b,
                                        java.util.Map<java.lang.String,​java.lang.Object> defaults,
                                        java.util.Set<java.lang.String> ignore)
        Query equality method for 2 arbitrary query objects (null aware).
      • toCompactString

        protected java.lang.String toCompactString()
      • valueOf

        protected static Query valueOf​(java.lang.String value)
      • 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)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • 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)
      • toString

        protected abstract void toString​(java.lang.StringBuilder buffer,
                                         boolean compact)
        Write the String representation of this query to buffer.
      • 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.
      • 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
      • indent

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