Package org.apache.cayenne.exp.parser

# Class ASTExtract

java.lang.Object
org.apache.cayenne.exp.Expression
org.apache.cayenne.exp.parser.SimpleNode
org.apache.cayenne.exp.parser.EvaluatedNode
org.apache.cayenne.exp.parser.ASTFunctionCall
org.apache.cayenne.exp.parser.ASTExtract

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

public class ASTExtract extends ASTFunctionCall

See Also:
  - Serialized Form

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static enum`
  `ASTExtract.DateTimePart`
  Available components of date/time.

- ## Field Summary

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

  `functionName`

  ### 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`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ASTExtract(Expression expression)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `appendFunctionNameAsString(Appendable out)`
  `protected Object`
  `evaluateSubNode(Object o, Object[] evaluatedChildren)`
  `String`
  `getFunctionName()`
  `ASTExtract.DateTimePart`
  `getPart()`
  `String`
  `getPartCamelCaseName()`
  `protected int`
  `getRequiredChildrenCount()`
  `void`
  `setPart(ASTExtract.DateTimePart part)`
  This method is used by FunctionExpressionFactory
  `Expression`
  `shallowCopy()`
  Creates a copy of this expression node, without copying children.

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

  `appendAsEJBQL, appendAsString, equals, getExpressionOperator, getType, hashCode, nameToCamelCase, needParenthesis, setFunctionName`

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

  `evaluateNode`

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

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

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

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

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

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

- ## Constructor Details

  - ### ASTExtract

    public ASTExtract(Expression expression)

- ## Method Details

  - ### getFunctionName

    public String getFunctionName()
    Overrides:
      `getFunctionName` in class `ASTFunctionCall`

  - ### appendFunctionNameAsString

    protected void appendFunctionNameAsString(Appendable out) throws IOException
    Overrides:
      `appendFunctionNameAsString` in class `ASTFunctionCall`
    Throws:
      `IOException`

  - ### setPart

    public void setPart(ASTExtract.DateTimePart part)
    This method is used by FunctionExpressionFactory
    Parameters:
      `part` - date/time part to extract

  - ### getPart

    public ASTExtract.DateTimePart getPart()

  - ### getPartCamelCaseName

    public String getPartCamelCaseName()

  - ### 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`

  - ### getRequiredChildrenCount

    protected int getRequiredChildrenCount()
    Specified by:
      `getRequiredChildrenCount` in class `EvaluatedNode`

  - ### evaluateSubNode

    protected Object evaluateSubNode(Object o, Object[] evaluatedChildren) throws Exception
    Specified by:
      `evaluateSubNode` in class `EvaluatedNode`
    Throws:
      `Exception`