@Published(tag="architect") public class BigDecimalConvertor extends NumberConvertorSupport
Digitsアノテーションの属性名 | 説明 |
integer | 整数部桁数上限値。指定値に上限はない。 |
fraction | 小数部桁数上限値。指定値に上限はない。 |
comma | trueの場合、入力値が3桁区切り文字で編集されていてもよい。(区切り文字は省略可。) falseの場合、入力値が3桁区切り文字で編集されていてはいけない。 |
messageId | 変換失敗時のメッセージID。 |
バリデーション仕様
Digitsアノテーションの設定によって行われるバリデーション仕様の例を以下に示す。
桁数指定の設定とバリデーション内容:
integer=4, fraction=4の場合、「1234.1234」、「-1234.1234」、「+1234.1234」、「.1234」等は有効である。
しかし、「12345.」、「.12345」、「12345.123」、「123.12345」、「1234.」等は無効であり、バリデーションエラーとなる。
カンマ編集可否の設定とバリデーション内容:
commaSeparatedがtrueの場合、「1,234.1234」、「1234.1234」は有効である。
「12,34.1234」のようにカンマを3桁の区切り文字として使用していない場合は無効でありバリデーションエラーとなる。
commaSeparatedがfalseの場合、「1,234.1234」等は無効であり、バリデーションエラーとなる。
上記例のように、本クラスのバリデーションでは NumberConvertorSupport
が行う共通バリデーションに加えて、下記仕様のバリデーションを行う。
国際化
数値の記述は、フランス語圏等、言語によっては数値を記載する際にカンマとピリオドの解釈を置き換えて使用する言語がある。 Nablarchのカスタムタグで国際化機能を使用した場合、本クラスもカンマとピリオドの解釈を入れ替えて入力値を取り扱う。 以下に @Digits(integer=6, fraction=2, commaSeparated=true) を設定していた場合の例を示す。 1) 言語に "ja" (日本語) が設定された場合。 123,456.11 ⇒ 123456.11 として解釈する 123.456,11 ⇒ バリデーションエラーとなる 2) 言語に "fr" (フランス語) が設定された場合。 123,456.11 ⇒ バリデーションエラーとなる 123.456,11 ⇒ 123456.11 として解釈する
Digits
,
NumberConvertorSupport
Constructor and Description |
---|
BigDecimalConvertor() |
Modifier and Type | Method and Description |
---|---|
protected java.lang.Number |
convertToPropertyType(java.lang.String numberString)
トリムおよびフォーマットを行った文字列を、プロパティの型のオブジェクトへ変換する。
|
protected java.util.regex.Pattern |
createPattern(Digits digits,
java.text.DecimalFormatSymbols symbols)
Digitsに対応する正規表現を作成する。
|
java.lang.Class<?> |
getTargetClass()
変換対象のクラスを取得する。
|
convert, convertToNumber, convertToString, getDecimalFormatSymbols, getDefaultDecimalFormatSymbols, isConvertible, setAllowNullValue, setInvalidDigitsFractionMessageId, setInvalidDigitsIntegerMessageId, setMultiInputMessageId, trim
public java.lang.Class<?> getTargetClass()
protected java.lang.Number convertToPropertyType(java.lang.String numberString)
convertToPropertyType
in class NumberConvertorSupport
numberString
- トリムおよびフォーマットを行った文字列protected java.util.regex.Pattern createPattern(Digits digits, java.text.DecimalFormatSymbols symbols)
NumberConvertorSupport
createPattern
in class NumberConvertorSupport
digits
- 数値フォーマット指定のアノテーションsymbols
- 小数点に使用する文字や1000の区切り文字を提供するDecimalFormatSymbols