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

    All Methods Instance Methods Concrete Methods
    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 Detail

    - #### ASTExtract

          public ASTExtract​(Expression expression)

  - ### Method Detail

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