|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.derby.impl.sql.compile.BaseTypeCompiler
org.apache.derby.impl.sql.compile.XMLTypeCompiler
This class implements TypeCompiler for the XML type.
| Field Summary |
| Fields inherited from interface org.apache.derby.iapi.sql.compile.TypeCompiler |
AVG_OP, BOOLEAN_MAXWIDTH_AS_CHAR, DEFAULT_DECIMAL_PRECISION, DEFAULT_DECIMAL_SCALE, DIVIDE_OP, DOUBLE_MAXWIDTH_AS_CHAR, INT_MAXWIDTH_AS_CHAR, LONGINT_MAXWIDTH_AS_CHAR, MAX_DECIMAL_PRECISION_SCALE, MINUS_OP, MOD_OP, PLUS_OP, REAL_MAXWIDTH_AS_CHAR, SMALLINT_MAXWIDTH_AS_CHAR, SUM_OP, TIMES_OP, TINYINT_MAXWIDTH_AS_CHAR |
| Constructor Summary | |
XMLTypeCompiler()
|
|
| Method Summary | |
boolean |
comparable(TypeId otherType,
boolean forEquals,
ClassFactory cs)
Tell whether this type (XML) can be compared to the given type. |
boolean |
compatible(TypeId otherType)
Tell whether this type (XML) is compatible with the given type. |
boolean |
convertible(TypeId otherType,
boolean forDataTypeFunction)
Tell whether this type (XML) can be converted to the given type. |
protected java.lang.String |
dataValueMethodName()
Return the method name to get a Derby DataValueDescriptor object of the correct type. |
void |
generateDataValue(MethodBuilder mb,
LocalField field)
Generate the code necessary to produce a SQL value based on a value. |
void |
generateNull(MethodBuilder mb)
Generate the code necessary to produce a SQL null of the appropriate type. |
int |
getCastToCharWidth(DataTypeDescriptor dts)
Return the maximum width for this data type when cast to a char type. |
java.lang.String |
getCorrespondingPrimitiveTypeName()
Get the name of the corresponding Java type. |
java.lang.String |
getMatchingNationalCharTypeName()
Get the name of the matching national char type. |
java.lang.String |
getPrimitiveMethodName()
Get the method name for getting out the corresponding primitive Java type. |
protected int |
getStoredFormatIdFromTypeId()
Get the StoredFormatId from the corresponding TypeId. |
protected TypeCompiler |
getTypeCompiler(TypeId typeId)
Get the TypeCompiler that corresponds to the given TypeId. |
protected TypeId |
getTypeId()
Get the TypeId that corresponds to this TypeCompiler. |
java.lang.String |
interfaceName()
Get the name of the interface for this type. |
protected java.lang.String |
nullMethodName()
|
boolean |
numberComparable(TypeId otherType,
boolean forEquals,
ClassFactory cf)
Tell whether this numeric type can be compared to the given type. |
boolean |
numberConvertible(TypeId otherType,
boolean forDataTypeFunction)
Tell whether this numeric type can be converted to the given type. |
boolean |
numberStorable(TypeId thisType,
TypeId otherType,
ClassFactory cf)
Tell whether this numeric type can be stored into from the given type. |
DataTypeDescriptor |
resolveArithmeticOperation(DataTypeDescriptor leftType,
DataTypeDescriptor rightType,
java.lang.String operator)
Type resolution methods on binary operators |
(package private) void |
setTypeId(TypeId typeId)
Set the TypeCompiler that corresponds to the given TypeId. |
boolean |
storable(TypeId otherType,
ClassFactory cf)
Tell whether this type (XML) can be stored into from the given type. |
protected boolean |
userTypeStorable(TypeId thisType,
TypeId otherType,
ClassFactory cf)
Determine whether thisType is storable in otherType due to otherType being a user type. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public XMLTypeCompiler()
| Method Detail |
public boolean comparable(TypeId otherType,
boolean forEquals,
ClassFactory cs)
otherType - The TypeId of the other type.forEquals - True if this is an = or <> comparison, false otherwise.cs - A ClassFactory
public boolean convertible(TypeId otherType,
boolean forDataTypeFunction)
otherType - The CompilationType of the other type to compare
this type toforDataTypeFunction - true if this is a type function that
requires more liberal behavior (e.g DOUBLE can convert a char but
you cannot cast a CHAR to double.
TypeCompiler#convertiblepublic boolean compatible(TypeId otherType)
otherType - The TypeId of the other type.
public boolean storable(TypeId otherType,
ClassFactory cf)
otherType - The TypeId of the other type.cf - A ClassFactory
public java.lang.String interfaceName()
TypeCompiler
TypeCompiler#interfaceNamepublic java.lang.String getCorrespondingPrimitiveTypeName()
TypeCompiler
TypeCompiler#getCorrespondingPrimitiveTypeNamepublic int getCastToCharWidth(DataTypeDescriptor dts)
TypeCompiler
dts - The associated DataTypeDescriptor for this TypeId.
While it is true XML values can't be cast to char, this method
can get called before we finish type checking--so we return a dummy
value here and let the type check throw the appropriate error.protected java.lang.String nullMethodName()
nullMethodName in class BaseTypeCompilerTypeCompiler#nullMethodNameprotected java.lang.String dataValueMethodName()
BaseTypeCompiler
dataValueMethodName in class BaseTypeCompilerTypeCompiler#dataValueMethodNamepublic java.lang.String getPrimitiveMethodName()
getPrimitiveMethodName in interface TypeCompilerpublic java.lang.String getMatchingNationalCharTypeName()
TypeCompiler
getMatchingNationalCharTypeName in interface TypeCompilerTypeCompiler.getMatchingNationalCharTypeName()
public DataTypeDescriptor resolveArithmeticOperation(DataTypeDescriptor leftType,
DataTypeDescriptor rightType,
java.lang.String operator)
throws StandardException
TypeCompiler
resolveArithmeticOperation in interface TypeCompilerleftType - The type of the left parameterrightType - The type of the right parameteroperator - The name of the operator (e.g. "+").
StandardException - Thrown on errorTypeCompiler.resolveArithmeticOperation(org.apache.derby.iapi.types.DataTypeDescriptor, org.apache.derby.iapi.types.DataTypeDescriptor, java.lang.String)public void generateNull(MethodBuilder mb)
TypeCompiler
generateNull in interface TypeCompilermb - The method to put the expression inTypeCompiler.generateNull(org.apache.derby.iapi.services.compiler.MethodBuilder)
public void generateDataValue(MethodBuilder mb,
LocalField field)
TypeCompiler
generateDataValue in interface TypeCompilerTypeCompiler.generateDataValue(org.apache.derby.iapi.services.compiler.MethodBuilder, org.apache.derby.iapi.services.compiler.LocalField)
protected boolean userTypeStorable(TypeId thisType,
TypeId otherType,
ClassFactory cf)
thisType - The TypeId of the value to be storedotherType - The TypeId of the value to be stored in
public boolean numberComparable(TypeId otherType,
boolean forEquals,
ClassFactory cf)
otherType - The TypeId of the other type.
public boolean numberConvertible(TypeId otherType,
boolean forDataTypeFunction)
otherType - The TypeId of the other type.forDataTypeFunction - was this called from a scalarFunction like
CHAR() or DOUBLE()
public boolean numberStorable(TypeId thisType,
TypeId otherType,
ClassFactory cf)
thisType - The TypeId of this typeotherType - The TypeId of the other type.cf - A ClassFactoryprotected TypeId getTypeId()
protected TypeCompiler getTypeCompiler(TypeId typeId)
void setTypeId(TypeId typeId)
protected int getStoredFormatIdFromTypeId()
|
Built on Tue 2006-10-10 19:23:47+0200, from revision exported | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||