All Packages This Package Previous Next
Class sqlj.runtime.profile.TypeInfo
java.lang.Object
|
+----sqlj.runtime.profile.TypeInfo
- public abstract class TypeInfo
- extends Object
- implements Serializable, ObjectInputValidation
A TypeInfo object describes the type of a parameter passed to a sql
operation or column of a ResultSet produced by a sql operation. The type
consists of the java type of the actual Java expression which appears in
the original source file, its corrsponding jdbc sql type, the name of the
variable or column producing the type (if available), and its modality.
- See Also:
- getJavaType
-
IN
- IN parameter mode, same value as DatabaseMetaData.procedureColumnIn.
-
INOUT
- INOUT parameter mode, same value as DatabaseMetaData.procedureColumnInOut.
-
OUT
- OUT parameter mode, same value as DatabaseMetaData.procedureColumnOut.
-
TypeInfo()
-
-
getJavaTypeName()
- Returns the name of the Java Class representation of the type.
-
getMarkerIndex()
- Returns the 0-based index of the '?' marker for this parameter in
the sql string.
-
getMode()
- Returns the modality of this parameter.
-
getName()
- Returns the name of the variable or column producing this type.
-
getSQLType()
- Returns the default mapping of this type as a SQL type, as defined in
java.sql.Types.
-
isValidMode(int)
- Returns true if the passed int parameter represents a valid mode
type, false otherwise.
-
isValidSQLType(int)
- Returns true if the passed int parameter represents a valid sql
type, false otherwise.
-
modeToString(int)
- Returns a string representation of a mode constant.
-
SQLTypeToString(int)
- Returns a string representation of a sql type constant.
-
validateObject()
- Performs validation on the internal state of this type info object.
IN
public static final int IN
- IN parameter mode, same value as DatabaseMetaData.procedureColumnIn.
- See Also:
- procedureColumnIn
OUT
public static final int OUT
- OUT parameter mode, same value as DatabaseMetaData.procedureColumnOut.
- See Also:
- procedureColumnOut
INOUT
public static final int INOUT
- INOUT parameter mode, same value as DatabaseMetaData.procedureColumnInOut.
- See Also:
- procedureColumnInOut
TypeInfo
public TypeInfo()
getJavaTypeName
public abstract String getJavaTypeName()
- Returns the name of the Java Class representation of the type. Each
type appears in the original source file as a Java expression
(variable) or cursor column whose type can be determined at compile
time. This name may be used to determine an appropriate JDBC mapping
into a SQL type.
Some customizations may find it most conveniant to work with type
names, while others will need to query the reflection of complete
classes. The getJavaType
of a profile can be used to
create a class reflection from a type info object. One benefit of
using this method over getJavaType
is that this method is
guaranteed to succeed, while getJavaType
may result in a
NoClassDefFoundError
if the classes in question have not
been distributed with the profile.
In most cases, the name returned is the same as the result of
calling profile.getJavaTye(type).getName()
; primitive
types have their simple names (e.g. int
), classes
are fully qualified (e.g. java.sql.Date
), and
nested classes are delimited with '$'
(e.g. x.y.OuterClass$InnerClass
). However, array
naming does not follow the conventions of Class.getName(). If the
name returned represents an array, the string "[" is prepended to the
full name of the component type. For example, an array of array of
String would have the name [[java.lang.String
.
- Returns:
- the name of the Java Class representation of the type.
- See Also:
- getJavaType
getSQLType
public abstract int getSQLType()
- Returns the default mapping of this type as a SQL type, as defined in
java.sql.Types. The Java Class represented by this type is mapped
into a SQL type as defined by the JDBC default mappings. In the case
that the JDBC specification defines a mapping from Java type into SQL
type, that mapping is used. For example, if the Java class is Double,
Types.DOUBLE is returned. If no JDBC recommended conversion exists for
the class specified, Types.OTHER is returned. Profile customizations can
be used to properly handle classes which would otherwise not be
recognized by default JDBC mappings. They may also be used to
override the default mappings.
Default conversions are described in the JDBC specification,
sections 8.6.2 and 8.6.4
- Returns:
- the default mapping of this type as a SQL type.
- See Also:
- Types
isValidSQLType
public static boolean isValidSQLType(int sqlType)
- Returns true if the passed int parameter represents a valid sql
type, false otherwise. Valid sql type values are those constants
which are defined in the class java.sql.Types. Note that vendors may
define their own sql types in addition to those found in
java.sql.Types. In such cases, this method will return false.
- See Also:
- getSQLType, Types
SQLTypeToString
public static String SQLTypeToString(int sqlType)
- Returns a string representation of a sql type constant. If the passed
sql type is not valid, a string representation of its value as an int
is returned. This method is most often used in debugging profile entry
representations.
- See Also:
- getSQLType, isValidSQLType
getName
public abstract String getName()
- Returns the name of the variable or column producing this type.
If this object is used to describe a parameter to a sql operation
(a la EntryInfo.getParamInfo), then getName will return the name of
the variable associated with this parameter in the original source
file. If the name of the variable cannot be determined or cannot be
expressed in terms of a simple name, null is returned. If the
parameter is a complex expression, null will be returned.
If this object is used to describe a column of a result set
produced by a sql operation (a la EntryInfo.getResultSetInfo), then
getName will return the name of the column in the result set to which
this type is bound. If the column name could not be determined, null
is returned. Note that this name is required to match the name of a
column in the result of a sql operation if and only if the entry info
indicates that results are bound by name.
- Returns:
- the name of the variable or column producing this type.
- See Also:
- getParamInfo, getResultSetInfo, getResultSetType
getMode
public abstract int getMode()
- Returns the modality of this parameter. The value returned will be one
of the constants IN,
OUT,
or INOUT.
isValidMode
public static boolean isValidMode(int mode)
- Returns true if the passed int parameter represents a valid mode
type, false otherwise. Valid sql mode values are those constants
which may be returned byt he
getMode
method.
- See Also:
- getMode
modeToString
public static String modeToString(int mode)
- Returns a string representation of a mode constant. If the value
passed does not represent a valid mode, a string representation of the
value as an int is returned. This method is most often used in
debugging profile entry representations.
- See Also:
- getMode, isValidMode
getMarkerIndex
public abstract int getMarkerIndex()
- Returns the 0-based index of the '?' marker for this parameter in
the sql string. Returns -1 if this object does not represent a
parameter.
- See Also:
- getSQLString
validateObject
public void validateObject() throws InvalidObjectException
- Performs validation on the internal state of this type info object.
In particular, the mode is checked via the isValidMode routine.
An exception is thrown if this type contains invalid state.
To allow for compatibility with future versions, this method is
not automatically called during object deserialization. Profile
runtime library implementors should call this method as needed at
runtime to verify the state of the object. For example, this method
could be called from a readObject implementation of a TypeInfo subclass.
It is recommended that subclasses use this method during object
construction once state is complete to validate the type.
- See Also:
- isValidMode
All Packages This Package Previous Next