org.apache.derby.iapi.types
Interface NumberDataValue

All Superinterfaces:
DataValueDescriptor, java.io.Externalizable, Formatable, Orderable, java.io.Serializable, Storable, TypedFormat
All Known Implementing Classes:
BigIntegerDecimal, BinaryDecimal, NumberDataType, SQLDecimal, SQLDouble, SQLInteger, SQLLongint, SQLReal, SQLSmallint, SQLTinyint

public interface NumberDataValue
extends DataValueDescriptor


Field Summary
static int MAX_DECIMAL_PRECISION_SCALE
           
static int MIN_DECIMAL_DIVIDE_SCALE
          The minimum scale when dividing Decimals
 
Fields inherited from interface org.apache.derby.iapi.types.DataValueDescriptor
UNKNOWN_LOGICAL_LENGTH
 
Fields inherited from interface org.apache.derby.iapi.types.Orderable
ORDER_OP_EQUALS, ORDER_OP_GREATEROREQUALS, ORDER_OP_GREATERTHAN, ORDER_OP_LESSOREQUALS, ORDER_OP_LESSTHAN
 
Method Summary
 NumberDataValue absolute(NumberDataValue result)
          The SQL ABSOLUTE operator.
 NumberDataValue divide(NumberDataValue dividend, NumberDataValue divisor, NumberDataValue result)
          The SQL / operator.
 NumberDataValue divide(NumberDataValue dividend, NumberDataValue divisor, NumberDataValue result, int scale)
          The SQL / operator.
 int getDecimalValuePrecision()
          Return the SQL precision of this specific DECIMAL value.
 int getDecimalValueScale()
          Return the SQL scale of this specific DECIMAL value.
 NumberDataValue minus(NumberDataValue result)
          The SQL unary - operator.
 NumberDataValue minus(NumberDataValue left, NumberDataValue right, NumberDataValue result)
          The SQL - operator.
 NumberDataValue mod(NumberDataValue dividend, NumberDataValue divisor, NumberDataValue result)
          The SQL mod operator.
 NumberDataValue plus(NumberDataValue addend1, NumberDataValue addend2, NumberDataValue result)
          The SQL + operator.
 void setValue(java.lang.Number theValue)
          Set the value of this NumberDataValue to the given value.
 NumberDataValue sqrt(NumberDataValue result)
          The SQL SQRT operator.
 NumberDataValue times(NumberDataValue left, NumberDataValue right, NumberDataValue result)
          The SQL * operator.
 
Methods inherited from interface org.apache.derby.iapi.types.DataValueDescriptor
checkHostVariable, cloneHolder, cloneValue, coalesce, compare, compare, compare, compare, equals, estimateMemoryUsage, getBoolean, getByte, getBytes, getDate, getDouble, getFloat, getInt, getLength, getLong, getNewNull, getObject, getShort, getStream, getString, getTime, getTimestamp, getTraceString, getTypeName, greaterOrEquals, greaterThan, hasStream, in, isNotNull, isNullOp, lessOrEquals, lessThan, normalize, notEquals, readExternalFromArray, recycle, setBigDecimal, setInto, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValueFromResultSet, typePrecedence, typeToBigDecimal
 
Methods inherited from interface org.apache.derby.iapi.services.io.Storable
isNull, restoreToNull
 
Methods inherited from interface java.io.Externalizable
readExternal, writeExternal
 
Methods inherited from interface org.apache.derby.iapi.services.io.TypedFormat
getTypeFormatId
 

Field Detail

MIN_DECIMAL_DIVIDE_SCALE

static final int MIN_DECIMAL_DIVIDE_SCALE
The minimum scale when dividing Decimals

See Also:
Constant Field Values

MAX_DECIMAL_PRECISION_SCALE

static final int MAX_DECIMAL_PRECISION_SCALE
See Also:
Constant Field Values
Method Detail

plus

NumberDataValue plus(NumberDataValue addend1,
                     NumberDataValue addend2,
                     NumberDataValue result)
                     throws StandardException
The SQL + operator.

Parameters:
addend1 - One of the addends
addend2 - The other addend
result - The result of the previous call to this method, null if not called yet.
Returns:
The sum of the two addends
Throws:
StandardException - Thrown on error, if result is non-null then its value will be unchanged.

minus

NumberDataValue minus(NumberDataValue left,
                      NumberDataValue right,
                      NumberDataValue result)
                      throws StandardException
The SQL - operator.

Parameters:
left - The left operand
right - The right operand
result - The result of the previous call to this method, null if not called yet.
Returns:
left - right
Throws:
StandardException - Thrown on error, if result is non-null then its value will be unchanged.

times

NumberDataValue times(NumberDataValue left,
                      NumberDataValue right,
                      NumberDataValue result)
                      throws StandardException
The SQL * operator.

Parameters:
left - The left operand
right - The right operand
result - The result of the previous call to this method, null if not called yet.
Returns:
left * right
Throws:
StandardException - Thrown on error, if result is non-null then its value will be unchanged.

divide

NumberDataValue divide(NumberDataValue dividend,
                       NumberDataValue divisor,
                       NumberDataValue result)
                       throws StandardException
The SQL / operator.

Parameters:
dividend - The numerator
divisor - The denominator
result - The result of the previous call to this method, null if not called yet.
Returns:
dividend / divisor
Throws:
StandardException - Thrown on error, if result is non-null then its value will be unchanged.

divide

NumberDataValue divide(NumberDataValue dividend,
                       NumberDataValue divisor,
                       NumberDataValue result,
                       int scale)
                       throws StandardException
The SQL / operator.

Parameters:
dividend - The numerator
divisor - The denominator
result - The result of the previous call to this method, null if not called yet.
scale - The scale of the result, for decimal type. If pass in value < 0, can calculate it dynamically.
Returns:
dividend / divisor
Throws:
StandardException - Thrown on error, if result is non-null then its value will be unchanged.

mod

NumberDataValue mod(NumberDataValue dividend,
                    NumberDataValue divisor,
                    NumberDataValue result)
                    throws StandardException
The SQL mod operator.

Parameters:
dividend - The numerator
divisor - The denominator
result - The result of the previous call to this method, null if not called yet.
Returns:
dividend / divisor
Throws:
StandardException - Thrown on error, if result is non-null then its value will be unchanged.

minus

NumberDataValue minus(NumberDataValue result)
                      throws StandardException
The SQL unary - operator. Negates this NumberDataValue.

Parameters:
result - The result of the previous call to this method, null if not called yet.
Returns:
- operand
Throws:
StandardException - Thrown on error, if result is non-null then its value will be unchanged.

absolute

NumberDataValue absolute(NumberDataValue result)
                         throws StandardException
The SQL ABSOLUTE operator. Absolute value of this NumberDataValue.

Parameters:
result - The result of the previous call to this method, null if not called yet.
Throws:
StandardException - Thrown on error, if result is non-null then its value will be unchanged.

sqrt

NumberDataValue sqrt(NumberDataValue result)
                     throws StandardException
The SQL SQRT operator. Sqrt value of this NumberDataValue.

Parameters:
result - The result of the previous call to this method, null if not call yet.
Throws:
StandardException - Thrown on error (a negative number), if result is non-null then its value will be unchanged.

setValue

void setValue(java.lang.Number theValue)
              throws StandardException
Set the value of this NumberDataValue to the given value. This is only intended to be called when mapping values from the Java space into the SQL space, e.g. parameters and return types from procedures and functions. Each specific type is only expected to handle the explicit type according the JDBC.

Parameters:
theValue - An Number containing the value to set this NumberDataValue to. Null means set the value to SQL null.
Throws:
StandardException

getDecimalValuePrecision

int getDecimalValuePrecision()
Return the SQL precision of this specific DECIMAL value. This does not match the return from BigDecimal.precision() added in J2SE 5.0, which represents the precision of the unscaled value. If the value does not represent a SQL DECIMAL then the return is undefined.


getDecimalValueScale

int getDecimalValueScale()
Return the SQL scale of this specific DECIMAL value. This does not match the return from BigDecimal.scale() since in J2SE 5.0 onwards that can return negative scales. If the value does not represent a SQL DECIMAL then the return is undefined.


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.