public final class CopyOptions
extends java.lang.Object
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を追加する。
DateDateTimestampString
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();
| Modifier and Type | Class and Description |
|---|---|
static class |
CopyOptions.Builder
CopyOptionsのビルダー。 |
static interface |
CopyOptions.ConvertersProvider
日付パターン・数値パターンをもとに
Converterを提供するインターフェース。 |
static class |
CopyOptions.DefaultConvertersProvider
CopyOptions.ConvertersProviderのデフォルト実装。 |
| Modifier and Type | Method and Description |
|---|---|
java.lang.Object |
convertByName(java.lang.String propertyName,
java.lang.Class<?> clazz,
java.lang.Object value)
プロパティ名とクラスに紐づいたコンバーターを使用して値を変換する。
|
java.lang.Object |
convertByType(java.lang.Class<?> clazz,
java.lang.Object value)
クラスに紐づいたコンバーターを使用して値を変換する。
|
static CopyOptions |
empty()
空の
CopyOptionsを取得する。 |
static CopyOptions |
fromAnnotation(java.lang.Class<?> clazz)
CopyOptionアノテーションを読み取って構築されたCopyOptionsを取得する。 |
boolean |
hasNamedConverter(java.lang.String propertyName,
java.lang.Class<?> clazz)
指定されたプロパティ名とクラスに紐づいたコンバーターを保持しているかどうかを判断して返す。
|
boolean |
hasTypedConverter(java.lang.Class<?> clazz)
指定されたクラスに紐づいたコンバーターを保持しているかどうかを返す。
|
boolean |
isExcludesNull()
コピー元プロパティが
nullの場合にコピーしないかどうかを返す。 |
boolean |
isTargetProperty(java.lang.String propertyName)
指定されたプロパティがコピー対象かどうかを返す。
|
CopyOptions |
merge(CopyOptions other)
他の
CopyOptionsをマージする。 |
static CopyOptions.Builder |
options()
ビルダーを取得する。
|
@Published public static CopyOptions.Builder options()
public static CopyOptions empty()
CopyOptionsを取得する。CopyOptionspublic static CopyOptions fromAnnotation(java.lang.Class<?> clazz)
CopyOptionアノテーションを読み取って構築されたCopyOptionsを取得する。clazz - アノテーションを読み取る対象のクラスCopyOptionアノテーションを読み取って構築されたCopyOptionspublic CopyOptions merge(CopyOptions other)
CopyOptionsをマージする。
マージ処理はthisをベースにして差分をotherから持ってくる。
例えば同一のプロパティに紐づいたConverterがthisとotherの両方にあった場合、
マージ後のCopyOptionsにはthisが持つConverterが残る。
other - 他のCopyOptionsインスタンスpublic boolean hasTypedConverter(java.lang.Class<?> clazz)
clazz - クラスtruepublic boolean hasNamedConverter(java.lang.String propertyName,
java.lang.Class<?> clazz)
propertyName - プロパティ名clazz - クラスtruepublic java.lang.Object convertByType(java.lang.Class<?> clazz,
java.lang.Object value)
クラスに紐づいたコンバーターが見つからなければIllegalArgumentExceptionをスローする。
clazz - クラスvalue - 変換前の値public java.lang.Object convertByName(java.lang.String propertyName,
java.lang.Class<?> clazz,
java.lang.Object value)
プロパティ名とクラスに紐づいたコンバーターが見つからなければIllegalArgumentExceptionをスローする。
propertyName - プロパティ名clazz - クラスvalue - 変換前の値public boolean isExcludesNull()
nullの場合にコピーしないかどうかを返す。nullの場合にコピーしない場合はtruepublic boolean isTargetProperty(java.lang.String propertyName)
propertyName - プロパティ名true