org.apache.derby.catalog.types
Class RoutineAliasInfo

java.lang.Object
  extended by org.apache.derby.catalog.types.MethodAliasInfo
      extended by org.apache.derby.catalog.types.RoutineAliasInfo
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, AliasInfo, Formatable, TypedFormat

public class RoutineAliasInfo
extends MethodAliasInfo

Describe a routine (procedure or function) alias.

See Also:
AliasInfo, Serialized Form

Field Summary
private  char aliasType
           
private  boolean calledOnNullInput
          True if the routine is called on null input.
static short CONTAINS_SQL
           
private static short DETERMINISTIC_MASK
           
private  int dynamicResultSets
           
static short MODIFIES_SQL_DATA
           
static short NO_SQL
           
private  int parameterCount
           
private  int[] parameterModes
          IN, OUT, INOUT
private  java.lang.String[] parameterNames
          Name of each parameter.
private  short parameterStyle
          Parameter style - always PS_JAVA at the moment.
private  TypeDescriptor[] parameterTypes
          Types of the parameters.
static short PS_DERBY_JDBC_RESULT_SET
          PARAMETER STYLE DERBY_JDBC_RESULT_SET
static short PS_JAVA
          PARAMETER STYLE JAVA
static short READS_SQL_DATA
           
private  TypeDescriptor returnType
          Return type for functions.
private  java.lang.String specificName
          SQL Specific name (future)
private static short SQL_ALLOWED_MASK
          Masks for the sqlOptions field
private static java.lang.String[] SQL_CONTROL
           
private  short sqlOptions
          This field contains several pieces of information: bits 0-3 sqlAllowed = MODIFIES_SQL_DATA, READS_SQL_DATA,CONTAINS_SQL, or NO_SQL bit 4 on if function is DETERMINISTIC, off otherwise
 
Fields inherited from interface org.apache.derby.catalog.AliasInfo
ALIAS_NAME_SPACE_FUNCTION_AS_CHAR, ALIAS_NAME_SPACE_FUNCTION_AS_STRING, ALIAS_NAME_SPACE_PROCEDURE_AS_CHAR, ALIAS_NAME_SPACE_PROCEDURE_AS_STRING, ALIAS_NAME_SPACE_SYNONYM_AS_CHAR, ALIAS_NAME_SPACE_SYNONYM_AS_STRING, ALIAS_NAME_SPACE_UDT_AS_CHAR, ALIAS_NAME_SPACE_UDT_AS_STRING, ALIAS_TYPE_FUNCTION_AS_CHAR, ALIAS_TYPE_FUNCTION_AS_STRING, ALIAS_TYPE_PROCEDURE_AS_CHAR, ALIAS_TYPE_PROCEDURE_AS_STRING, ALIAS_TYPE_SYNONYM_AS_CHAR, ALIAS_TYPE_SYNONYM_AS_STRING, ALIAS_TYPE_UDT_AS_CHAR, ALIAS_TYPE_UDT_AS_STRING
 
Constructor Summary
RoutineAliasInfo()
           
RoutineAliasInfo(java.lang.String methodName, int parameterCount, java.lang.String[] parameterNames, TypeDescriptor[] parameterTypes, int[] parameterModes, int dynamicResultSets, short parameterStyle, short sqlAllowed, boolean isDeterministic)
          Create a RoutineAliasInfo for an internal PROCEDURE.
RoutineAliasInfo(java.lang.String methodName, int parameterCount, java.lang.String[] parameterNames, TypeDescriptor[] parameterTypes, int[] parameterModes, int dynamicResultSets, short parameterStyle, short sqlAllowed, boolean isDeterministic, boolean calledOnNullInput, TypeDescriptor returnType)
          Create a RoutineAliasInfo for a PROCEDURE or FUNCTION
 
Method Summary
 boolean calledOnNullInput()
           
 int getMaxDynamicResultSets()
           
 int getParameterCount()
           
 int[] getParameterModes()
           
 java.lang.String[] getParameterNames()
          Returns an array containing the names of the parameters.
 short getParameterStyle()
           
 TypeDescriptor[] getParameterTypes()
          Types of the parameters.
 TypeDescriptor getReturnType()
           
 short getSQLAllowed()
           
private static TypeDescriptor getStoredType(java.lang.Object onDiskType)
          Old releases (10.3 and before) wrote out the runtime DataTypeDescriptor for routine parameter and return types. 10.4 onwards (DERBY-2775) always writes out the catalog type TypeDescriptor.
 int getTypeFormatId()
          Get the formatID which corresponds to this class.
 boolean isDeterministic()
           
 boolean isTableFunction()
          Return true if this alias is a Table Function.
static java.lang.String parameterMode(int parameterMode)
           
 void readExternal(java.io.ObjectInput in)
          Read this object from a stream of stored objects.
 void setCollationTypeForAllStringTypes(int collationType)
          Set the collation type of all string types declared for use in this routine to the given collation type.
 java.lang.String toString()
          Get this alias info as a string.
 void writeExternal(java.io.ObjectOutput out)
          Write this object to a stream of stored objects.
 
Methods inherited from class org.apache.derby.catalog.types.MethodAliasInfo
getMethodName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SQL_CONTROL

private static final java.lang.String[] SQL_CONTROL

MODIFIES_SQL_DATA

public static final short MODIFIES_SQL_DATA
See Also:
Constant Field Values

READS_SQL_DATA

public static final short READS_SQL_DATA
See Also:
Constant Field Values

CONTAINS_SQL

public static final short CONTAINS_SQL
See Also:
Constant Field Values

NO_SQL

public static final short NO_SQL
See Also:
Constant Field Values

PS_JAVA

public static final short PS_JAVA
PARAMETER STYLE JAVA

See Also:
Constant Field Values

PS_DERBY_JDBC_RESULT_SET

public static final short PS_DERBY_JDBC_RESULT_SET
PARAMETER STYLE DERBY_JDBC_RESULT_SET

See Also:
Constant Field Values

SQL_ALLOWED_MASK

private static final short SQL_ALLOWED_MASK
Masks for the sqlOptions field

See Also:
Constant Field Values

DETERMINISTIC_MASK

private static final short DETERMINISTIC_MASK
See Also:
Constant Field Values

parameterCount

private int parameterCount

parameterTypes

private TypeDescriptor[] parameterTypes
Types of the parameters. If there are no parameters then this may be null (or a zero length array).


parameterNames

private java.lang.String[] parameterNames
Name of each parameter. As of DERBY 10.3, parameter names are optional. If the parameter is unnamed, parameterNames[i] is a string of length 0


parameterModes

private int[] parameterModes
IN, OUT, INOUT


dynamicResultSets

private int dynamicResultSets

returnType

private TypeDescriptor returnType
Return type for functions. Null for procedures.


parameterStyle

private short parameterStyle
Parameter style - always PS_JAVA at the moment.


sqlOptions

private short sqlOptions
This field contains several pieces of information: bits 0-3 sqlAllowed = MODIFIES_SQL_DATA, READS_SQL_DATA,CONTAINS_SQL, or NO_SQL bit 4 on if function is DETERMINISTIC, off otherwise


specificName

private java.lang.String specificName
SQL Specific name (future)


calledOnNullInput

private boolean calledOnNullInput
True if the routine is called on null input. (always true for procedures).


aliasType

private transient char aliasType
Constructor Detail

RoutineAliasInfo

public RoutineAliasInfo()

RoutineAliasInfo

public RoutineAliasInfo(java.lang.String methodName,
                        int parameterCount,
                        java.lang.String[] parameterNames,
                        TypeDescriptor[] parameterTypes,
                        int[] parameterModes,
                        int dynamicResultSets,
                        short parameterStyle,
                        short sqlAllowed,
                        boolean isDeterministic)
Create a RoutineAliasInfo for an internal PROCEDURE.


RoutineAliasInfo

public RoutineAliasInfo(java.lang.String methodName,
                        int parameterCount,
                        java.lang.String[] parameterNames,
                        TypeDescriptor[] parameterTypes,
                        int[] parameterModes,
                        int dynamicResultSets,
                        short parameterStyle,
                        short sqlAllowed,
                        boolean isDeterministic,
                        boolean calledOnNullInput,
                        TypeDescriptor returnType)
Create a RoutineAliasInfo for a PROCEDURE or FUNCTION

Method Detail

getParameterCount

public int getParameterCount()

getParameterTypes

public TypeDescriptor[] getParameterTypes()
Types of the parameters. If there are no parameters then this may return null (or a zero length array).


getParameterModes

public int[] getParameterModes()

getParameterNames

public java.lang.String[] getParameterNames()
Returns an array containing the names of the parameters. As of DERBY 10.3, parameter names are optional (see DERBY-183 for more information). If the i-th parameter was unnamed, parameterNames[i] will contain a string of length 0.


getMaxDynamicResultSets

public int getMaxDynamicResultSets()

getParameterStyle

public short getParameterStyle()

getSQLAllowed

public short getSQLAllowed()

isDeterministic

public boolean isDeterministic()

calledOnNullInput

public boolean calledOnNullInput()

getReturnType

public TypeDescriptor getReturnType()

isTableFunction

public boolean isTableFunction()
Description copied from interface: AliasInfo
Return true if this alias is a Table Function.

Specified by:
isTableFunction in interface AliasInfo
Overrides:
isTableFunction in class MethodAliasInfo

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Read this object from a stream of stored objects.

Specified by:
readExternal in interface java.io.Externalizable
Overrides:
readExternal in class MethodAliasInfo
Parameters:
in - read this.
Throws:
java.io.IOException - thrown on error
java.lang.ClassNotFoundException - thrown on error

getStoredType

private static TypeDescriptor getStoredType(java.lang.Object onDiskType)
Old releases (10.3 and before) wrote out the runtime DataTypeDescriptor for routine parameter and return types. 10.4 onwards (DERBY-2775) always writes out the catalog type TypeDescriptor. Here we see what object was read from disk and if it was the old type, now mapped to OldRoutineType, we extract the catalog type and use that.

Parameters:
onDiskType - The object read that represents the type.
Returns:
A type descriptor.

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Write this object to a stream of stored objects.

Specified by:
writeExternal in interface java.io.Externalizable
Overrides:
writeExternal in class MethodAliasInfo
Parameters:
out - write bytes here.
Throws:
java.io.IOException - thrown on error

getTypeFormatId

public int getTypeFormatId()
Get the formatID which corresponds to this class.

Specified by:
getTypeFormatId in interface TypedFormat
Overrides:
getTypeFormatId in class MethodAliasInfo
Returns:
the formatID of this class

toString

public java.lang.String toString()
Get this alias info as a string. NOTE: The "ALIASINFO" column in the SYSALIASES table will return the result of this method on a ResultSet.getString() call. That said, since the dblook utility uses ResultSet.getString() to retrieve ALIASINFO and to generate the DDL, THIS METHOD MUST RETURN A STRING THAT IS SYNTACTICALLY VALID, or else the DDL generated by dblook will be incorrect.

Overrides:
toString in class MethodAliasInfo
See Also:
Object.toString()

parameterMode

public static java.lang.String parameterMode(int parameterMode)

setCollationTypeForAllStringTypes

public void setCollationTypeForAllStringTypes(int collationType)
Set the collation type of all string types declared for use in this routine to the given collation type.

Parameters:
collationType -

Built on Thu 2010-12-23 20:49:13+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.