Class ZonedDecimal
java.lang.Object
nablarch.core.dataformat.convertor.datatype.DataType<F,byte[]>
nablarch.core.dataformat.convertor.datatype.ByteStreamDataSupport<BigDecimal>
nablarch.core.dataformat.convertor.datatype.ZonedDecimal
- Direct Known Subclasses:
SignedZonedDecimal
ゾーン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ビット(負数の場合)を返却する。initialize
(Object... args) 初期化処理を行う。setDefaultZoneSignNibbleNegative
(Byte defaultZoneSignNibbleNegative) デフォルトの符号付きゾーン10進数値の末尾桁の上位4ビット(負数の場合)を設定する。setDefaultZoneSignNibblePositive
(Byte defaultZoneSignNibblePositive) デフォルトの符号付きゾーン10進数値の末尾桁の上位4ビット(正数の場合)を設定する。setSigned
(boolean signed) 符号付きの整数として処理するかどうかを設定する。setZoneNibble
(Byte zoneNibble) ゾーンNibbleを設定する。setZoneSignNibbleNegative
(Integer nibble) 符号付きゾーン10進数値の末尾桁の上位4ビット(負数の場合)を返却する。setZoneSignNibblePositive
(Integer nibble) 符号付きゾーン10進数値の末尾桁の上位4ビット(正数の場合)を返却する。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
-
ZonedDecimal
public ZonedDecimal()
-
-
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:
- 変換後の値
-
setSigned
符号付きの整数として処理するかどうかを設定する。- Parameters:
signed
- 符号付きの整数として扱う場合はtrue- Returns:
- このオブジェクト自体
-
getZoneSignNibbleNegative
符号付きゾーン10進数値の末尾桁の上位4ビット(負数の場合)を返却する。- Returns:
- ゾーン10進数値の上位4ビット(負数の場合)
-
setZoneSignNibblePositive
符号付きゾーン10進数値の末尾桁の上位4ビット(正数の場合)を返却する。- Parameters:
nibble
- 符号付きゾーン10進数値の末尾桁の上位4ビット(正数の場合)- Returns:
- このオブジェクト自体
-
setZoneSignNibbleNegative
符号付きゾーン10進数値の末尾桁の上位4ビット(負数の場合)を返却する。- Parameters:
nibble
- 符号付きゾーン10進数値の末尾桁の上位4ビット(負数の場合)- Returns:
- このオブジェクト自体
-
setZoneNibble
ゾーンNibbleを設定する。- Parameters:
zoneNibble
- ゾーンNibble- Returns:
- このオブジェクト自体
-
setDefaultZoneSignNibbleNegative
デフォルトの符号付きゾーン10進数値の末尾桁の上位4ビット(負数の場合)を設定する。- Parameters:
defaultZoneSignNibbleNegative
- デフォルトの符号付きゾーン10進数値の末尾桁の上位4ビット(負数の場合)- Returns:
- このオブジェクト自体
-
setDefaultZoneSignNibblePositive
デフォルトの符号付きゾーン10進数値の末尾桁の上位4ビット(正数の場合)を設定する。- Parameters:
defaultZoneSignNibblePositive
- デフォルトの符号付きゾーン10進数値の末尾桁の上位4ビット(正数の場合)- Returns:
- このオブジェクト自体
-