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とそのラッパークラスBigDecimalString
同じクラスに対して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
Nested ClassesModifier and TypeClassDescriptionstatic classCopyOptionsのビルダー。static interface日付パターン・数値パターンをもとにConverterを提供するインターフェース。static classCopyOptions.ConvertersProviderのデフォルト実装。 -
Method Summary
Modifier and TypeMethodDescriptionconvertByName(String propertyName, Class<?> clazz, Object value) プロパティ名とクラスに紐づいたコンバーターを使用して値を変換する。convertByType(Class<?> clazz, Object value) クラスに紐づいたコンバーターを使用して値を変換する。static CopyOptionsempty()空のCopyOptionsを取得する。static CopyOptionsfromAnnotation(Class<?> clazz) CopyOptionアノテーションを読み取って構築されたCopyOptionsを取得する。booleanhasNamedConverter(String propertyName, Class<?> clazz) 指定されたプロパティ名とクラスに紐づいたコンバーターを保持しているかどうかを判断して返す。booleanhasTypedConverter(Class<?> clazz) 指定されたクラスに紐づいたコンバーターを保持しているかどうかを返す。booleanコピー元プロパティがnullの場合にコピーしないかどうかを返す。booleanisTargetProperty(String propertyName) 指定されたプロパティがコピー対象かどうかを返す。merge(CopyOptions other) 他のCopyOptionsをマージする。static CopyOptions.Builderoptions()ビルダーを取得する。
-
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
-