Class ExpressionFactory
public class ExpressionFactory extends Object
- 
Field SummaryFields Modifier and Type Field Description static charSPLIT_SEPARATORA "split" character, "|", that is understood by some of the ExpressionFactory methods that require splitting joins in the middle of the path.
- 
Constructor SummaryConstructors Constructor Description ExpressionFactory()
- 
Method SummaryModifier and Type Method Description static Expressionand(Collection<Expression> expressions)static Expressionand(Expression... expressions)static ExpressionbetweenDbExp(String pathSpec, Object value1, Object value2)A convenience shortcut for building BETWEEN expressions.static ExpressionbetweenExp(String pathSpec, Object value1, Object value2)A convenience shortcut for building BETWEEN expressions.static ExpressioncontainsExp(String pathSpec, String value)static ExpressioncontainsIgnoreCaseExp(String pathSpec, String value)Same ascontainsExp(String, String)only using case-insensitive comparison.static ExpressiondbPathExp(String pathSpec)static ExpressionendsWithExp(String pathSpec, String value)static ExpressionendsWithIgnoreCaseExp(String pathSpec, String value)Same asendsWithExp(String, String)only using case-insensitive comparison.static Expressionexp(String expressionString, Object... parameters)Parses string, converting it to Expression and optionally binding positional parameters.static ExpressionexpFalse()A convenience shortcut for boolean false expression.static ExpressionexpressionOfType(int type)Creates a new expression for the type requested.static ExpressionexpTrue()A convenience shortcut for boolean true expression.static ExpressionfullObjectExp()static ExpressionfullObjectExp(Expression exp)static ExpressiongreaterDbExp(String pathSpec, Object value)A convenience method to create an DB_PATH "greater than" expression.static ExpressiongreaterExp(String pathSpec, Object value)A convenience method to create an OBJ_PATH "greater than" expression.static ExpressiongreaterOrEqualDbExp(String pathSpec, Object value)A convenience method to create an DB_PATH "greater than or equal to" expression.static ExpressiongreaterOrEqualExp(String pathSpec, Object value)A convenience method to create an OBJ_PATH "greater than or equal to" expression.static ExpressioninDbExp(String pathSpec, Object... values)A convenience shortcut for building IN DB expression.static ExpressioninDbExp(String pathSpec, Collection<?> values)A convenience shortcut for building IN DB expression.static ExpressioninExp(String pathSpec, Object... values)A convenience shortcut for building IN expression.static ExpressioninExp(String pathSpec, Collection<?> values)A convenience shortcut for building IN expression.static ExpressionjoinExp(int type, Collection<Expression> expressions)Joins all expressions, making a single expression.static ExpressionjoinExp(int type, Expression... expressions)Joins all expressions, making a single expression.static ExpressionlessDbExp(String pathSpec, Object value)A convenience method to create an DB_PATH "less than" expression.static ExpressionlessExp(String pathSpec, Object value)A convenience method to create an OBJ_PATH "less than" expression.static ExpressionlessOrEqualDbExp(String pathSpec, Object value)A convenience method to create an DB_PATH "less than or equal to" expression.static ExpressionlessOrEqualExp(String pathSpec, Object value)A convenience method to create an OBJ_PATH "less than or equal to" expression.static ExpressionlikeDbExp(String pathSpec, Object value)A convenience shortcut for building LIKE DB_PATH expression.static ExpressionlikeDbExp(String pathSpec, Object value, char escapeChar)A convenience shortcut for building LIKE DB_PATH expression.static ExpressionlikeExp(String pathSpec, Object value)A convenience shortcut for building LIKE expression.static ExpressionlikeExp(String pathSpec, Object value, char escapeChar)A convenience shortcut for building LIKE expression.static ExpressionlikeIgnoreCaseDbExp(String pathSpec, Object value)A convenience shortcut for building LIKE_IGNORE_CASE expression.static ExpressionlikeIgnoreCaseDbExp(String pathSpec, Object value, char escapeChar)A convenience shortcut for building LIKE_IGNORE_CASE expression.static ExpressionlikeIgnoreCaseExp(String pathSpec, Object value)A convenience shortcut for building LIKE_IGNORE_CASE expression.static ExpressionlikeIgnoreCaseExp(String pathSpec, Object value, char escapeChar)A convenience shortcut for building LIKE_IGNORE_CASE expression.static ExpressionmatchAllDbExp(Map<String,?> map, int pairType)Creates an expression that matches all key-values pairs inmap.static ExpressionmatchAllExp(String path, Object... values)static ExpressionmatchAllExp(String path, Collection<?> values)Creates an expression to match a collection of values against a single path expression.static ExpressionmatchAllExp(Map<String,?> map, int pairType)Creates an expression that matches all key-values pairs inmap.static ExpressionmatchAnyDbExp(Map<String,?> map, int pairType)Creates an expression that matches any of the key-values pairs inmap.static ExpressionmatchAnyExp(List<? extends Persistent> objects)Creates an expression that matches any of the objects contained in the listobjectsstatic ExpressionmatchAnyExp(Map<String,?> map, int pairType)Creates an expression that matches any of the key-values pairs in themap.static ExpressionmatchAnyExp(Persistent... objects)Creates an expression that matches any of the objects contained in theobjectsarraystatic ExpressionmatchDbExp(String pathSpec, Object value)A convenience method to create an DB_PATH "equal to" expression.static ExpressionmatchExp(String pathSpec, Object value)A convenience method to create an OBJ_PATH "equal to" expression.static ExpressionmatchExp(Persistent object)Creates an expression that matches the primary key of object inObjectId'sIdSnapshotfor the argumentobject.static ExpressionnoMatchDbExp(String pathSpec, Object value)A convenience method to create an DB_PATH "not equal to" expression.static ExpressionnoMatchExp(String pathSpec, Object value)A convenience method to create an OBJ_PATH "not equal to" expression.static ExpressionnotBetweenDbExp(String pathSpec, Object value1, Object value2)A convenience shortcut for building NOT_BETWEEN expressions.static ExpressionnotBetweenExp(String pathSpec, Object value1, Object value2)A convenience shortcut for building NOT_BETWEEN expressions.static ExpressionnotInDbExp(String pathSpec, Object... values)A convenience shortcut for building NOT_IN expression.static ExpressionnotInDbExp(String pathSpec, Collection<?> values)A convenience shortcut for building NOT_IN expression.static ExpressionnotInExp(String pathSpec, Object... values)A convenience shortcut for building NOT_IN expression.static ExpressionnotInExp(String pathSpec, Collection<?> values)A convenience shortcut for building NOT_IN expression.static ExpressionnotLikeDbExp(String pathSpec, Object value)A convenience shortcut for building NOT_LIKE expression.static ExpressionnotLikeDbExp(String pathSpec, Object value, char escapeChar)A convenience shortcut for building NOT_LIKE expression.static ExpressionnotLikeExp(String pathSpec, Object value)A convenience shortcut for building NOT_LIKE expression.static ExpressionnotLikeExp(String pathSpec, Object value, char escapeChar)A convenience shortcut for building NOT_LIKE expression.static ExpressionnotLikeIgnoreCaseDbExp(String pathSpec, Object value)A convenience shortcut for building NOT_LIKE_IGNORE_CASE expression.static ExpressionnotLikeIgnoreCaseDbExp(String pathSpec, Object value, char escapeChar)A convenience shortcut for building NOT_LIKE_IGNORE_CASE expression.static ExpressionnotLikeIgnoreCaseExp(String pathSpec, Object value)A convenience shortcut for building NOT_LIKE_IGNORE_CASE expression.static ExpressionnotLikeIgnoreCaseExp(String pathSpec, Object value, char escapeChar)A convenience shortcut for building NOT_LIKE_IGNORE_CASE expression.static Expressionor(Collection<Expression> expressions)static Expressionor(Expression... expressions)static ExpressionpathExp(String pathSpec)static ExpressionstartsWithExp(String pathSpec, String value)static ExpressionstartsWithIgnoreCaseExp(String pathSpec, String value)Same asstartsWithExp(String, String)only using case-insensitive comparison.protected static ObjectwrapPathOperand(Object op)Applies a few default rules for adding operands to expressions.
- 
Field Details- 
SPLIT_SEPARATORpublic static final char SPLIT_SEPARATORA "split" character, "|", that is understood by some of the ExpressionFactory methods that require splitting joins in the middle of the path.- Since:
- 3.0
- See Also:
- Constant Field Values
 
 
- 
- 
Constructor Details- 
ExpressionFactorypublic ExpressionFactory()
 
- 
- 
Method Details- 
expressionOfTypeCreates a new expression for the type requested. If type is unknown, ExpressionException is thrown.
- 
wrapPathOperandApplies a few default rules for adding operands to expressions. In particular wraps all lists into LIST expressions. Applied only in path expressions.
- 
matchAnyDbExpCreates an expression that matches any of the key-values pairs inmap.For each pair pairTypeoperator is used to build a binary expression. Key is considered to be a DB_PATH expression. OR is used to join pair binary expressions.
- 
matchAllDbExpCreates an expression that matches all key-values pairs inmap.For each pair pairTypeoperator is used to build a binary expression. Key is considered to be a DB_PATH expression. AND is used to join pair binary expressions.
- 
matchAnyExpCreates an expression that matches any of the key-values pairs in themap.For each pair pairTypeoperator is used to build a binary expression. Key is considered to be a OBJ_PATH expression. OR is used to join pair binary expressions.
- 
matchAllExpCreates an expression that matches all key-values pairs inmap.For each pair pairTypeoperator is used to build a binary expression. Key is considered to be a OBJ_PATH expression. AND is used to join pair binary expressions.
- 
matchAllExpCreates an expression to match a collection of values against a single path expression.SplitsNote that "path" argument here can use a split character (a pipe symbol - '|') instead of dot to indicate that relationship following a path should be split into a separate set of joins. There can only be one split at most. Split must always precede a relationship. E.g. "|exhibits.paintings", "exhibits|paintings", etc. - Parameters:
- path- expression
- values- collection to match
- Since:
- 3.0
 
- 
matchAllExp- Since:
- 3.0
 
- 
matchDbExpA convenience method to create an DB_PATH "equal to" expression.
- 
noMatchDbExpA convenience method to create an DB_PATH "not equal to" expression.
- 
matchExpA convenience method to create an OBJ_PATH "equal to" expression.
- 
noMatchExpA convenience method to create an OBJ_PATH "not equal to" expression.
- 
lessExpA convenience method to create an OBJ_PATH "less than" expression.
- 
lessDbExpA convenience method to create an DB_PATH "less than" expression.- Since:
- 3.0
 
- 
lessOrEqualExpA convenience method to create an OBJ_PATH "less than or equal to" expression.
- 
lessOrEqualDbExpA convenience method to create an DB_PATH "less than or equal to" expression.- Since:
- 3.0
 
- 
greaterExpA convenience method to create an OBJ_PATH "greater than" expression.
- 
greaterDbExpA convenience method to create an DB_PATH "greater than" expression.- Since:
- 3.0
 
- 
greaterOrEqualExpA convenience method to create an OBJ_PATH "greater than or equal to" expression.
- 
greaterOrEqualDbExpA convenience method to create an DB_PATH "greater than or equal to" expression.- Since:
- 3.0
 
- 
inExpA convenience shortcut for building IN expression. Return ASTFalse for empty collection.
- 
inDbExpA convenience shortcut for building IN DB expression. Return ASTFalse for empty collection.
- 
inExpA convenience shortcut for building IN expression. Return ASTFalse for empty collection.
- 
inDbExpA convenience shortcut for building IN DB expression. Return ASTFalse for empty collection.
- 
notInExpA convenience shortcut for building NOT_IN expression. Return ASTTrue for empty collection.
- 
notInDbExpA convenience shortcut for building NOT_IN expression. Return ASTTrue for empty collection.- Since:
- 3.0
 
- 
notInExpA convenience shortcut for building NOT_IN expression. Return ASTTrue for empty collection.- Since:
- 1.0.6
 
- 
notInDbExpA convenience shortcut for building NOT_IN expression. Return ASTTrue for empty collection.- Since:
- 3.0
 
- 
betweenExpA convenience shortcut for building BETWEEN expressions.
- 
betweenDbExpA convenience shortcut for building BETWEEN expressions.- Since:
- 3.0
 
- 
notBetweenExpA convenience shortcut for building NOT_BETWEEN expressions.
- 
notBetweenDbExpA convenience shortcut for building NOT_BETWEEN expressions.- Since:
- 3.0
 
- 
likeExpA convenience shortcut for building LIKE expression.
- 
likeExpA convenience shortcut for building LIKE expression. The escape character allows for escaping meta-characters in the LIKE clause. Note that the escape character cannot be '?'. To specify no escape character, supply 0 as the escape character. - Since:
- 3.0.1
 
- 
likeDbExpA convenience shortcut for building LIKE DB_PATH expression.- Since:
- 3.0
 
- 
likeDbExpA convenience shortcut for building LIKE DB_PATH expression. The escape character allows for escaping meta-characters in the LIKE clause. Note that the escape character cannot be '?'. To specify no escape character, supply 0 as the escape character. - Since:
- 3.0.1
 
- 
notLikeExpA convenience shortcut for building NOT_LIKE expression.
- 
notLikeExpA convenience shortcut for building NOT_LIKE expression. The escape character allows for escaping meta-characters in the LIKE clause. Note that the escape character cannot be '?'. To specify no escape character, supply 0 as the escape character. - Since:
- 3.0.1
 
- 
notLikeDbExpA convenience shortcut for building NOT_LIKE expression.- Since:
- 3.0
 
- 
notLikeDbExpA convenience shortcut for building NOT_LIKE expression. The escape character allows for escaping meta-characters in the LIKE clause. Note that the escape character cannot be '?'. To specify no escape character, supply 0 as the escape character. - Since:
- 3.0.1
 
- 
likeIgnoreCaseExpA convenience shortcut for building LIKE_IGNORE_CASE expression.
- 
likeIgnoreCaseExpA convenience shortcut for building LIKE_IGNORE_CASE expression. The escape character allows for escaping meta-characters in the LIKE clause. Note that the escape character cannot be '?'. To specify no escape character, supply 0 as the escape character. - Since:
- 3.0.1
 
- 
likeIgnoreCaseDbExpA convenience shortcut for building LIKE_IGNORE_CASE expression.- Since:
- 3.0
 
- 
likeIgnoreCaseDbExpA convenience shortcut for building LIKE_IGNORE_CASE expression. The escape character allows for escaping meta-characters in the LIKE clause. Note that the escape character cannot be '?'. To specify no escape character, supply 0 as the escape character. - Since:
- 3.0.1
 
- 
notLikeIgnoreCaseExpA convenience shortcut for building NOT_LIKE_IGNORE_CASE expression.
- 
notLikeIgnoreCaseExpA convenience shortcut for building NOT_LIKE_IGNORE_CASE expression. The escape character allows for escaping meta-characters in the LIKE clause. Note that the escape character cannot be '?'. To specify no escape character, supply 0 as the escape character. - Since:
- 3.0.1
 
- 
notLikeIgnoreCaseDbExpA convenience shortcut for building NOT_LIKE_IGNORE_CASE expression.- Since:
- 3.0
 
- 
notLikeIgnoreCaseDbExpA convenience shortcut for building NOT_LIKE_IGNORE_CASE expression. The escape character allows for escaping meta-characters in the LIKE clause. Note that the escape character cannot be '?'. To specify no escape character, supply 0 as the escape character. - Since:
- 3.0.1
 
- 
containsExp- Returns:
- An expression for a database "LIKE" query with the value converted to a pattern matching anywhere in the String.
- Since:
- 4.0
 
- 
startsWithExp- Returns:
- An expression for a database "LIKE" query with the value converted to a pattern matching the beginning of the String.
- Since:
- 4.0
 
- 
endsWithExp- Returns:
- An expression for a database "LIKE" query with the value converted to a pattern matching the beginning of the String.
- Since:
- 4.0
 
- 
containsIgnoreCaseExpSame ascontainsExp(String, String)only using case-insensitive comparison.- Since:
- 4.0
 
- 
startsWithIgnoreCaseExpSame asstartsWithExp(String, String)only using case-insensitive comparison.- Since:
- 4.0
 
- 
endsWithIgnoreCaseExpSame asendsWithExp(String, String)only using case-insensitive comparison.- Since:
- 4.0
 
- 
pathExp- Parameters:
- pathSpec- a String "obj:" path.
- Returns:
- a new "obj:" path expression for the specified String path.
- Since:
- 4.0
 
- 
dbPathExp- Parameters:
- pathSpec- a String db: path.
- Returns:
- a new "db:" path expression for the specified String path.
- Since:
- 4.0
 
- 
expTrueA convenience shortcut for boolean true expression.- Since:
- 3.0
 
- 
expFalseA convenience shortcut for boolean false expression.- Since:
- 3.0
 
- 
joinExpJoins all expressions, making a single expression.typeis used as an expression type for expressions joining each one of the items on the list.typemust be binary expression type.For example, if type is Expression.AND, resulting expression would match all expressions in the list. If type is Expression.OR, resulting expression would match any of the expressions. 
- 
joinExpJoins all expressions, making a single expression.typeis used as an expression type for expressions joining each one of the items in the array.typemust be binary expression type.For example, if type is Expression.AND, resulting expression would match all expressions in the list. If type is Expression.OR, resulting expression would match any of the expressions. - Since:
- 4.1
 
- 
matchExpCreates an expression that matches the primary key of object inObjectId'sIdSnapshotfor the argumentobject.
- 
matchAnyExpCreates an expression that matches any of the objects contained in the listobjects
- 
matchAnyExpCreates an expression that matches any of the objects contained in theobjectsarray
- 
fullObjectExp
- 
fullObjectExp
- 
and- Since:
- 4.0
 
- 
and- Since:
- 4.0
 
- 
or- Since:
- 4.0
 
- 
or- Since:
- 4.0
 
- 
expParses string, converting it to Expression and optionally binding positional parameters. If a string does not represent a semantically correct expression, an ExpressionException is thrown.Binding of parameters by name (as opposed to binding by position) can be achieved by chaining this call with Expression.params(Map).- Since:
- 4.0
 
 
-