|
|||||||||
| 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 QueryTreeNodemethodName - 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.
StandardExceptionpublic void printSubNodes(int depth)
printSubNodes in class QueryTreeNodedepth - 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 error
protected boolean areParametersQueryInvariant()
throws StandardException
StandardException - thrown on error
void 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 error
public void preprocess(int numTables,
FromList outerFromList,
SubqueryList outerSubqueryList,
PredicateList outerPredicateList)
throws StandardException
preprocess in class JavaValueNodenumTables - 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 JavaValueNodereferencedTabs - 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 JavaValueNodeStandardException - 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 error
public 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 error
public 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 error
protected 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.
StandardExceptionprotected 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 JavaValueNodeStandardException
private int getVariantTypeOfParams()
throws StandardException
StandardException
public DataTypeDescriptor getDataType()
throws StandardException
getDataType in class JavaValueNodeStandardExceptionpublic JavaValueNode[] getMethodParms()
void acceptChildren(Visitor v)
throws StandardException
acceptChildren in class QueryTreeNodev - the visitor
StandardException - on error
|
Built on Thu 2012-03-29 21:53:33+0000, from revision ??? | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||