Package org.apache.cayenne.exp.parser

# Class ASTWhen

java.lang.Object
org.apache.cayenne.exp.Expression
org.apache.cayenne.exp.parser.SimpleNode
org.apache.cayenne.exp.parser.AggregateConditionNode
org.apache.cayenne.exp.parser.ASTWhen

All Implemented Interfaces:
  `Serializable`, `Node`, `XMLSerializable`

public class ASTWhen extends AggregateConditionNode
"WHEN" part of the case-when expression.

Since:
  5.0
See Also:
  - Serialized Form

- ## Field Summary

  ### Fields inherited from class org.apache.cayenne.exp.parser.SimpleNode

  `children, id, parent`

  ### Fields inherited from class org.apache.cayenne.exp.Expression

  `ADD, ALL, AND, ANY, ASTERISK, BETWEEN, BITWISE_AND, BITWISE_LEFT_SHIFT, BITWISE_NOT, BITWISE_OR, BITWISE_RIGHT_SHIFT, BITWISE_XOR, CASE_WHEN, CUSTOM_OP, DB_PATH, DBID_PATH, DIVIDE, ELSE, 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, SCALAR, SUBQUERY, SUBTRACT, THEN, TRUE, type, WHEN`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ASTWhen(int id)`
  `ASTWhen(Expression condition)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `appendAsEJBQL(List<Object> parameterAccumulator, Appendable out, String rootId)`
  Stores a String representation of Expression as EJBQL using a provided PrintWriter.
  `protected Object`
  `evaluateNode(Object o)`
  Evaluates itself with object, pushing result on the stack.
  `protected String`
  `getExpressionOperator(int index)`
  `int`
  `getType()`
  Returns a type of expression.
  `void`
  `jjtSetParent(Node n)`
  This pair of methods are used to inform the node of its parent.
  `Expression`
  `shallowCopy()`
  Creates a copy of this expression node, without copying children.

  ### Methods inherited from class org.apache.cayenne.exp.parser.AggregateConditionNode

  `exists, isValidParent, jjtAddChild, notExists, pruneNodeForPrunedChild, transformExpression`

  ### Methods inherited from class org.apache.cayenne.exp.parser.SimpleNode

  `appendAsEJBQL, appendAsEscapedString, appendAsString, appendChildrenAsEJBQL, appendScalarAsString, connectChildren, encodeScalarAsEJBQL, evaluate, evaluateChild, expName, flattenTree, getEJBQLExpressionOperator, getOperand, getOperandCount, getPathAliases, jjtClose, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, notExp, setOperand, unwrapChild, wrapChild`

  ### Methods inherited from class org.apache.cayenne.exp.Expression

  `andExp, andExp, deepCopy, encodeAsXML, equals, filter, filterObjects, first, hashCode, joinExp, joinExp, match, orExp, orExp, params, params, paramsArray, setType, toEJBQL, toEJBQL, toString, transform, traverse, traverse`

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

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

- ## Constructor Details

  - ### ASTWhen

    public ASTWhen(Expression condition)

  - ### ASTWhen

    public ASTWhen(int id)

- ## Method Details

  - ### shallowCopy

    public Expression shallowCopy()
    Description copied from class: `Expression`
    Creates a copy of this expression node, without copying children.
    Specified by:
      `shallowCopy` in class `Expression`

  - ### getExpressionOperator

    protected String getExpressionOperator(int index)
    Specified by:
      `getExpressionOperator` in class `SimpleNode`

  - ### evaluateNode

    protected Object evaluateNode(Object o) throws Exception
    Description copied from class: `SimpleNode`
    Evaluates itself with object, pushing result on the stack.
    Specified by:
      `evaluateNode` in class `SimpleNode`
    Throws:
      `Exception`

  - ### getType

    public int getType()
    Description copied from class: `Expression`
    Returns a type of expression. Most common types are defined as public static fields of this interface.
    Overrides:
      `getType` in class `Expression`

  - ### jjtSetParent

    public void jjtSetParent(Node n)
    Description copied from interface: `Node`
    This pair of methods are used to inform the node of its parent.
    Specified by:
      `jjtSetParent` in interface `Node`
    Overrides:
      `jjtSetParent` in class `SimpleNode`

  - ### appendAsEJBQL

    public void appendAsEJBQL(List<Object> parameterAccumulator, Appendable out, String rootId) throws IOException
    Description copied from class: `Expression`
    Stores a String representation of Expression as EJBQL using a provided PrintWriter. DB path expressions produce non-standard EJBQL path expressions. If the parameterAccumulator is supplied then as the EJBQL is output, it may load parameters into this list. In this case, the EJBQL output will contain reference to positional parameters. If no parameterAccumulator is supplied and a scalar type is encountered for which there is no EJBQL literal representation (such as dates) then this method will throw a runtime exception to indicate that it was not possible to generate a string-only representation of the Expression in EJBQL.
    Overrides:
      `appendAsEJBQL` in class `SimpleNode`
    Throws:
      `IOException`