Package org.apache.cayenne.exp.parser
Class ASTFunctionCall
- 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
-
- All Implemented Interfaces:
Serializable
,Node
,XMLSerializable
- Direct Known Subclasses:
ASTAbs
,ASTAggregateFunctionCall
,ASTConcat
,ASTCurrentDate
,ASTCurrentTime
,ASTCurrentTimestamp
,ASTCustomFunction
,ASTExtract
,ASTLength
,ASTLocate
,ASTLower
,ASTMod
,ASTSqrt
,ASTSubstring
,ASTTrim
,ASTUpper
public abstract class ASTFunctionCall extends EvaluatedNode
- Since:
- 4.0
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected String
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 ASTFunctionCall(int id, String functionName, Object... nodes)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods 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.void
appendAsString(Appendable out)
Appends own content as a String to the provided Appendable.protected void
appendFunctionNameAsString(Appendable out)
boolean
equals(Object o)
protected String
getExpressionOperator(int index)
String
getFunctionName()
int
getType()
Returns a type of expression.int
hashCode()
protected static String
nameToCamelCase(String functionName)
boolean
needParenthesis()
protected void
setFunctionName(String functionName)
-
Methods inherited from class org.apache.cayenne.exp.parser.EvaluatedNode
evaluateNode, evaluateSubNode, getRequiredChildrenCount
-
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, shallowCopy, toEJBQL, toEJBQL, toString, transform, transformExpression, traverse, traverse
-
-
-
-
Field Detail
-
functionName
protected String functionName
-
-
Method Detail
-
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 classExpression
-
needParenthesis
public boolean needParenthesis()
-
getFunctionName
public String getFunctionName()
-
setFunctionName
protected void setFunctionName(String functionName)
-
getExpressionOperator
protected String getExpressionOperator(int index)
- Specified by:
getExpressionOperator
in classSimpleNode
-
equals
public boolean equals(Object o)
- Overrides:
equals
in classExpression
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classExpression
-
appendFunctionNameAsString
protected void appendFunctionNameAsString(Appendable out) throws IOException
- Throws:
IOException
-
appendAsString
public void appendAsString(Appendable out) throws IOException
Description copied from class:Expression
Appends own content as a String to the provided Appendable.- Overrides:
appendAsString
in classSimpleNode
- Throws:
IOException
-
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 classSimpleNode
- Throws:
IOException
-
-