public class PackedDecimal extends ByteStreamDataSupport<java.math.BigDecimal>
入力時にはバイト配列(パック10進数)をBigDecimal型に変換し、 出力時にはオブジェクト(BigDecimalや文字列型の数値など)をバイト配列(パック10進数)に変換して返却する。
出力対象のデータ(#convertOnWrite(Object)の引数)として使用できるオブジェクトの種類を以下に示す。nullは許容しない。
出力対象のデータに小数点が含まれる場合、小数点を取り除いた値に変換する。
また、出力対象のデータがBigDecimalの場合はスケーリングした値に変換する。
以下に出力例を示す。
出力対象データの型 | 出力対象データの値 | 出力対象データの変換後の値 |
---|---|---|
Integer | 123.45 | 12345 |
String | "123.45000" | 12345000 |
BigDecimal | 123.45 | 12345 |
BigDecimal(scale=5) | 123.45 | 12345000 |
本クラスが出力対象のデータの桁数として許容するのは18桁までの数値である。
この桁数とは、出力対象のデータから小数点を取り除き、BigDecimalの場合はスケールに従い変換した後の桁数のことを指す。
(※処理を高速化するために内部的に出力対象データをlong型に変換し扱っているので、このような桁数の制約を設けている)
convertEmptyToNull
Constructor and Description |
---|
PackedDecimal() |
Modifier and Type | Method and Description |
---|---|
java.math.BigDecimal |
convertOnRead(byte[] buff)
入力時に読み込んだデータを変換する。
|
byte[] |
convertOnWrite(java.lang.Object data)
出力時に書き込むデータの変換を行う。
|
java.lang.Byte |
getPackSignNibbleNegative()
符号付きパック10進数値の末尾桁の下位4ビット(負数の場合)を返却する。
|
java.lang.Byte |
getPackSignNibblePositive()
符号付きパック10進数値の末尾桁の下位4ビット(正数の場合)を返却する。
|
PackedDecimal |
initialize(java.lang.Object... args)
初期化処理を行う。
|
PackedDecimal |
setDefaultPackSignNibbleNegative(java.lang.Byte defaultPackSignNibbleNegative)
デフォルトの符号付きパック10進数値の末尾桁の下位4ビット(負数の場合)を設定する。
|
PackedDecimal |
setDefaultPackSignNibblePositive(java.lang.Byte defaultPackSignNibblePositive)
デフォルトの符号付きパック10進数値の末尾桁の下位4ビット(正数の場合)を設定する。
|
PackedDecimal |
setPackNibble(java.lang.Byte packNibble)
パックNibbleを設定する。
|
PackedDecimal |
setPackSignNibbleNegative(java.lang.Integer nibble)
符号付きパック10進数値の末尾桁の下位4ビット(負数の場合)を返却する。
|
PackedDecimal |
setPackSignNibblePositive(java.lang.Integer nibble)
符号付きパック10進数値の末尾桁の下位4ビット(正数の場合)を返却する。
|
PackedDecimal |
setSigned(boolean signed)
符号付きの整数として処理するかどうかを設定する。
|
getSize, setSize
getField, init, removePadding, setConvertEmptyToNull
public PackedDecimal initialize(java.lang.Object... args)
initialize
in class DataType<java.math.BigDecimal,byte[]>
args
- データタイプのパラメータpublic java.math.BigDecimal convertOnRead(byte[] buff)
convertOnRead
in class DataType<java.math.BigDecimal,byte[]>
buff
- フィールドの値データpublic byte[] convertOnWrite(java.lang.Object data)
InvalidDataFormatException
をスローする。
convertOnWrite
in class DataType<java.math.BigDecimal,byte[]>
data
- 書き込みを行うデータpublic PackedDecimal setPackSignNibblePositive(java.lang.Integer nibble)
nibble
- 符号付きパック10進数値の末尾桁の下位4ビット(正数の場合)public PackedDecimal setPackSignNibbleNegative(java.lang.Integer nibble)
nibble
- 符号付きパック10進数値の末尾桁の下位4ビット(負数の場合)public java.lang.Byte getPackSignNibbleNegative()
public java.lang.Byte getPackSignNibblePositive()
public PackedDecimal setSigned(boolean signed)
signed
- 符号付きの整数として扱う場合はtruepublic PackedDecimal setPackNibble(java.lang.Byte packNibble)
packNibble
- パックNibblepublic PackedDecimal setDefaultPackSignNibbleNegative(java.lang.Byte defaultPackSignNibbleNegative)
defaultPackSignNibbleNegative
- デフォルトの符号付きパック10進数値の末尾桁の下位4ビット(負数の場合)public PackedDecimal setDefaultPackSignNibblePositive(java.lang.Byte defaultPackSignNibblePositive)
defaultPackSignNibblePositive
- デフォルトの符号付きパック10進数値の末尾桁の下位4ビット(正数の場合)