Package nablarch.core.beans
Class CopyOptions
java.lang.Object
nablarch.core.beans.CopyOptions
Beanのコピー
で使用される設定をまとめたクラス。
当クラスのインスタンスはoptions
メソッドを起点としたビルダーパターンで構築する。
例えば次のコードは日付パターンyyyy/MM/dd
を設定して、
さらにプロパティcreatedDate
に対してはyyyy/MM/dd HH:mm
を設定している。
CopyOptions copyOptions = CopyOptions.options()
.datePattern("yyyy/MM/dd")
.datePatternByName("createdDate", "yyyy/MM/dd HH:mm")
.build();
datePattern
メソッドとnumberPattern
は
内部的にはconverter
メソッドを呼び出している。
datePattern
メソッドは次のクラスに対するConverter
を追加する。
numberPattern
メソッドは次のクラスに対するConverter
を追加する。
short
とそのラッパークラスint
とそのラッパークラスlong
とそのラッパークラスBigDecimal
String
同じクラスに対してconverter
メソッドが複数回呼び出されると、
先に登録されたものが有効となる。
つまり次のコードでDate
に対するフォーマットはyyyy/MM/dd
が有効となり、
CustomDateConverter
は無視される。
CopyOptions copyOptions = CopyOptions.options()
.datePattern("yyyy/MM/dd")
.converter(java.util.Date.class, new CustomDateConverter())
.build();
- Author:
- Taichi Uragami
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
CopyOptions
のビルダー。static interface
日付パターン・数値パターンをもとにConverter
を提供するインターフェース。static class
CopyOptions.ConvertersProvider
のデフォルト実装。 -
Method Summary
Modifier and TypeMethodDescriptionconvertByName
(String propertyName, Class<?> clazz, Object value) プロパティ名とクラスに紐づいたコンバーターを使用して値を変換する。convertByType
(Class<?> clazz, Object value) クラスに紐づいたコンバーターを使用して値を変換する。static CopyOptions
empty()
空のCopyOptions
を取得する。static CopyOptions
fromAnnotation
(Class<?> clazz) CopyOption
アノテーションを読み取って構築されたCopyOptions
を取得する。boolean
hasNamedConverter
(String propertyName, Class<?> clazz) 指定されたプロパティ名とクラスに紐づいたコンバーターを保持しているかどうかを判断して返す。boolean
hasTypedConverter
(Class<?> clazz) 指定されたクラスに紐づいたコンバーターを保持しているかどうかを返す。boolean
コピー元プロパティがnull
の場合にコピーしないかどうかを返す。boolean
isTargetProperty
(String propertyName) 指定されたプロパティがコピー対象かどうかを返す。merge
(CopyOptions other) 他のCopyOptions
をマージする。static CopyOptions.Builder
options()
ビルダーを取得する。
-
Method Details
-
options
ビルダーを取得する。- Returns:
- ビルダー
-
empty
空のCopyOptions
を取得する。- Returns:
- 空の
CopyOptions
-
fromAnnotation
CopyOption
アノテーションを読み取って構築されたCopyOptions
を取得する。- Parameters:
clazz
- アノテーションを読み取る対象のクラス- Returns:
CopyOption
アノテーションを読み取って構築されたCopyOptions
-
merge
他のCopyOptions
をマージする。マージ処理は
this
をベースにして差分をother
から持ってくる。 例えば同一のプロパティに紐づいたConverter
がthis
とother
の両方にあった場合、 マージ後のCopyOptions
にはthis
が持つConverter
が残る。- Parameters:
other
- 他のCopyOptions
インスタンス- Returns:
- マージされたインスタンス
-
hasTypedConverter
指定されたクラスに紐づいたコンバーターを保持しているかどうかを返す。- Parameters:
clazz
- クラス- Returns:
- 指定されたクラスに紐づいたコンバーターを保持していれば
true
-
hasNamedConverter
指定されたプロパティ名とクラスに紐づいたコンバーターを保持しているかどうかを判断して返す。- Parameters:
propertyName
- プロパティ名clazz
- クラス- Returns:
- 指定されたプロパティ名とクラスに紐づいたコンバーターを保持していれば
true
-
convertByType
クラスに紐づいたコンバーターを使用して値を変換する。クラスに紐づいたコンバーターが見つからなければ
IllegalArgumentException
をスローする。- Parameters:
clazz
- クラスvalue
- 変換前の値- Returns:
- 変換後の値
-
convertByName
プロパティ名とクラスに紐づいたコンバーターを使用して値を変換する。プロパティ名とクラスに紐づいたコンバーターが見つからなければ
IllegalArgumentException
をスローする。- Parameters:
propertyName
- プロパティ名clazz
- クラスvalue
- 変換前の値- Returns:
- 変換後の値
-
isExcludesNull
public boolean isExcludesNull()コピー元プロパティがnull
の場合にコピーしないかどうかを返す。- Returns:
- コピー元プロパティが
null
の場合にコピーしない場合はtrue
-
isTargetProperty
指定されたプロパティがコピー対象かどうかを返す。- Parameters:
propertyName
- プロパティ名- Returns:
- コピー対象なら
true
-