Class ExpressionFactory
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final charA "split" character, "|", that is understood by some of the ExpressionFactory methods that require splitting joins in the middle of the path. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Expressionall(ColumnSelect<?> subquery) static Expressionand(Collection<Expression> expressions) static Expressionand(Expression... expressions) static Expressionany(ColumnSelect<?> subquery) 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 ExpressionbetweenExp(Expression exp, Object value1, Object value2) static ExpressioncaseWhen(List<Expression> whenExp, List<Expression> thenExp) static ExpressioncaseWhen(List<Expression> whenExp, List<Expression> thenExp, Expression caseDefault) static ExpressioncontainsExp(String pathSpec, String value) static ExpressioncontainsExp(Expression exp, String value) static ExpressioncontainsIgnoreCaseExp(String pathSpec, String value) Same ascontainsExp(String, String)only using case-insensitive comparison.static ExpressioncontainsIgnoreCaseExp(Expression exp, String value) static ExpressiondbIdPathExp(String pathSpec) static ExpressiondbIdPathExp(CayennePath pathSpec) static Expressionstatic ExpressiondbPathExp(CayennePath path) static Expressionstatic ExpressionendsWithExp(String pathSpec, String value) static ExpressionendsWithExp(Expression exp, String value) static ExpressionendsWithIgnoreCaseExp(String pathSpec, String value) Same asendsWithExp(String, String)only using case-insensitive comparison.static ExpressionendsWithIgnoreCaseExp(Expression exp, String value) static Expressionexists(Expression exp) Builds expression representing EXIST subquery over a given pathstatic Expressionexists(FluentSelect<?, ?> subQuery) static ExpressionParses 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 Expressionstatic 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 ExpressiongreaterExp(Expression exp, Object value) 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 ExpressiongreaterOrEqualExp(Expression exp, Object value) static ExpressionA convenience shortcut for building IN DB expression.static ExpressioninDbExp(String pathSpec, Collection<?> values) A convenience shortcut for building IN DB expression.static ExpressionA convenience shortcut for building IN DBID expression.static ExpressioninDbIdExp(String pathSpec, Collection<?> values) A convenience shortcut for building IN DBID expression.static ExpressionA convenience shortcut for building IN expression.static ExpressioninExp(String pathSpec, Collection<?> values) A convenience shortcut for building IN expression.static ExpressioninExp(Expression exp, Object... values) static ExpressioninExp(Expression exp, Collection<?> values) static ExpressioninExp(Expression exp, ColumnSelect<?> subQuery) 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 ExpressionA convenience method to create an DB_PATH "less than" expression.static ExpressionA convenience method to create an OBJ_PATH "less than" expression.static ExpressionlessExp(Expression exp, Object value) 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 ExpressionlessOrEqualExp(Expression exp, Object value) static ExpressionA convenience shortcut for building LIKE DB_PATH expression.static ExpressionA convenience shortcut for building LIKE DB_PATH expression.static ExpressionA convenience shortcut for building LIKE expression.static ExpressionA convenience shortcut for building LIKE expression.static ExpressionlikeExp(Expression exp, Object value) static ExpressionlikeExp(Expression exp, Object value, char escapeChar) 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 ExpressionlikeIgnoreCaseExp(Expression exp, Object value) 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 ExpressionmatchDbIdExp(String pathSpec, Object value) A convenience method to create an DBID_PATH "equal to" expression.static ExpressionA convenience method to create an OBJ_PATH "equal to" expression.static ExpressionmatchExp(Expression exp, Object value) 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 ExpressionnoMatchDbIdExp(String pathSpec, Object value) A convenience method to create an DBID_PATH "not equal to" expression.static ExpressionnoMatchExp(String pathSpec, Object value) A convenience method to create an OBJ_PATH "not equal to" expression.static ExpressionnoMatchExp(Expression exp, Object value) 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 ExpressionnotBetweenExp(Expression exp, Object value1, Object value2) static ExpressionnotExists(Expression exp) Builds expression representing NOT EXIST subquery over a given pathstatic ExpressionnotExists(FluentSelect<?, ?> subQuery) 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 ExpressionnotInDbIdExp(String pathSpec, Object... values) A convenience shortcut for building NOT_IN expression.static ExpressionnotInDbIdExp(String pathSpec, Collection<?> values) A convenience shortcut for building NOT_IN expression.static ExpressionA convenience shortcut for building NOT_IN expression.static ExpressionnotInExp(String pathSpec, Collection<?> values) A convenience shortcut for building NOT_IN expression.static ExpressionnotInExp(Expression exp, Object... values) static ExpressionnotInExp(Expression exp, Collection<?> values) static ExpressionnotInExp(Expression exp, ColumnSelect<?> subQuery) 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 ExpressionnotLikeExp(Expression exp, Object value) static ExpressionnotLikeExp(Expression exp, Object value, char escapeChar) 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 ExpressionnotLikeIgnoreCaseExp(Expression exp, Object value) static ExpressionnotLikeIgnoreCaseExp(Expression exp, Object value, char escapeChar) static Expressionor(Collection<Expression> expressions) static Expressionor(Expression... expressions) static Expressionstatic ExpressionpathExp(CayennePath path) static ExpressionstartsWithExp(String pathSpec, String value) static ExpressionstartsWithExp(Expression exp, String value) static ExpressionstartsWithIgnoreCaseExp(String pathSpec, String value) Same asstartsWithExp(String, String)only using case-insensitive comparison.static ExpressionstartsWithIgnoreCaseExp(Expression exp, String value) protected static ObjectApplies a few default rules for adding operands to expressions.static ExpressionwrapScalarValue(Object value) Wrap value into ASTScalar
-
Field Details
-
SPLIT_SEPARATOR
public 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:
-
-
Constructor Details
-
ExpressionFactory
public ExpressionFactory()
-
-
Method Details
-
expressionOfType
Creates a new expression for the type requested. If type is unknown, ExpressionException is thrown. -
wrapPathOperand
Applies a few default rules for adding operands to expressions. In particular wraps all lists into LIST expressions. Applied only in path expressions. -
matchAnyDbExp
Creates 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. -
matchAllDbExp
Creates 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. -
matchAnyExp
Creates 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. -
matchAllExp
Creates 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. -
matchAllExp
Creates an expression to match a collection of values against a single path expression.Splits
Note 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- expressionvalues- collection to match- Since:
- 3.0
-
matchAllExp
- Since:
- 3.0
-
matchDbExp
A convenience method to create an DB_PATH "equal to" expression. -
noMatchDbExp
A convenience method to create an DB_PATH "not equal to" expression. -
matchExp
A convenience method to create an OBJ_PATH "equal to" expression. -
matchExp
- Since:
- 4.0
- See Also:
-
noMatchExp
A convenience method to create an OBJ_PATH "not equal to" expression. -
noMatchExp
- Since:
- 4.0
- See Also:
-
matchDbIdExp
A convenience method to create an DBID_PATH "equal to" expression.- Since:
- 4.2
-
noMatchDbIdExp
A convenience method to create an DBID_PATH "not equal to" expression.- Since:
- 4.2
-
lessExp
A convenience method to create an OBJ_PATH "less than" expression. -
lessExp
- Since:
- 4.0
- See Also:
-
lessDbExp
A convenience method to create an DB_PATH "less than" expression.- Since:
- 3.0
-
lessOrEqualExp
A convenience method to create an OBJ_PATH "less than or equal to" expression. -
lessOrEqualExp
- Since:
- 4.0
- See Also:
-
lessOrEqualDbExp
A convenience method to create an DB_PATH "less than or equal to" expression.- Since:
- 3.0
-
greaterExp
A convenience method to create an OBJ_PATH "greater than" expression. -
greaterExp
- Since:
- 4.0
- See Also:
-
greaterDbExp
A convenience method to create an DB_PATH "greater than" expression.- Since:
- 3.0
-
greaterOrEqualExp
A convenience method to create an OBJ_PATH "greater than or equal to" expression. -
greaterOrEqualExp
- Since:
- 4.0
- See Also:
-
greaterOrEqualDbExp
A convenience method to create an DB_PATH "greater than or equal to" expression.- Since:
- 3.0
-
inExp
A convenience shortcut for building IN expression. Return ASTFalse for empty collection. -
inExp
- Since:
- 4.0
- See Also:
-
inDbExp
A convenience shortcut for building IN DB expression. Return ASTFalse for empty collection. -
inExp
A convenience shortcut for building IN expression. Return ASTFalse for empty collection. -
inDbIdExp
A convenience shortcut for building IN DBID expression. Return ASTFalse for empty collection.- Since:
- 4.2
-
inExp
- Since:
- 4.0
- See Also:
-
inDbExp
A convenience shortcut for building IN DB expression. Return ASTFalse for empty collection. -
inDbIdExp
A convenience shortcut for building IN DBID expression. Return ASTFalse for empty collection.- Since:
- 4.2
-
notInExp
A convenience shortcut for building NOT_IN expression. Return ASTTrue for empty collection. -
notInExp
- Since:
- 4.0
- See Also:
-
notInDbExp
A convenience shortcut for building NOT_IN expression. Return ASTTrue for empty collection.- Since:
- 3.0
-
notInDbIdExp
A convenience shortcut for building NOT_IN expression. Return ASTTrue for empty collection.- Since:
- 4.2
-
notInExp
A convenience shortcut for building NOT_IN expression. Return ASTTrue for empty collection.- Since:
- 1.0.6
-
notInExp
- Since:
- 4.0
- See Also:
-
notInDbExp
A convenience shortcut for building NOT_IN expression. Return ASTTrue for empty collection.- Since:
- 3.0
-
notInDbIdExp
A convenience shortcut for building NOT_IN expression. Return ASTTrue for empty collection.- Since:
- 4.2
-
betweenExp
A convenience shortcut for building BETWEEN expressions. -
betweenExp
- Since:
- 4.0
- See Also:
-
betweenDbExp
A convenience shortcut for building BETWEEN expressions.- Since:
- 3.0
-
notBetweenExp
A convenience shortcut for building NOT_BETWEEN expressions. -
notBetweenExp
- Since:
- 4.0
- See Also:
-
notBetweenDbExp
A convenience shortcut for building NOT_BETWEEN expressions.- Since:
- 3.0
-
likeExp
A convenience shortcut for building LIKE expression. -
likeExp
- Since:
- 4.0
- See Also:
-
likeExp
A 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
-
likeExp
- Since:
- 4.0
- See Also:
-
likeDbExp
A convenience shortcut for building LIKE DB_PATH expression.- Since:
- 3.0
-
likeDbExp
A 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
-
notLikeExp
A convenience shortcut for building NOT_LIKE expression. -
notLikeExp
- Since:
- 4.0
- See Also:
-
notLikeExp
A 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
-
notLikeExp
- Since:
- 4.0
- See Also:
-
notLikeDbExp
A convenience shortcut for building NOT_LIKE expression.- Since:
- 3.0
-
notLikeDbExp
A 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
-
likeIgnoreCaseExp
A convenience shortcut for building LIKE_IGNORE_CASE expression. -
likeIgnoreCaseExp
- Since:
- 4.0
- See Also:
-
likeIgnoreCaseExp
A 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
-
likeIgnoreCaseDbExp
A convenience shortcut for building LIKE_IGNORE_CASE expression.- Since:
- 3.0
-
likeIgnoreCaseDbExp
A 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
-
notLikeIgnoreCaseExp
A convenience shortcut for building NOT_LIKE_IGNORE_CASE expression. -
notLikeIgnoreCaseExp
- Since:
- 4.0
- See Also:
-
notLikeIgnoreCaseExp
A 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
-
notLikeIgnoreCaseExp
- Since:
- 4.0
- See Also:
-
notLikeIgnoreCaseDbExp
A convenience shortcut for building NOT_LIKE_IGNORE_CASE expression.- Since:
- 3.0
-
notLikeIgnoreCaseDbExp
A 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
-
containsExp
- Since:
- 4.0
- See Also:
-
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
-
startsWithExp
- Since:
- 4.0
- See Also:
-
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
-
endsWithExp
- Since:
- 4.0
- See Also:
-
containsIgnoreCaseExp
Same ascontainsExp(String, String)only using case-insensitive comparison.- Since:
- 4.0
-
containsIgnoreCaseExp
- Since:
- 4.0
- See Also:
-
startsWithIgnoreCaseExp
Same asstartsWithExp(String, String)only using case-insensitive comparison.- Since:
- 4.0
-
startsWithIgnoreCaseExp
- Since:
- 4.0
- See Also:
-
endsWithIgnoreCaseExp
Same asendsWithExp(String, String)only using case-insensitive comparison.- Since:
- 4.0
-
endsWithIgnoreCaseExp
- Since:
- 4.0
- See Also:
-
pathExp
- Parameters:
pathSpec- a String "obj:" path.- Returns:
- a new "obj:" path expression for the specified String path.
- Since:
- 4.0
-
pathExp
- Parameters:
path- a path value.- Returns:
- a new "obj:" path expression for the specified path.
- Since:
- 5.0
-
dbPathExp
- Parameters:
pathSpec- a String db: path.- Returns:
- a new "db:" path expression for the specified String path.
- Since:
- 4.0
-
dbPathExp
- Parameters:
path- a path value- Returns:
- a new "db:" path expression for the specified path.
- Since:
- 5.0
-
dbIdPathExp
- Parameters:
pathSpec- a String "dbid:" path- Returns:
- a new "dbid:" path expression for the specified String path
- Since:
- 4.2
-
dbIdPathExp
- Parameters:
pathSpec- a "dbid:" path value- Returns:
- a new "dbid:" path expression for the specified path
- Since:
- 5.0
-
expTrue
A convenience shortcut for boolean true expression.- Since:
- 3.0
-
expFalse
A convenience shortcut for boolean false expression.- Since:
- 3.0
-
joinExp
Joins 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.
-
joinExp
Joins 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
-
matchExp
Creates an expression that matches the primary key of object inObjectId'sIdSnapshotfor the argumentobject. -
matchAnyExp
Creates an expression that matches any of the objects contained in the listobjects -
matchAnyExp
Creates an expression that matches any of the objects contained in theobjectsarray -
fullObjectExp
-
fullObjectExp
-
enclosingObjectExp
- Since:
- 4.2
-
and
- Since:
- 4.0
-
and
- Since:
- 4.0
-
or
- Since:
- 4.0
-
or
- Since:
- 4.0
-
exp
Parses 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
-
wrapScalarValue
Wrap value into ASTScalar- Since:
- 4.0
-
exists
- Parameters:
subQuery-ObjectSelectorColumnSelect- Since:
- 4.2
-
exists
Builds expression representing EXIST subquery over a given path- Parameters:
exp- expression to use for an EXISTS- Returns:
- expression representing exists subquery
- Since:
- 5.0
-
notExists
- Parameters:
subQuery-ObjectSelectorColumnSelect- Since:
- 4.2
-
notExists
Builds expression representing NOT EXIST subquery over a given path- Parameters:
exp- expression to use for an NOT EXISTS- Returns:
- expression representing exists subquery
- Since:
- 5.0
-
inExp
- Since:
- 4.2
-
notInExp
- Since:
- 4.2
-
all
- Since:
- 5.0
-
any
- Since:
- 5.0
-
caseWhen
- Since:
- 5.0
-
caseWhen
public static Expression caseWhen(List<Expression> whenExp, List<Expression> thenExp, Expression caseDefault) - Since:
- 5.0
-