Package com.attivio.sdk.search.query
Class Query
- java.lang.Object
-
- com.attivio.sdk.search.query.Query
-
- All Implemented Interfaces:
QueryParameters
,LocaleAware
,java.io.Serializable
,java.lang.Cloneable
- Direct Known Subclasses:
AccessControlQuery
,BooleanAndQuery
,BooleanNotQuery
,BooleanOrQuery
,BoostQuery
,CompositeJoinQuery
,FacetQuery
,FieldExpressionQuery
,FilterQuery
,GeoDistanceQuery
,GraphQuery
,JoinQuery
,PhraseQuery
,QueryPlugin
,QueryString
,SavedFilter
,ShapeQuery
,SubQuery
public abstract class Query extends java.lang.Object implements LocaleAware, QueryParameters
Abstract base class for queries.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.attivio.sdk.search.query.QueryParameters
QueryParameters.Parameter
-
-
Field Summary
Fields Modifier and Type Field Description protected int
boost
protected static BaseTypesMap<java.lang.String,java.lang.Object>
DEFAULT_PARAMETERS
Map of default values for query parametersprotected static java.util.Set<java.lang.String>
IGNORE_PARAMETERS
Set of parameters to ignore for equality checks.protected QueryParameters.Parameter
parameters
-
Fields inherited from interface com.attivio.sdk.search.query.QueryParameters
ACL, ACRONYMS, ACRONYMS_EXPANDED, ACRONYMS_ORIGINAL, ALIAS, ALLOW, ANONYMOUS, BOOST, BOOST_FREQUENCY, BOOST_POSITION, BOOST_PROXIMITY, COMPLETENESS_BOOST, DEFAULT_BOOST, DEFAULT_DEPTH, DEFAULT_FIELD_NORMS, DEFAULT_FUZZY_MAX_TERMS, DEFAULT_MINIMUM, DEFAULT_QUOTED, DEFAULT_RECURSIVE, DEFAULT_ROLLUP_LIMIT, DEFAULT_SCORE_DEPTH, DEFAULT_SCORE_EXPLAIN, DEFAULT_SEARCH_FIELD, DEFAULT_SIMILARITY, DEFAULT_SPAN, DENY, DEPTH, DISABLE_COORD, DISTANCE, FACET, FIELD_NORMS, FUZZY_MAX_TERMS, INDEX, LANGUAGE, LOWER, METHOD, MINIMUM, ON, ORDER, QUERY, QUERY_LANGUAGE, QUOTED, RECURSIVE, RELEVANCY_MODEL, ROLLUP, SCORE_DEPTH, SCORE_EXPLAIN, SCORE_FUNCTIONS, SCORE_MODE, SIMILARITY, SIMILARITY_PREFIX, SOUNDS_LIKE, SPAN, SPELLCHECK_CORRECTED, SPELLCHECK_EXPANDED, SPELLCHECK_MODE, SPELLCHECK_ORIGINAL, SPELLCHECK_SUGGESTIONS, STOPWORDS, SYNONYMS, SYNONYMS_EXPANDED, SYNONYMS_ORIGINAL, TOKENIZE, UNSECURED_ZONES, UPPER, WARNING, WILDCARD, XON
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
Query()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected static void
addParameter(java.lang.StringBuilder buffer, java.lang.String name, java.lang.Object value)
Add "\"name
\"=\"value
\"" tobuffer
.void
addParameter(java.lang.String name, java.lang.Object value)
allow multiple values per nameprotected static void
addParameterCompact(java.lang.StringBuilder buffer, java.lang.String name, java.lang.Object value)
Add "\"name
\"=\"value
\"" tobuffer
, omitting value if it is Boolean.TRUE.protected void
addParameters(java.lang.StringBuilder buffer, boolean compact)
Append all parameters for this query tobuffer
.protected static void
appendParameter(java.lang.StringBuilder buffer, java.lang.String name, java.lang.Object value)
Add ", \"name
\"=\"value
\"" tobuffer
.protected void
appendParameters(java.lang.StringBuilder buffer, boolean compact)
Append allparameters
tobuffer
.Query
clone()
Returns a deep copy of this Query instance.boolean
containsParameter(java.lang.String name)
Returns true if the specified parameter exists for this Query object.boolean
containsParameters()
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).boolean
equals(Query other, java.util.Map<java.lang.String,java.lang.Object> defaults, java.lang.String... ignore)
Checks whetherquery
equals this Query object.boolean
equals(java.lang.Object other)
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 whetherquery
equals this Query object.protected static void
escape(java.lang.StringBuilder buffer, java.lang.Object value)
protected void
escape(java.lang.StringBuilder buffer, java.lang.String value, boolean quote)
Helper method to escape a string for toString() .java.util.List<QueryParameters.Parameter>
getAllParameters()
Get generic query optionsint
getBoost()
Gets the boost value for this Query.Query
getFirstNode(QueryHandler selector)
Get the first query in the tree that hasparameter
set tovalue
.protected java.lang.Object
getInternalParameter(java.lang.String name)
java.util.Locale
getLocale()
Gets the local associated with this object or null if not set.java.lang.Iterable<Query>
getNodes(QueryHandler selector)
Get all nodes in the query tree that haveparameter
set tovalue
.protected void
getNodes(java.util.List<Query> nodes, QueryHandler selector)
Internal method to collect all nodes that haveparameter
set tovalue
.java.lang.Object
getParameter(java.lang.String name)
Returns a named property for this Query object.boolean
getParameter(java.lang.String name, boolean defaultValue)
Gets a boolean parameter.double
getParameter(java.lang.String name, double defaultValue)
Gets a double parameter.float
getParameter(java.lang.String name, float defaultValue)
Gets a float parameter.int
getParameter(java.lang.String name, int defaultValue)
Gets an integer parameter.long
getParameter(java.lang.String name, long defaultValue)
Gets a long parameter.java.lang.Object
getParameter(java.lang.String name, java.lang.Object defaultValue)
Gets a parameter.java.lang.String
getParameter(java.lang.String name, java.lang.String defaultValue)
Gets a String parameter.java.util.List<java.lang.Object>
getParameterList(java.lang.String name)
Returns list of values found for the named property for this Query object.java.lang.String
getQueryLanguage()
Get the query language for this query.java.lang.String
getQueryString()
Get the query string used to create this query.int
hashCode()
protected static java.lang.StringBuilder
indent(java.lang.StringBuilder buffer, int indent)
Support method to indent a "line" in a StringBuilder.protected boolean
isCompactParameter(java.lang.String key, java.lang.Object value)
Check if parameter should be included in compact representation.Query
optimize()
Optimizes this query object, removing unnecessary levels of expressions.java.util.Iterator<java.util.Map.Entry<java.lang.String,java.lang.Object>>
parameters()
Get an iterator for returning all custom parameters.protected static int
parseIntParameter(java.lang.Object value, int defaultValue)
java.lang.String
prettyFormat()
Returns a hierarchical representation of this query as a string.protected void
prettyFormat(java.lang.StringBuilder buffer, int indent)
Pretty format all parameters for this Query instance.protected void
prettyFormatParameters(java.lang.StringBuilder buffer, int indent)
void
prettyPrint()
Sends a hierarchical representation of this query to standard out.void
prettyPrint(java.io.PrintStream out)
Sends a hierarchical representation of this query specified PrintStream.java.lang.Object
removeParameter(java.lang.String name)
Remove the value for a parameter for this Query object.Query
rewrite(QueryHandler handler)
Recursively rewrite this query usinghandler
.void
rewriteChildren(QueryHandler handler)
Rewrite child nodes usinghandler
.protected void
setBooleanParameter(java.lang.String key, java.lang.Object value)
Internal method for setting a boolean parameter.void
setBoost(int value)
Sets the boost for this Query.void
setBoost(java.lang.String value)
Sets the boost for this Query.protected void
setEnumParameter(java.lang.String key, java.lang.Object value, java.lang.String... enumValues)
Internal method for setting an object parameter.protected void
setIntegerParameter(java.lang.String key, java.lang.Object value)
Internal method for setting an integer parameter.void
setLocale(java.util.Locale locale)
Sets the local associated with this object.void
setParameter(java.lang.String name, java.lang.Object value)
void
setParameters(Query query)
Copies all parameters from another query into this Query instance.void
setParameters(Query query, boolean override)
Copies all parameters from another query into this Query instance.void
setParameters(java.util.Map<java.lang.String,java.lang.Object> value)
void
setParameters(java.util.Map<java.lang.String,java.lang.Object> params, boolean override)
Copies parameters from a Map into this Query.protected void
setRollupParameter(java.lang.String key, java.lang.Object value)
protected void
setStringParameter(java.lang.String key, java.lang.Object value)
Internal method for setting a string parameter.protected void
setUnsignedParameter(java.lang.String key, java.lang.Object value)
Internal method for setting an integer parameter.protected java.lang.String
toCompactString()
java.lang.String
toString()
java.lang.String
toString(boolean compact)
protected abstract void
toString(java.lang.StringBuilder buffer, boolean compact)
Write the String representation of this query tobuffer
.protected static Query
valueOf(java.lang.String value)
-
-
-
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
-
parameters
protected QueryParameters.Parameter parameters
-
-
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 tobuffer
.
-
appendParameters
protected void appendParameters(java.lang.StringBuilder buffer, boolean compact)
Append allparameters
tobuffer
.
-
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 interfaceLocaleAware
-
setLocale
public void setLocale(java.util.Locale locale)
Sets the local associated with this object.- Specified by:
setLocale
in interfaceLocaleAware
-
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 usinghandler
.
-
rewriteChildren
public void rewriteChildren(QueryHandler handler)
Rewrite child nodes usinghandler
.
-
getFirstNode
public Query getFirstNode(QueryHandler selector)
Get the first query in the tree that hasparameter
set tovalue
.WARNING: this is an experimental API and may change in the near future.
- Returns:
- the first query in the query tree that matches
selector
, ornull
if no match found.
-
getNodes
public final java.lang.Iterable<Query> getNodes(QueryHandler selector)
Get all nodes in the query tree that haveparameter
set tovalue
.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 haveparameter
set tovalue
.
-
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 classjava.lang.Object
-
equals
public final boolean equals(Query other, java.util.Map<java.lang.String,java.lang.Object> defaults, java.lang.String... ignore)
Checks whetherquery
equals this Query object.- Parameters:
other
- the query to compare todefaults
- map of default values for query parametersignore
- 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 whetherquery
equals this Query object.- Parameters:
other
- the query to compare todefaults
- map of default values for query parametersignore
- 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
\"" tobuffer
.
-
addParameter
protected static void addParameter(java.lang.StringBuilder buffer, java.lang.String name, java.lang.Object value)
Add "\"name
\"=\"value
\"" tobuffer
.
-
addParameterCompact
protected static void addParameterCompact(java.lang.StringBuilder buffer, java.lang.String name, java.lang.Object value)
Add "\"name
\"=\"value
\"" tobuffer
, 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 classjava.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 tovalue
- the value to escapequote
- if true, escaped value will be wrapped in double quotes.
-
toString
public final java.lang.String toString()
- Overrides:
toString
in classjava.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 tobuffer
.
-
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.
-
-