public class ZonedDecimal 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 |
---|
ZonedDecimal() |
Modifier and Type | Method and Description |
---|---|
java.math.BigDecimal |
convertOnRead(byte[] buff)
入力時に読み込んだデータを変換する。
|
byte[] |
convertOnWrite(java.lang.Object data)
出力時に書き込むデータの変換を行う。
|
java.lang.Byte |
getZoneSignNibbleNegative()
符号付きゾーン10進数値の末尾桁の上位4ビット(負数の場合)を返却する。
|
ZonedDecimal |
initialize(java.lang.Object... args)
初期化処理を行う。
|
ZonedDecimal |
setDefaultZoneSignNibbleNegative(java.lang.Byte defaultZoneSignNibbleNegative)
デフォルトの符号付きゾーン10進数値の末尾桁の上位4ビット(負数の場合)を設定する。
|
ZonedDecimal |
setDefaultZoneSignNibblePositive(java.lang.Byte defaultZoneSignNibblePositive)
デフォルトの符号付きゾーン10進数値の末尾桁の上位4ビット(正数の場合)を設定する。
|
ZonedDecimal |
setSigned(boolean signed)
符号付きの整数として処理するかどうかを設定する。
|
ZonedDecimal |
setZoneNibble(java.lang.Byte zoneNibble)
ゾーンNibbleを設定する。
|
ZonedDecimal |
setZoneSignNibbleNegative(java.lang.Integer nibble)
符号付きゾーン10進数値の末尾桁の上位4ビット(負数の場合)を返却する。
|
ZonedDecimal |
setZoneSignNibblePositive(java.lang.Integer nibble)
符号付きゾーン10進数値の末尾桁の上位4ビット(正数の場合)を返却する。
|
getSize, setSize
getField, init, removePadding, setConvertEmptyToNull
public ZonedDecimal 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 ZonedDecimal setSigned(boolean signed)
signed
- 符号付きの整数として扱う場合はtruepublic java.lang.Byte getZoneSignNibbleNegative()
public ZonedDecimal setZoneSignNibblePositive(java.lang.Integer nibble)
nibble
- 符号付きゾーン10進数値の末尾桁の上位4ビット(正数の場合)public ZonedDecimal setZoneSignNibbleNegative(java.lang.Integer nibble)
nibble
- 符号付きゾーン10進数値の末尾桁の上位4ビット(負数の場合)public ZonedDecimal setZoneNibble(java.lang.Byte zoneNibble)
zoneNibble
- ゾーンNibblepublic ZonedDecimal setDefaultZoneSignNibbleNegative(java.lang.Byte defaultZoneSignNibbleNegative)
defaultZoneSignNibbleNegative
- デフォルトの符号付きゾーン10進数値の末尾桁の上位4ビット(負数の場合)public ZonedDecimal setDefaultZoneSignNibblePositive(java.lang.Byte defaultZoneSignNibblePositive)
defaultZoneSignNibblePositive
- デフォルトの符号付きゾーン10進数値の末尾桁の上位4ビット(正数の場合)