|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.derby.impl.sql.compile.QueryTreeNode
org.apache.derby.impl.sql.compile.JavaValueNode
org.apache.derby.impl.sql.compile.MethodCallNode
abstract class MethodCallNode
A MethodCallNode represents a Java method call. Method calls can be done through DML (as expressions) or through the CALL statement.
Field Summary | |
---|---|
protected java.lang.String |
actualMethodReturnType
|
(package private) boolean |
internalCall
True if this is an internal call, just used to set up a generated method call. |
(package private) java.lang.String |
javaClassName
The name of the class containing the method. |
protected java.lang.reflect.Member |
method
|
(package private) java.lang.String |
methodName
|
(package private) java.lang.String[] |
methodParameterTypes
The parameter types for the resolved method. |
protected JavaValueNode[] |
methodParms
|
private java.lang.String[] |
procedurePrimitiveArrayType
For resolution of procedure INOUT/OUT parameters to the primitive form, such as int[]. |
(package private) RoutineAliasInfo |
routineInfo
For a procedure or function call |
protected JSQLType[] |
signature
|
Fields inherited from class org.apache.derby.impl.sql.compile.JavaValueNode |
---|
forCallStatement, jsqlType |
Fields inherited from class org.apache.derby.impl.sql.compile.QueryTreeNode |
---|
AUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX, isPrivilegeCollectionRequired |
Constructor Summary | |
---|---|
MethodCallNode()
|
Method Summary | |
---|---|
(package private) void |
acceptChildren(Visitor v)
Accept the visitor for all visitable children of this node. |
void |
addParms(java.util.Vector parameterList)
Add the parameter list |
protected boolean |
areParametersQueryInvariant()
Return whether or not all of the parameters to this node are QUERY_INVARIANT or CONSTANT. |
(package private) void |
bindParameters(FromList fromList,
SubqueryList subqueryList,
java.util.Vector aggregateVector)
Bind this expression. |
boolean |
categorize(JBitSet referencedTabs,
boolean simplePredsOnly)
Categorize this predicate. |
void |
generateOneParameter(ExpressionClassBuilder acb,
MethodBuilder mb,
int parameterNumber)
Generate one parameter to the given method call. |
int |
generateParameters(ExpressionClassBuilder acb,
MethodBuilder mb)
Generate the parameters to the given method call |
(package private) void |
getCorrelationTables(JBitSet correlationMap)
Build a JBitSet of all of the tables that we are correlated with. |
DataTypeDescriptor |
getDataType()
Override method in ancestor. |
protected boolean[] |
getIsParam()
Build an array of booleans denoting whether or not a given method parameter is a ?. |
java.lang.String |
getJavaClassName()
|
java.lang.String |
getMethodName()
|
java.lang.Class[] |
getMethodParameterClasses()
Get the resolved Classes of our parameters |
JavaValueNode[] |
getMethodParms()
Get the method parameters. |
protected java.lang.String[] |
getObjectSignature()
Build an array of names of the argument types. |
private java.lang.String |
getObjectTypeName(JSQLType jsqlType)
|
protected int |
getOrderableVariantType()
Return the variant type for the underlying expression. |
static java.lang.String |
getParameterTypeName(JavaValueNode param)
|
(package private) java.lang.String[] |
getPrimitiveSignature(boolean castToPrimitiveAsNecessary)
|
java.lang.reflect.Member |
getResolvedMethod()
|
RoutineAliasInfo |
getRoutineInfo()
Get the details on the invoked routines. |
private int |
getVariantTypeOfParams()
|
void |
init(java.lang.Object methodName)
Initializer for a MethodCallNode |
private java.lang.String[] |
parseValidateSignature(java.lang.String externalName,
int offset,
boolean hasDynamicResultSets)
Parse the user supplied signature for a method and validate it, need to match the number of parameters passed in and match the valid types for the parameter. |
void |
preprocess(int numTables,
FromList outerFromList,
SubqueryList outerSubqueryList,
PredicateList outerPredicateList)
Preprocess an expression tree. |
void |
printSubNodes(int depth)
Prints the sub-nodes of this object. |
JavaValueNode |
remapColumnReferencesToExpressions()
Remap all ColumnReferences in this tree to be clones of the underlying expression. |
protected void |
resolveMethodCall(java.lang.String javaClassName,
boolean staticMethod)
|
void |
setNullParameterInfo(java.lang.String[] parmTypeNames)
Set the appropriate type information for a null passed as a parameter. |
protected boolean |
someParametersAreNull()
Return true if some parameters are null, false otherwise. |
(package private) void |
throwNoMethodFound(java.lang.String receiverTypeName,
java.lang.String[] parmTypeNames,
java.lang.String[] primParmTypeNames)
Build parameters for error message and throw the exception when there is no matching signature found. |
java.lang.String |
toString()
Convert this object to a String. |
Methods inherited from class org.apache.derby.impl.sql.compile.JavaValueNode |
---|
bindExpression, castToPrimitive, checkReliability, generate, generateExpression, generateReceiver, generateReceiver, getCollationType, getConstantValueAsObject, getJavaTypeName, getJSQLType, getPrimitiveTypeName, getReceiverExpression, isPrimitiveType, mapToTypeID, markForCallStatement, markReturnValueDiscarded, mustCastToPrimitive, returnValueDiscarded, returnValueToSQLDomain, setCollationType, setJavaTypeName, valueReturnedToSQLDomain |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
java.lang.String methodName
java.lang.String javaClassName
JavaValueNode.bindExpression(org.apache.derby.impl.sql.compile.FromList, org.apache.derby.impl.sql.compile.SubqueryList, java.util.Vector)
,
getJavaClassName()
RoutineAliasInfo routineInfo
boolean internalCall
private java.lang.String[] procedurePrimitiveArrayType
protected JSQLType[] signature
protected JavaValueNode[] methodParms
protected java.lang.reflect.Member method
protected java.lang.String actualMethodReturnType
java.lang.String[] methodParameterTypes
Constructor Detail |
---|
MethodCallNode()
Method Detail |
---|
public void init(java.lang.Object methodName)
init
in class QueryTreeNode
methodName
- The name of the method to callpublic java.lang.String getMethodName()
public java.lang.String getJavaClassName()
public java.lang.reflect.Member getResolvedMethod()
public RoutineAliasInfo getRoutineInfo()
public void addParms(java.util.Vector parameterList) throws StandardException
parameterList
- A Vector of the parameters
StandardException
- Thrown on errorpublic java.lang.Class[] getMethodParameterClasses()
void getCorrelationTables(JBitSet correlationMap) throws StandardException
correlationMap
- The JBitSet of the tables that we are correlated with.
StandardException
public void printSubNodes(int depth)
printSubNodes
in class QueryTreeNode
depth
- The depth of this node in the treepublic java.lang.String toString()
toString
in class QueryTreeNode
final void bindParameters(FromList fromList, SubqueryList subqueryList, java.util.Vector aggregateVector) throws StandardException
fromList
- The FROM list for the query this
expression is in, for binding columns.subqueryList
- The subquery list being built as we find SubqueryNodesaggregateVector
- The aggregate vector being built as we find AggregateNodes
StandardException
- Thrown on errorprotected boolean areParametersQueryInvariant() throws StandardException
StandardException
- thrown on errorvoid throwNoMethodFound(java.lang.String receiverTypeName, java.lang.String[] parmTypeNames, java.lang.String[] primParmTypeNames) throws StandardException
receiverTypeName
- Type name for receiverparmTypeNames
- Type names for parameters as object typesprimParmTypeNames
- Type names for parameters as primitive types
StandardException
- Thrown on errorpublic void preprocess(int numTables, FromList outerFromList, SubqueryList outerSubqueryList, PredicateList outerPredicateList) throws StandardException
preprocess
in class JavaValueNode
numTables
- Number of tables in the DML StatementouterFromList
- FromList from outer query blockouterSubqueryList
- SubqueryList from outer query blockouterPredicateList
- PredicateList from outer query block
StandardException
- Thrown on errorValueNode.preprocess(int, org.apache.derby.impl.sql.compile.FromList, org.apache.derby.impl.sql.compile.SubqueryList, org.apache.derby.impl.sql.compile.PredicateList)
public boolean categorize(JBitSet referencedTabs, boolean simplePredsOnly) throws StandardException
categorize
in class JavaValueNode
referencedTabs
- JBitSet with bit map of referenced FromTablessimplePredsOnly
- Whether or not to consider method
calls, field references and conditional nodes
when building bit map
StandardException
- Thrown on errorValueNode.categorize(org.apache.derby.iapi.util.JBitSet, boolean)
public JavaValueNode remapColumnReferencesToExpressions() throws StandardException
remapColumnReferencesToExpressions
in class JavaValueNode
StandardException
- Thrown on errorValueNode.remapColumnReferencesToExpressions()
public int generateParameters(ExpressionClassBuilder acb, MethodBuilder mb) throws StandardException
acb
- The ExpressionClassBuilder for the class we're generatingmb
- the method the expression will go into
StandardException
- Thrown on errorpublic static java.lang.String getParameterTypeName(JavaValueNode param) throws StandardException
StandardException
public void generateOneParameter(ExpressionClassBuilder acb, MethodBuilder mb, int parameterNumber) throws StandardException
acb
- The ExpressionClassBuilder for the class we're generatingmb
- the method the expression will go intoparameterNumber
- Identifies which parameter to generate. 0 based.
StandardException
- Thrown on errorpublic void setNullParameterInfo(java.lang.String[] parmTypeNames) throws StandardException
parmTypeNames
- String[] with the java type names for the parameters
as declared by the method
StandardException
- Thrown on errorprotected void resolveMethodCall(java.lang.String javaClassName, boolean staticMethod) throws StandardException
StandardException
private java.lang.String[] parseValidateSignature(java.lang.String externalName, int offset, boolean hasDynamicResultSets) throws StandardException
offset
- Character offset of first parenhasDynamicResultSets
- Can ResultSet[] parameters be specified.
StandardException
protected boolean someParametersAreNull()
protected java.lang.String[] getObjectSignature() throws StandardException
StandardException
- Thrown on errorprotected boolean[] getIsParam()
private java.lang.String getObjectTypeName(JSQLType jsqlType) throws StandardException
StandardException
java.lang.String[] getPrimitiveSignature(boolean castToPrimitiveAsNecessary) throws StandardException
StandardException
protected int getOrderableVariantType() throws StandardException
getOrderableVariantType
in class JavaValueNode
StandardException
private int getVariantTypeOfParams() throws StandardException
StandardException
public DataTypeDescriptor getDataType() throws StandardException
getDataType
in class JavaValueNode
StandardException
public JavaValueNode[] getMethodParms()
void acceptChildren(Visitor v) throws StandardException
acceptChildren
in class QueryTreeNode
v
- the visitor
StandardException
- on error
|
Built on Thu 2011-03-10 11:54:14+0000, from revision ??? | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |