Class QueryString

  • All Implemented Interfaces:
    QueryParameters, LocaleAware, java.io.Serializable, java.lang.Cloneable

    public final class QueryString
    extends Query
    Query operator that contains an unparsed query string.

    This query object can specify the query language to use to parse the attached query string. Out of the box support is present for the Attivio advanced (QueryLanguages.ADVANCED and simple (QueryLanguages.SIMPLE) query languages.

    NOTE: This is not a concrete query implementation. The contained query string must be parsed and replace this QueryString in the query tree in order to be interpreted properly.

    See Also:
    Serialized Form
    • Constructor Detail

      • QueryString

        public QueryString​(java.lang.String query)
      • QueryString

        public QueryString​(java.lang.String query,
                           java.lang.String language)
    • Method Detail

      • setQueryString

        public void setQueryString​(java.lang.String value)
        Set the query string.
      • 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.

        Overrides:
        getQueryLanguage in class Query
      • setQueryLanguage

        public void setQueryLanguage​(java.lang.String language)
        Set the query language for the query string.
      • 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
      • isCompactParameter

        protected boolean isCompactParameter​(java.lang.String key,
                                             java.lang.Object value)
        Check if parameter should be included in compact representation.
        Overrides:
        isCompactParameter in class Query
      • 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.
        Overrides:
        equals in class Query
        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 QueryString clone()
        Returns a deep copy of this Query instance.

        NOTE: values for parameters are shallow copied.

        Overrides:
        clone in class Query
        Returns:
        a copy of this 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.
      • 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.