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