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