|
||||||||||
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.NumericTypeCompiler
This class implements TypeId for the SQL numeric datatype.
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 | |
NumericTypeCompiler()
|
Method Summary | |
boolean |
comparable(TypeId otherType,
boolean forEquals,
ClassFactory cf)
Determine if this type can be compared to some other type |
boolean |
compatible(TypeId otherType)
Tell whether this type (numeric) is compatible with the given type. |
boolean |
convertible(TypeId otherType,
boolean forDataTypeFunction)
Determine if this type can be CONVERTed to some other 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. |
private int |
getPrecision(java.lang.String operator,
DataTypeDescriptor leftType,
DataTypeDescriptor rightType)
Get the precision of the operation involving two of the same types. |
java.lang.String |
getPrimitiveMethodName()
Get the method name for getting out the corresponding primitive Java type. |
private int |
getScale(java.lang.String operator,
DataTypeDescriptor leftType,
DataTypeDescriptor rightType)
Get the scale of the operation involving two of the same types. |
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)
Determine if this type can have a value of another type stored into it. |
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 NumericTypeCompiler()
Method Detail |
public java.lang.String interfaceName()
TypeCompiler
TypeCompiler.interfaceName()
public java.lang.String getCorrespondingPrimitiveTypeName()
TypeCompiler
TypeCompiler.getCorrespondingPrimitiveTypeName()
public java.lang.String getPrimitiveMethodName()
getPrimitiveMethodName
in interface TypeCompiler
getPrimitiveMethodName
in class BaseTypeCompiler
public int getCastToCharWidth(DataTypeDescriptor dts)
TypeCompiler
dts
- The associated DataTypeDescriptor for this TypeId.
TypeCompiler.getCastToCharWidth(org.apache.derby.iapi.types.DataTypeDescriptor)
public DataTypeDescriptor resolveArithmeticOperation(DataTypeDescriptor leftType, DataTypeDescriptor rightType, java.lang.String operator) throws StandardException
TypeCompiler
resolveArithmeticOperation
in interface TypeCompiler
resolveArithmeticOperation
in class BaseTypeCompiler
StandardException
- Thrown on errorTypeCompiler.resolveArithmeticOperation(org.apache.derby.iapi.types.DataTypeDescriptor, org.apache.derby.iapi.types.DataTypeDescriptor, java.lang.String)
public boolean comparable(TypeId otherType, boolean forEquals, ClassFactory cf)
TypeCompiler
otherType
- The CompilationType of the other type to compare
this type toforEquals
- True if this is an = or <> comparison, false otherwise.cf
- A ClassFactory
TypeCompiler.comparable(org.apache.derby.iapi.types.TypeId, boolean, org.apache.derby.iapi.services.loader.ClassFactory)
public boolean convertible(TypeId otherType, boolean forDataTypeFunction)
TypeCompiler
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.convertible(org.apache.derby.iapi.types.TypeId, boolean)
public boolean compatible(TypeId otherType)
otherType
- The TypeId of the other type.
public boolean storable(TypeId otherType, ClassFactory cf)
TypeCompiler
otherType
- The TypeId of the other type to compare this type tocf
- A ClassFactory
TypeCompiler.storable(org.apache.derby.iapi.types.TypeId, org.apache.derby.iapi.services.loader.ClassFactory)
protected java.lang.String dataValueMethodName()
dataValueMethodName
in class BaseTypeCompiler
protected java.lang.String nullMethodName()
nullMethodName
in class BaseTypeCompiler
private int getPrecision(java.lang.String operator, DataTypeDescriptor leftType, DataTypeDescriptor rightType)
operator
- a string representing the operator,
null means no operator, just a type mergeleftType
- the left typerightType
- the left type
private int getScale(java.lang.String operator, DataTypeDescriptor leftType, DataTypeDescriptor rightType)
operator
- a string representing the operator,
null means no operator, just a type mergeleftType
- the left typerightType
- the left type
public void generateDataValue(MethodBuilder mb, LocalField field)
TypeCompiler
generateDataValue
in interface TypeCompiler
generateDataValue
in class BaseTypeCompiler
TypeCompiler.generateDataValue(org.apache.derby.iapi.services.compiler.MethodBuilder, org.apache.derby.iapi.services.compiler.LocalField)
public java.lang.String getMatchingNationalCharTypeName()
TypeCompiler
getMatchingNationalCharTypeName
in interface TypeCompiler
TypeCompiler.getMatchingNationalCharTypeName()
public void generateNull(MethodBuilder mb)
TypeCompiler
generateNull
in interface TypeCompiler
mb
- The method to put the expression inTypeCompiler.generateNull(org.apache.derby.iapi.services.compiler.MethodBuilder)
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 Mon 2007-06-04 09:58:47+0400, from revision ??? | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |