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 EJBQL
    `char` | `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`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### 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 interface `Node`
      Overrides:
        `jjtAddChild` in class `SimpleNode`

    - #### 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 class `SimpleNode`
      Throws:
        `IOException`