Package org.apache.cayenne.exp.parser
Class PatternMatchNode
- java.lang.Object
-
- org.apache.cayenne.exp.Expression
-
- org.apache.cayenne.exp.parser.SimpleNode
-
- org.apache.cayenne.exp.parser.ConditionNode
-
- org.apache.cayenne.exp.parser.PatternMatchNode
-
- All Implemented Interfaces:
Serializable
,Node
,XMLSerializable
- Direct Known Subclasses:
ASTLike
,ASTLikeIgnoreCase
,ASTNotLike
,ASTNotLikeIgnoreCase
public abstract class PatternMatchNode extends ConditionNode
Superclass of pattern matching nodes. Assumes that subclass is a binary expression with the second operand being a pattern.- Since:
- 1.1
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected char
escapeChar
protected boolean
ignoringCase
protected Pattern
pattern
protected boolean
patternCompiled
-
Fields inherited from class org.apache.cayenne.exp.parser.SimpleNode
children, id, parent
-
Fields inherited from class org.apache.cayenne.exp.Expression
ADD, AND, ASTERISK, BETWEEN, BITWISE_AND, BITWISE_LEFT_SHIFT, BITWISE_NOT, BITWISE_OR, BITWISE_RIGHT_SHIFT, BITWISE_XOR, CUSTOM_OP, DB_PATH, DBID_PATH, DIVIDE, ENCLOSING_OBJECT, EQUAL_TO, EXISTS, FALSE, FULL_OBJECT, FUNCTION_CALL, GREATER_THAN, GREATER_THAN_EQUAL_TO, IN, LESS_THAN, LESS_THAN_EQUAL_TO, LIKE, LIKE_IGNORE_CASE, LIST, MULTIPLY, NEGATIVE, NOT, NOT_BETWEEN, NOT_EQUAL_TO, NOT_EXISTS, NOT_IN, NOT_LIKE, NOT_LIKE_IGNORE_CASE, OBJ_PATH, OR, PRUNED_NODE, SUBQUERY, SUBTRACT, TRUE, type
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
appendChildrenAsEJBQL(List<Object> parameterAccumulator, Appendable out, String rootId)
Encodes child of this node with specified index to EJBQLchar
getEscapeChar()
This method will return an escape character for the like clause.protected Pattern
getPattern()
boolean
isIgnoringCase()
void
jjtAddChild(Node n, int i)
This method tells the node to add its argument to the node's list of children.protected boolean
matchPattern(String string)
void
setEscapeChar(char value)
This method allows the setting of the escape character.-
Methods inherited from class org.apache.cayenne.exp.parser.ConditionNode
evaluateNode, evaluateSubNode, getRequiredChildrenCount, jjtSetParent
-
Methods inherited from class org.apache.cayenne.exp.parser.SimpleNode
appendAsEJBQL, appendAsEJBQL, appendAsEscapedString, appendAsString, appendScalarAsString, connectChildren, encodeScalarAsEJBQL, evaluate, evaluateChild, expName, flattenTree, getEJBQLExpressionOperator, getExpressionOperator, getOperand, getOperandCount, getPathAliases, jjtClose, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, notExp, pruneNodeForPrunedChild, setOperand, unwrapChild, wrapChild
-
Methods inherited from class org.apache.cayenne.exp.Expression
andExp, andExp, deepCopy, encodeAsXML, equals, filter, filterObjects, first, getType, hashCode, joinExp, joinExp, match, orExp, orExp, params, params, paramsArray, setType, shallowCopy, toEJBQL, toEJBQL, toString, transform, transformExpression, traverse, traverse
-
-
-
-
Field Detail
-
pattern
protected transient Pattern pattern
-
patternCompiled
protected transient boolean patternCompiled
-
ignoringCase
protected boolean ignoringCase
-
escapeChar
protected char escapeChar
-
-
Method Detail
-
getEscapeChar
public char getEscapeChar()
This method will return an escape character for the like clause. The escape character will eventually end up in the query as
...(t0.foo LIKE ? {escape '|'})
where the pipe symbol is the escape character.Note that having no escape character is represented as the character 0.
-
setEscapeChar
public void setEscapeChar(char value)
This method allows the setting of the escape character. The escape character can be used in a LIKE clause. The character 0 signifies no escape character. The escape character '?' is disallowed.
-
isIgnoringCase
public boolean isIgnoringCase()
- Since:
- 4.2
-
matchPattern
protected boolean matchPattern(String string)
-
getPattern
protected Pattern getPattern()
-
jjtAddChild
public void jjtAddChild(Node n, int i)
Description copied from interface:Node
This method tells the node to add its argument to the node's list of children.- Specified by:
jjtAddChild
in interfaceNode
- Overrides:
jjtAddChild
in classSimpleNode
-
appendChildrenAsEJBQL
protected void appendChildrenAsEJBQL(List<Object> parameterAccumulator, Appendable out, String rootId) throws IOException
Description copied from class:SimpleNode
Encodes child of this node with specified index to EJBQL- Overrides:
appendChildrenAsEJBQL
in classSimpleNode
- Throws:
IOException
-
-