com.ibm.as400.access
Class AS400PackedDecimal
- java.lang.Object
-
- com.ibm.as400.access.AS400PackedDecimal
-
- All Implemented Interfaces:
- AS400DataType, java.io.Serializable, java.lang.Cloneable
public class AS400PackedDecimal extends java.lang.Object implements AS400DataType
Provides a converter between a BigDecimal object and a packed decimal format floating point number.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface com.ibm.as400.access.AS400DataType
TYPE_ARRAY, TYPE_BIN1, TYPE_BIN2, TYPE_BIN4, TYPE_BIN8, TYPE_BYTE_ARRAY, TYPE_DATE, TYPE_DECFLOAT, TYPE_FLOAT4, TYPE_FLOAT8, TYPE_PACKED, TYPE_STRUCTURE, TYPE_TEXT, TYPE_TIME, TYPE_TIME_OF_DAY, TYPE_TIMESTAMP, TYPE_UBIN1, TYPE_UBIN2, TYPE_UBIN4, TYPE_UBIN8, TYPE_VARCHAR, TYPE_ZONED
-
-
Constructor Summary
Constructors Constructor and Description AS400PackedDecimal(int numDigits, int numDecimalPositions)
Constructs an AS400PackedDecimal object.
-
Method Summary
Methods Modifier and Type Method and Description java.lang.Object
clone()
Creates a new AS400PackedDecimal object that is identical to the current instance.int
getByteLength()
Returns the byte length of the data type.java.lang.Object
getDefaultValue()
Returns a Java object representing the default value of the data type.int
getInstanceType()
ReturnsTYPE_PACKED
.java.lang.Class
getJavaType()
Returns the Java class that corresponds with this data type.int
getNumberOfDecimalPositions()
Returns the number of decimal positions in the packed decimal number.int
getNumberOfDigits()
Returns the total number of digits in the packed decimal number.boolean
isUseDouble()
void
setUseDouble(boolean b)
byte[]
toBytes(double doubleValue)
Converts the specified Java object to IBM i format.int
toBytes(double doubleValue, byte[] as400Value)
Converts the specified Java object into IBM i format in the specified byte array.int
toBytes(double doubleValue, byte[] as400Value, int offset)
Converts the specified Java object into IBM i format in the specified byte array.byte[]
toBytes(java.lang.Object javaValue)
Converts the specified Java object to IBM i format.int
toBytes(java.lang.Object javaValue, byte[] as400Value)
Converts the specified Java object into IBM i format in the specified byte array.int
toBytes(java.lang.Object javaValue, byte[] as400Value, int offset)
Converts the specified Java object into IBM i format in the specified byte array.double
toDouble(byte[] as400Value)
Converts the specified IBM i data type to a Java double value.double
toDouble(byte[] as400Value, int offset)
Converts the specified IBM i data type to a Java double value.java.lang.Object
toObject(byte[] as400Value)
Converts the specified IBM i data type to a Java object.java.lang.Object
toObject(byte[] as400Value, int offset)
Converts the specified IBM i data type to a Java object.java.lang.Object
toObject(byte[] as400Value, int offset, boolean ignoreErrors)
-
-
-
Constructor Detail
-
AS400PackedDecimal
public AS400PackedDecimal(int numDigits, int numDecimalPositions)
Constructs an AS400PackedDecimal object.- Parameters:
numDigits
- The number of digits in the packed decimal number. It must be greater than or equal to one and less than or equal to thirty-one.numDecimalPositions
- The number of decimal positions in the packed decimal number. It must be greater than or equal to zero and less than or equal to numDigits.
-
-
Method Detail
-
clone
public java.lang.Object clone()
Creates a new AS400PackedDecimal object that is identical to the current instance.- Specified by:
clone
in interfaceAS400DataType
- Overrides:
clone
in classjava.lang.Object
- Returns:
- The new object.
-
getByteLength
public int getByteLength()
Returns the byte length of the data type.- Specified by:
getByteLength
in interfaceAS400DataType
- Returns:
- The number of bytes in the IBM i representation of the data type.
-
getDefaultValue
public java.lang.Object getDefaultValue()
Returns a Java object representing the default value of the data type.- Specified by:
getDefaultValue
in interfaceAS400DataType
- Returns:
- The BigDecimal object with a value of zero.
-
getInstanceType
public int getInstanceType()
ReturnsTYPE_PACKED
.- Specified by:
getInstanceType
in interfaceAS400DataType
- Returns:
- AS400DataType.TYPE_PACKED.
-
getJavaType
public java.lang.Class getJavaType()
Returns the Java class that corresponds with this data type.- Specified by:
getJavaType
in interfaceAS400DataType
- Returns:
- BigDecimal.class.
-
getNumberOfDigits
public int getNumberOfDigits()
Returns the total number of digits in the packed decimal number.- Returns:
- The number of digits.
-
getNumberOfDecimalPositions
public int getNumberOfDecimalPositions()
Returns the number of decimal positions in the packed decimal number.- Returns:
- The number of decimal positions.
-
isUseDouble
public boolean isUseDouble()
- Returns:
- true if a Double will be returned, false if a BigDecimal will be returned. The default is false.
-
setUseDouble
public void setUseDouble(boolean b)
- Parameters:
b
-- See Also:
AS400ZonedDecimal.setUseDouble(boolean)
-
toBytes
public byte[] toBytes(java.lang.Object javaValue)
Converts the specified Java object to IBM i format.- Specified by:
toBytes
in interfaceAS400DataType
- Parameters:
javaValue
- The object corresponding to the data type. It must be an instance of BigDecimal and the BigDecimal must have a less than or equal to number of digits and a less than or equal to number of decimal places.- Returns:
- The IBM i representation of the data type.
-
toBytes
public int toBytes(java.lang.Object javaValue, byte[] as400Value)
Converts the specified Java object into IBM i format in the specified byte array.- Specified by:
toBytes
in interfaceAS400DataType
- Parameters:
javaValue
- The object corresponding to the data type. It must be an instance of BigDecimal and the BigDecimal must have a less than or equal to number of digits and a less than or equal to number of decimal places.as400Value
- The array to receive the data type in IBM i format. There must be enough space to hold the IBM i value.- Returns:
- The number of bytes in the IBM i representation of the data type.
-
toBytes
public int toBytes(java.lang.Object javaValue, byte[] as400Value, int offset)
Converts the specified Java object into IBM i format in the specified byte array.- Specified by:
toBytes
in interfaceAS400DataType
- Parameters:
javaValue
- An object corresponding to the data type. It must be an instance of BigDecimal and the BigDecimal must have a less than or equal to number of digits and a less than or equal to number of decimal places.as400Value
- The array to receive the data type in IBM i format. There must be enough space to hold the IBM i value.offset
- The offset into the byte array for the start of the IBM i value. It must be greater than or equal to zero.- Returns:
- The number of bytes in the IBM i representation of the data type.
-
toBytes
public byte[] toBytes(double doubleValue)
Converts the specified Java object to IBM i format.- Parameters:
doubleValue
- The value to be converted to IBM i format. If the decimal part of this value needs to be truncated, it will be rounded towards zero. If the integral part of this value needs to be truncated, an exception will be thrown.- Returns:
- The IBM i representation of the data type.
-
toBytes
public int toBytes(double doubleValue, byte[] as400Value)
Converts the specified Java object into IBM i format in the specified byte array.- Parameters:
doubleValue
- The value to be converted to IBM i format. If the decimal part of this value needs to be truncated, it will be rounded towards zero. If the integral part of this value needs to be truncated, an exception will be thrown.as400Value
- The array to receive the data type in IBM i format. There must be enough space to hold the IBM i value.- Returns:
- The number of bytes in the IBM i representation of the data type.
-
toBytes
public int toBytes(double doubleValue, byte[] as400Value, int offset)
Converts the specified Java object into IBM i format in the specified byte array.- Parameters:
doubleValue
- The value to be converted to IBM i format. If the decimal part of this value needs to be truncated, it will be rounded towards zero. If the integral part of this value needs to be truncated, an exception will be thrown.as400Value
- The array to receive the data type in IBM i format. There must be enough space to hold the IBM i value.offset
- The offset into the byte array for the start of the IBM i value. It must be greater than or equal to zero.- Returns:
- The number of bytes in the IBM i representation of the data type.
-
toDouble
public double toDouble(byte[] as400Value)
Converts the specified IBM i data type to a Java double value. If the decimal part of the value needs to be truncated to be represented by a Java double value, then it is rounded towards zero. If the integral part of the value needs to be truncated to be represented by a Java double value, then it converted to either Double.POSITIVE_INFINITY or Double.NEGATIVE_INFINITY.- Parameters:
as400Value
- The array containing the data type in IBM i format. The entire data type must be represented.- Returns:
- The Java double value corresponding to the data type.
-
toDouble
public double toDouble(byte[] as400Value, int offset)
Converts the specified IBM i data type to a Java double value. If the decimal part of the value needs to be truncated to be represented by a Java double value, then it is rounded towards zero. If the integral part of the value needs to be truncated to be represented by a Java double value, then it converted to either Double.POSITIVE_INFINITY or Double.NEGATIVE_INFINITY.- Parameters:
as400Value
- The array containing the data type in IBM i format. The entire data type must be represented.offset
- The offset into the byte array for the start of the IBM i value. It must be greater than or equal to zero.- Returns:
- The Java double value corresponding to the data type.
-
toObject
public java.lang.Object toObject(byte[] as400Value)
Converts the specified IBM i data type to a Java object.- Specified by:
toObject
in interfaceAS400DataType
- Parameters:
as400Value
- The array containing the data type in IBM i format. The entire data type must be represented.- Returns:
- The BigDecimal object corresponding to the data type.
-
toObject
public java.lang.Object toObject(byte[] as400Value, int offset)
Converts the specified IBM i data type to a Java object.- Specified by:
toObject
in interfaceAS400DataType
- Parameters:
as400Value
- The array containing the data type in IBM i format. The entire data type must be represented and the data type must have valid packed decimal format.offset
- The offset into the byte array for the start of the IBM i value. It must be greater than or equal to zero.- Returns:
- The BigDecimal object corresponding to the data type.
-
toObject
public java.lang.Object toObject(byte[] as400Value, int offset, boolean ignoreErrors)
-
-