Package com.day.cq.search
Class PredicateConverter
- java.lang.Object
-
- com.day.cq.search.PredicateConverter
-
public abstract class PredicateConverter extends java.lang.Object
PredicateConverter provides mappings from the predicate/predicate group data structure to others, such as a simple key/value string map (eg. a request parameter map).- Since:
- 5.2
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
GROUP_PARAMETER_PREFIX
Prefix to separate predicate group parameters from child predicates (to be exact: from parameters of child predicates).static java.lang.String
IGNORE_PARAMETER_PREFIX
All parameters starting with "_" will be ignored.
-
Constructor Summary
Constructors Constructor Description PredicateConverter()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.util.Map<java.lang.String,java.lang.String>
createMap(PredicateGroup root)
Converts a predicate tree into a parameter map, the inverse transformation ofcreatePredicates(Map)
.static PredicateGroup
createPredicates(java.util.Map predicateParameterMap)
Converts a map with predicates and their parameters into a predicate tree.static PredicateGroup
createPredicatesFromGQL(java.lang.String statement)
Parse and converts GQL statement to QueryBuilder PredicateGroup.static java.lang.String
toURL(PredicateGroup group)
Returns an URL query part containing the given group.
-
-
-
Field Detail
-
GROUP_PARAMETER_PREFIX
public static final java.lang.String GROUP_PARAMETER_PREFIX
Prefix to separate predicate group parameters from child predicates (to be exact: from parameters of child predicates). This also means that there cannot be a predicate type named like this (ie."p"
). Examples to show the difference:p.limit = true
(group parameter)type = nt:file
(child predicate)path.exact = true
(child predicate parameter)group.type = nt:file
(child predicate group w/ predicate)group.p.or = true
(group parameter of child group)
- See Also:
- Constant Field Values
-
IGNORE_PARAMETER_PREFIX
public static final java.lang.String IGNORE_PARAMETER_PREFIX
All parameters starting with "_" will be ignored. Typical examples are "_charset_" or "_dc".- See Also:
- Constant Field Values
-
-
Method Detail
-
createPredicates
public static PredicateGroup createPredicates(java.util.Map predicateParameterMap)
Converts a map with predicates and their parameters into a predicate tree. Accepts a map with strings as keys and either simple strings as values or string arrays as values. In the array case, the first value will be chosen.Note that all parameters starting with a "_" (see
IGNORE_PARAMETER_PREFIX
) will be ignored. Typical examples are "_charset_" or "_dc".
-
createMap
public static java.util.Map<java.lang.String,java.lang.String> createMap(PredicateGroup root)
Converts a predicate tree into a parameter map, the inverse transformation ofcreatePredicates(Map)
.
-
toURL
public static java.lang.String toURL(PredicateGroup group)
Returns an URL query part containing the given group. This is the same mapping as used increateMap(PredicateGroup)
andcreatePredicates(Map)
. For example, the returned value could be:type=cq:Page&path=/content
. Note that this won't be a complete URL, just a list of parameters for an URL query part. The keys and values will be properly escaped for use in an URL.
-
createPredicatesFromGQL
public static PredicateGroup createPredicatesFromGQL(java.lang.String statement) throws RepositoryException
Parse and converts GQL statement to QueryBuilder PredicateGroup.- Parameters:
statement
- the statement to be processed for extracting conditions.- Returns:
- PredicateGroup containing all conditions formed from statement
- Throws:
RepositoryException
-
-