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型に変換し扱っているので、このような桁数の制約を設けている)
| コンストラクタと説明 |
|---|
PackedDecimal() |
| 修飾子とタイプ | メソッドと説明 |
|---|---|
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, setSizegetField, init, removePaddingpublic PackedDecimal initialize(java.lang.Object... args)
initialize クラス内 DataType<java.math.BigDecimal,byte[]>args - データタイプのパラメータpublic java.math.BigDecimal convertOnRead(byte[] buff)
convertOnRead クラス内 DataType<java.math.BigDecimal,byte[]>buff - フィールドの値データpublic byte[] convertOnWrite(java.lang.Object data)
InvalidDataFormatExceptionをスローする。
convertOnWrite クラス内 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ビット(正数の場合)