Class BeanUtil

java.lang.Object
nablarch.core.beans.BeanUtil

@Published public final class BeanUtil extends Object
JavaBeansおよびレコードに関する操作をまとめたユーティリティクラス。

レコードはJavaBeanではないものの、JavaBeansと同様に取り扱えると便利なため、 本ユーティリティにてレコードに関する操作もサポートしている。

Author:
kawasima, tajima
  • Method Summary

    Modifier and Type
    Method
    Description
    static <T> void
    copy(Class<? extends T> beanClass, T bean, Map<String,?> map, CopyOptions copyOptions)
    MapからBeanインスタンスへコピーを行う。
    static <SRC, DEST> DEST
    copy(SRC srcBean, DEST destBean)
    BeanもしくはレコードからBeanに値をコピーする。
    static <SRC, DEST> DEST
    copy(SRC srcBean, DEST destBean, CopyOptions copyOptions)
    BeanもしくはレコードからBeanに値をコピーする。
    static <SRC, DEST> DEST
    copyExcludes(SRC srcBean, DEST destBean, String... excludes)
    BeanもしくはレコードからBeanに、指定されたプロパティ以外をコピーする。
    static <SRC, DEST> DEST
    copyExcludesNull(SRC srcBean, DEST destBean)
    BeanもしくはレコードからBeanに値をコピーする。ただしnullのプロパティはコピーしない。
    static <SRC, DEST> DEST
    copyIncludes(SRC srcBean, DEST destBean, String... includes)
    BeanもしくはレコードからBeanに、指定されたプロパティをコピーする。
    static <T> T
    createAndCopy(Class<T> beanClass, Object srcBean)
    Java Beansもしくはレコードからプロパティをコピーして、別のBeanを作成する。
    static <T> T
    createAndCopy(Class<T> beanClass, Object srcBean, CopyOptions copyOptions)
    Java Beansもしくはレコードからプロパティをコピーして、別のBeanを作成する。
    static <T> T
    createAndCopy(Class<T> beanClass, Map<String,?> map)
    MapからBeanもしくはレコードを生成する。
    static <T> T
    createAndCopy(Class<T> beanClass, Map<String,?> map, CopyOptions copyOptions)
    MapからBeanもしくはレコードを生成する。
    static <T> T
    createAndCopyExcludes(Class<T> beanClass, Object srcBean, String... excludes)
    Java Beansから指定されたプロパティ以外をコピーして、別のBeanを作成する。
    static <T> T
    createAndCopyExcludes(Class<T> beanClass, Map<String,?> map, String... excludes)
    Mapから指定されたプロパティ以外をコピーしてBeanもしくはレコードを生成する。
    static <T> T
    createAndCopyIncludes(Class<T> beanClass, Object srcBean, String... includes)
    Java Beansもしくはレコードから指定されたプロパティをコピーして、別のBeanを作成する。
    static <T> T
    createAndCopyIncludes(Class<T> beanClass, Map<String,?> map, String... includes)
    Mapから、指定したプロパティのみをコピーしたBeanもしくはレコードを生成する。
    static <SRC> Map<String,Object>
    createMapAndCopy(SRC srcBean)
    BeanもしくはレコードからMapにプロパティの値をコピーする。
    static <SRC> Map<String,Object>
    createMapAndCopy(SRC srcBean, CopyOptions copyOptions)
    BeanもしくはレコードからMapにプロパティの値をコピーする。
    static <SRC> Map<String,Object>
    createMapAndCopyExcludes(SRC srcBean, String... excludeProperties)
    BeanもしくはレコードからMapにプロパティの値をコピーする。
    static <SRC> Map<String,Object>
    createMapAndCopyIncludes(SRC srcBean, String... includesProperties)
    BeanもしくはレコードからMapに指定されたプロパティの値をコピーする。
    static Object
    getProperty(Object bean, String propertyName)
    指定したJavaBeansオブジェクトもしくはレコードから、特定のプロパティの値を取得する。
    static Object
    getProperty(Object bean, String propertyName, Class<?> type)
    指定したJavaBeansオブジェクトもしくはレコードのプロパティの値を、指定した型に変換して取得する。
    getPropertyDescriptor(Class<?> beanClass, String propertyName)
    指定したクラスから、特定のプロパティのPropertyDescriptor を取得する。
    指定したクラスに属する全てのプロパティの PropertyDescriptor を取得する。
    static void
    setProperty(Object bean, String propertyName, Object propertyValue)
    指定したJavaBeansオブジェクトのプロパティに値を登録する。

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • getPropertyDescriptors

      public static PropertyDescriptor[] getPropertyDescriptors(Class<?> beanClass)
      指定したクラスに属する全てのプロパティの PropertyDescriptor を取得する。

      ただし、classプロパティは取得対象外となる。

      本メソッドの引数にレコードクラスを指定した場合、実行時例外が送出される。

      Parameters:
      beanClass - プロパティを取得したいクラス
      Returns:
      PropertyDescriptor[] 全てのプロパティの PropertyDescriptor
      Throws:
      BeansException - プロパティの取得に失敗した場合。
      IllegalArgumentException - 引数のbeanClassがレコードの場合
    • getPropertyDescriptor

      public static PropertyDescriptor getPropertyDescriptor(Class<?> beanClass, String propertyName)
      指定したクラスから、特定のプロパティのPropertyDescriptor を取得する。

      本メソッドの引数にレコードクラスを指定した場合、実行時例外が送出される。

      Parameters:
      beanClass - プロパティを取得したいクラス
      propertyName - 取得したいプロパティ名
      Returns:
      PropertyDescriptor 取得したプロパティ
      Throws:
      BeansException - propertyName に対応するプロパティが定義されていない場合。
      IllegalArgumentException - 引数のbeanClassがレコードの場合
    • getProperty

      public static Object getProperty(Object bean, String propertyName)
      指定したJavaBeansオブジェクトもしくはレコードから、特定のプロパティの値を取得する。

      propertyNameには、beanのトップレベル要素のみ指定可能である。

           
           // ----------サンプルで使用するBean----------
           public class SampleBean {
               private String stringProp;
               private List<String> listProp;
               private String[] arrayProp;
               private NestedBean nestedBean;
               // setter及びgetterは省略
           }
      
           public class NestedBean {
               private String nestedStringProp;
               // setter及びgetterは省略
           }
      
           // ----------実装例----------
           // 問題のないコード1
           String stringProp = BeanUtil.getProperty(sampleBean, "stringProp");
      
           // 問題のないコード2
           String stringProp = BeanUtil.getProperty(sampleBean.nestedBean, "nestedStringProp");
      
           // 以下のコードは動作しない
           String nestedStringProp = BeanUtil.getProperty(sampleBean, "nestedBean.nestedStringProp");
      
           
       
      Parameters:
      bean - プロパティの値を取得したいBeanオブジェクトもしくはレコード
      propertyName - 取得したいプロパティ名
      Returns:
      Object オブジェクトから取得したプロパティの値
      Throws:
      BeansException - propertyName に対応するプロパティが定義されていない場合。
    • getProperty

      public static Object getProperty(Object bean, String propertyName, Class<?> type)
      指定したJavaBeansオブジェクトもしくはレコードのプロパティの値を、指定した型に変換して取得する。

      型変換の仕様はConversionUtilを参照。

      propertyNameの指定方法についてはgetProperty(Object, String)を参照。

      Parameters:
      bean - プロパティの値を取得したいBeanオブジェクトもしくはレコード
      propertyName - 取得したいプロパティの名称
      type - 変換したい型 (nullを指定した場合は変換を行わず、プロパティの値をそのまま返す。)
      Returns:
      Object 取得したプロパティをtypeに変換したオブジェクト
      Throws:
      BeansException - propertyName に対応するプロパティが定義されていない場合。
    • setProperty

      public static void setProperty(Object bean, String propertyName, Object propertyValue)
      指定したJavaBeansオブジェクトのプロパティに値を登録する。

      対象のプロパティにsetterが定義されていない場合はなにもしない。

      propertyValueがnullの場合は、例外の送出やログ出力は行わずに、対象プロパティの値はnullになる。

      プロパティの指定方法
      propertyNameにはプロパティ名を指定する。 List型・配列型のプロパティでは、"プロパティ名[インデックス]"という形式で要素番号を指定して値を登録できる。 ネストしたプロパティを指定することも可能である。ネストの深さに制限はない。 ネストの親となるプロパティがnullである場合は、デフォルトコンストラクタを起動し インスタンスを生成してから値を格納する。

      実装例

       
           // ----------サンプルで使用するBean----------
           public class SampleBean {
               private String stringProp;
               private List<String> listProp;
               private String[] arrayProp;
               private NestedBean nestedBean;
               // setter及びgetterは省略
           }
           public class NestedBean {
               private String nestedStringProp;
      
               // setter及びgetterは省略
           }
      
           // ----------実装例----------
           SampleBean sampleBean = new SampleBean();
      
           // stringPropプロパティに"value"を登録
           BeanUtil.setProperty(sampleBean,"stringProp", "value");
      
           // stringPropプロパティにnullを登録。stringPropはnullとなる
           BeanUtil.setProperty(sampleBean,"stringProp", null);
      
           // listPropPropプロパティの要素番号0の位置に"list_value"を登録
           BeanUtil.setProperty(sampleBean,"listProp[0]", "list_value");
      
           // 配列型のプロパティの要素番号0の位置に"array_value"を登録
           // 十分な要素数が自動で確保される
           BeanUtil.setProperty(sampleBean, "arrayProp[0]", "array_value");
      
           // nestedBeanプロパティのnestedStringPropプロパティに"nested_value"を登録
           BeanUtil.setProperty(sampleBean, "nestedBean.nestedStringProp", "nested_value");
       
       

      引数のbeanがレコードの場合、実行時例外が送出される。

      Parameters:
      bean - 値を登録したいBeanオブジェクト
      propertyName - 値を登録したいプロパティ名
      propertyValue - 登録したい値
      Throws:
      BeansException -
      • propertyNameに対応するプロパティが定義されていない場合
      • List型・配列型以外のプロパティに、"プロパティ名[インデックス]"という形式で指定した場合
      • ネストの親となるプロパティのインスタンス生成に失敗した場合
      IllegalArgumentException - 引数のbeanがレコードの場合
    • createAndCopy

      public static <T> T createAndCopy(Class<T> beanClass, Map<String,?> map, CopyOptions copyOptions)
      MapからBeanもしくはレコードを生成する。

      生成対象がBeanであり、かつmapがnullである場合は、デフォルトコンストラクタでbeanClassを生成して返却する。

      生成対象がレコードであり、かつmapがnullである場合は、各コンポーネントにnullもしくはプリミティブ型のデフォルト値を設定したレコードを生成して返却する。

      mapにvalueがnullのエントリがある場合、対応するプロパティの値はnullとなる。

      生成対象がBeanで、かつ対象のプロパティにsetterが定義されていない場合はなにもしない。

      プロパティの指定方法
      mapに格納するエントリのキー値には、値を登録したいプロパティ名を指定する。 List型・配列型のプロパティでは、"プロパティ名[インデックス]"という形式で要素番号を指定して値を登録できる。 ネストしたプロパティを指定することも可能である。ネストの深さに制限はない。 ネストの親となるプロパティがnullである場合は、インスタンスを生成してから値を登録する。

      実装例

       
           // ----------サンプルで使用するBean----------
           public class SampleBean {
               private String stringProp;
               private List<String> listProp;
               private String[] arrayProp;
               private NestedBean nestedBean;
      
               // setter及びgetterは省略
           }
      
           public class NestedBean {
               private String nestedStringProp;
      
               // setter及びgetterは省略
           }
      
           // ----------実装例----------
           // 格納したいプロパティ名をkeyに、値をvalueにもつMapを作成する
           Map<String,Object> map = new HashMap();
      
           // String型のプロパティに"value"を登録
           map.put("stringProp", "value");
      
           // stringPropプロパティにnullを登録。stringPropはnullとなる。
           map.put("stringProp", null);
      
           // List型のプロパティの要素番号0の位置に"list_value"を登録
           map.put("listProp[0]", "list_value");
      
           // 配列型のプロパティの要素番号0の位置に"array_value"を登録
           // 十分な要素数が自動で確保される
           map.put("arrayProp[0]", "array_value");
      
           // ネストしたオブジェクトのプロパティに"nested_value"を登録
           map.put("nestedBean.nestedStringProp", "nested_value");
      
           SampleBean sampleBean = BeanUtil.createAndCopy(SampleBean.class,map);
       
       

      Type Parameters:
      T - 型引数
      Parameters:
      beanClass - 生成したいBeanクラス
      map - JavaBeansのプロパティ名をエントリーのキー プロパティの値をエントリーの値とするMap
      copyOptions - コピーの設定
      Returns:
      プロパティに値が登録されたBeanオブジェクト
      Throws:
      BeansException - beanClassにデフォルトコンストラクタが定義されていない場合や、 beanClassのコンストラクタ実行時に問題が発生した場合。
    • copy

      public static <T> void copy(Class<? extends T> beanClass, T bean, Map<String,?> map, CopyOptions copyOptions)
      MapからBeanインスタンスへコピーを行う。

      生成済みのインスタンスにコピーを行う点以外は、createAndCopy(Class, Map, CopyOptions)と同じ動作である。

      Type Parameters:
      T - 型引数
      Parameters:
      beanClass - 移送先BeanのClass
      bean - 移送先Beanインスタンス
      map - JavaBeansのプロパティ名をエントリーのキー、プロパティの値をエントリーの値とする、移送元のMap
      copyOptions - コピーの設定
      Throws:
      IllegalArgumentException - 引数のbeanClassがレコードクラスの場合
    • createAndCopy

      public static <T> T createAndCopy(Class<T> beanClass, Map<String,?> map)
      MapからBeanもしくはレコードを生成する。

      内部的には空のCopyOptionsを渡してcreateAndCopy(Class, Map, CopyOptions)を呼び出している。

      Type Parameters:
      T - 型引数
      Parameters:
      beanClass - 生成したいBeanクラス
      map - JavaBeansのプロパティ名をエントリーのキー プロパティの値をエントリーの値とするMap
      Returns:
      プロパティに値が登録されたBeanオブジェクト
      Throws:
      BeansException - beanClassにデフォルトコンストラクタが定義されていない場合や、 beanClassのコンストラクタ実行時に問題が発生した場合。
    • createAndCopyIncludes

      public static <T> T createAndCopyIncludes(Class<T> beanClass, Map<String,?> map, String... includes)
      Mapから、指定したプロパティのみをコピーしたBeanもしくはレコードを生成する。

      生成対象がBeanであり、かつmapがnullである場合は、デフォルトコンストラクタでbeanClassを生成して返却する。

      生成対象がレコードであり、かつmapがnullである場合は、各コンポーネントにnullもしくはプリミティブ型のデフォルト値を設定したレコードを生成して返却する。

      mapでvalueがnullであるプロパティの値はnullになる。例外の送出やログ出力は行わない。

      生成対象がBeanで、かつ対象のプロパティにsetterが定義されていない場合はなにもしない。

      プロパティの指定方法についてはcreateAndCopy(Class, Map)を参照。

      Type Parameters:
      T - 型引数
      Parameters:
      beanClass - 生成したいBeanクラス、もしくはレコードクラス
      map - JavaBeansのプロパティ名をエントリーのキー プロパティの値をエントリーの値とするMap
      includes - コピー対象のプロパティ名
      Returns:
      Beanオブジェクト
      Throws:
      BeansException - beanClassにデフォルトコンストラクタが定義されていない場合や、 beanClassのコンストラクタ実行時に問題が発生した場合。
    • createAndCopyExcludes

      public static <T> T createAndCopyExcludes(Class<T> beanClass, Map<String,?> map, String... excludes)
      Mapから指定されたプロパティ以外をコピーしてBeanもしくはレコードを生成する。

      生成対象がBeanであり、かつmapがnullである場合は、デフォルトコンストラクタでbeanClassを生成して返却する。

      生成対象がレコードであり、かつmapがnullである場合は、各コンポーネントにnullもしくはプリミティブ型のデフォルト値を設定したレコードを生成して返却する。

      生成対象がBeanで、対象のプロパティにsetterが定義されていない場合はなにもしない。

      プロパティの指定方法についてはcreateAndCopy(Class, Map)を参照。

      Type Parameters:
      T - 型引数
      Parameters:
      beanClass - 生成したいBeanクラス、もしくはレコードクラス
      map - JavaBeansのプロパティ名をエントリーのキー プロパティの値をエントリーの値とするMap
      excludes - コピー対象外のプロパティ名
      Returns:
      プロパティに値が登録されたBeanオブジェクト
      Throws:
      BeansException - beanClassにデフォルトコンストラクタが定義されていない場合や、 beanClassのコンストラクタ実行時に問題が発生した場合。
    • createAndCopy

      public static <T> T createAndCopy(Class<T> beanClass, Object srcBean)
      Java Beansもしくはレコードからプロパティをコピーして、別のBeanを作成する。

      srcBeanがnullである場合、デフォルトコンストラクタでbeanClassを生成して返却する。

      Type Parameters:
      T - 型引数
      Parameters:
      beanClass - コピー先のBeanクラス
      srcBean - コピー元のBean
      Returns:
      コピーされたBeanオブジェクト
      Throws:
      BeansException - beanClassにデフォルトコンストラクタが定義されていない場合や、 beanClassのコンストラクタの実行中に問題が発生した場合。
    • createAndCopy

      public static <T> T createAndCopy(Class<T> beanClass, Object srcBean, CopyOptions copyOptions)
      Java Beansもしくはレコードからプロパティをコピーして、別のBeanを作成する。

      生成対象がBeanであり、かつsrcBeanがnullである場合、デフォルトコンストラクタでbeanClassを生成して返却する。

      生成対象がレコードであり、かつsrcBeanがnullである場合は、各コンポーネントにnullもしくはプリミティブ型のデフォルト値を設定したレコードを生成して返却する。

      Type Parameters:
      T - 型引数
      Parameters:
      beanClass - コピー先のBeanクラス
      srcBean - コピー元のBeanもしくはレコード
      copyOptions - コピーの設定
      Returns:
      コピーされたBeanオブジェクト
      Throws:
      BeansException - beanClassにデフォルトコンストラクタが定義されていない場合や、 beanClassのコンストラクタの実行中に問題が発生した場合。
    • createAndCopyIncludes

      public static <T> T createAndCopyIncludes(Class<T> beanClass, Object srcBean, String... includes)
      Java Beansもしくはレコードから指定されたプロパティをコピーして、別のBeanを作成する。

      生成対象がBeanであり、かつsrcBeanがnullである場合、デフォルトコンストラクタでbeanClassを生成して返却する。

      生成対象がレコードであり、かつsrcBeanがnullである場合は、各コンポーネントにnullもしくはプリミティブ型のデフォルト値を設定したレコードを生成して返却する。

      Type Parameters:
      T - 型引数
      Parameters:
      beanClass - コピー先のBeanクラス
      srcBean - コピー元のBeanもしくはレコード
      includes - コピー対象のプロパティ名
      Returns:
      コピーされたBeanオブジェクト
      Throws:
      BeansException - beanClassにデフォルトコンストラクタが定義されていない場合や、 beanClassのデフォルトコンストラクタの実行中に問題が発生した場合。
    • createAndCopyExcludes

      public static <T> T createAndCopyExcludes(Class<T> beanClass, Object srcBean, String... excludes)
      Java Beansから指定されたプロパティ以外をコピーして、別のBeanを作成する。

      生成対象がBeanであり、かつsrcBeanがnullである場合、デフォルトコンストラクタでbeanClassを生成して返却する。

      生成対象がレコードであり、かつsrcBeanがnullである場合は、各コンポーネントにnullもしくはプリミティブ型のデフォルト値を設定したレコードを生成して返却する。

      プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。 srcBeanに存在し、beanClassに存在しないプロパティはコピーされない。

      Type Parameters:
      T - 型引数
      Parameters:
      beanClass - コピー先のBeanクラス
      srcBean - コピー元のBeanもしくはレコード
      excludes - コピー対象外のプロパティ名
      Returns:
      プロパティに値がコピーされたBeanオブジェクト
      Throws:
      BeansException - beanClassのデフォルトコンストラクタの実行中に問題が発生した場合や、 beanClassのプロパティのデフォルトコンストラクタの実行中に問題が発生した場合。
    • copy

      public static <SRC, DEST> DEST copy(SRC srcBean, DEST destBean)
      BeanもしくはレコードからBeanに値をコピーする。

      プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。 srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。

      destBeanにレコードが指定された場合は、IllegalArgumentExceptionが送出される。

      Type Parameters:
      SRC - コピー元のBeanもしくはレコードの型
      DEST - コピー先のBeanの型
      Parameters:
      srcBean - コピー元のBeanオブジェクトもしくはレコード
      destBean - コピー先のBeanオブジェクト
      Returns:
      コピー先のBeanオブジェクト
      Throws:
      BeansException - destBeanのプロパティのインスタンス生成に失敗した場合
      IllegalArgumentException - 引数のdestBeanがレコードの場合
    • copy

      public static <SRC, DEST> DEST copy(SRC srcBean, DEST destBean, CopyOptions copyOptions)
      BeanもしくはレコードからBeanに値をコピーする。

      プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。 srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。

      destBeanにレコードが指定された場合は、IllegalArgumentExceptionが送出される。

      Type Parameters:
      SRC - コピー元のBeanもしくはレコードの型
      DEST - コピー先のBeanの型
      Parameters:
      srcBean - コピー元のBeanオブジェクトもしくはレコード
      destBean - コピー先のBeanオブジェクト
      copyOptions - コピーの設定
      Returns:
      コピー先のBeanオブジェクト
      Throws:
      BeansException - destBeanのプロパティのインスタンス生成に失敗した場合
      IllegalArgumentException - 引数のdestBeanがレコードの場合
    • copyExcludesNull

      public static <SRC, DEST> DEST copyExcludesNull(SRC srcBean, DEST destBean)
      BeanもしくはレコードからBeanに値をコピーする。ただしnullのプロパティはコピーしない。

      プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。 srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。

      destBeanにレコードが指定された場合は、IllegalArgumentExceptionが送出される。

      Type Parameters:
      SRC - コピー元Beanもしくはレコードの型
      DEST - コピー先のBeanの型
      Parameters:
      srcBean - コピー元のBeanオブジェクトもしくはレコード
      destBean - コピー先のBeanオブジェクト
      Returns:
      コピー先のBeanオブジェクト
      Throws:
      BeansException - destBeanのプロパティのインスタンス生成に失敗した場合
      IllegalArgumentException - 引数のdestBeanがレコードの場合
    • copyIncludes

      public static <SRC, DEST> DEST copyIncludes(SRC srcBean, DEST destBean, String... includes)
      BeanもしくはレコードからBeanに、指定されたプロパティをコピーする。

      プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。 srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。

      includesには、srcBeanのトップレベル要素のみ指定可能である。 それ以外を指定した場合はコピーされない。

           
           // aaa.bbbはコピーされない
           SampleBean copiedSampleBean = BeanUtil.createAndCopyIncludes(SampleBean.class, sampleBean, "aaa.bbb");
           
       

      destBeanにレコードが指定された場合は、IllegalArgumentExceptionが送出される。

      Type Parameters:
      SRC - コピー元Beanもしくはレコードの型
      DEST - コピー先のBeanの型
      Parameters:
      srcBean - コピー元のBeanオブジェクトもしくはレコード
      destBean - コピー先のBeanオブジェクト
      includes - コピー対象のプロパティ名
      Returns:
      コピー先のBeanオブジェクト
      Throws:
      BeansException - destBeanのプロパティのインスタンス生成に失敗した場合
      IllegalArgumentException - 引数のdestBeanがレコードの場合
    • copyExcludes

      public static <SRC, DEST> DEST copyExcludes(SRC srcBean, DEST destBean, String... excludes)
      BeanもしくはレコードからBeanに、指定されたプロパティ以外をコピーする。

      プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。 srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。

      destBeanにレコードが指定された場合は、IllegalArgumentExceptionが送出される。

      Type Parameters:
      SRC - コピー元Beanもしくはレコードの型
      DEST - コピー先のBeanの型
      Parameters:
      srcBean - コピー元のBeanオブジェクトもしくはレコード
      destBean - コピー先のBeanオブジェクト
      excludes - コピー対象外のプロパティ名
      Returns:
      コピー先のBeanオブジェクト
      Throws:
      BeansException - destBeanのプロパティのインスタンス生成に失敗した場合
      IllegalArgumentException - 引数のdestBeanがレコードの場合
    • createMapAndCopy

      public static <SRC> Map<String,Object> createMapAndCopy(SRC srcBean, CopyOptions copyOptions)
      BeanもしくはレコードからMapにプロパティの値をコピーする。

      Mapのキーはプロパティ名で、値はプロパティ値となる。 値の型変換は行わず、Beanのプロパティの値を単純にMapの値に設定する。 BeanがBeanを持つ構造の場合、Mapのキー値は「.」で連結された値となる。

      Type Parameters:
      SRC - Beanの型
      Parameters:
      srcBean - Beanもしくはレコード
      copyOptions - コピーの設定
      Returns:
      BeanのプロパティをコピーしたMap
    • createMapAndCopy

      public static <SRC> Map<String,Object> createMapAndCopy(SRC srcBean)
      BeanもしくはレコードからMapにプロパティの値をコピーする。

      内部的には空のCopyOptionsを渡してcreateMapAndCopy(Object, CopyOptions)を呼び出している。

      Type Parameters:
      SRC - Beanの型
      Parameters:
      srcBean - Beanもしくはレコード
      Returns:
      BeanのプロパティをコピーしたMap
    • createMapAndCopyExcludes

      public static <SRC> Map<String,Object> createMapAndCopyExcludes(SRC srcBean, String... excludeProperties)
      BeanもしくはレコードからMapにプロパティの値をコピーする。

      Mapのキーはプロパティ名で、値はプロパティ値となる。 値の型変換は行わず、Beanのプロパティの値を単純にMapの値に設定する。 BeanがBeanを持つ構造の場合、Mapのキー値は「.」で連結された値となる。

      除外対象のプロパティ名が指定された場合は、そのプロパティがコピー対象から除外される。

      Type Parameters:
      SRC - Beanの型
      Parameters:
      srcBean - Beanもしくはレコード
      excludeProperties - 除外対象のプロパティ名
      Returns:
      BeanのプロパティをコピーしたMap
    • createMapAndCopyIncludes

      public static <SRC> Map<String,Object> createMapAndCopyIncludes(SRC srcBean, String... includesProperties)
      BeanもしくはレコードからMapに指定されたプロパティの値をコピーする。

      Mapのキーはプロパティ名で、値はプロパティ値となる。 値の型変換は行わず、Beanのプロパティの値を単純にMapの値に設定する。 BeanがBeanを持つ構造の場合、Mapのキー値は「.」で連結された値となる。

      コピー対象のプロパティ名として指定できるのは、トップ階層のBeanのプロパティ名となる。 このため、階層構造で子階層のBeanがinclude指定されていた場合、子階層のBeanのプロパティは全てコピーされる。

      Type Parameters:
      SRC - Beanの型
      Parameters:
      srcBean - Beanもしくはレコード
      includesProperties - コピー対象のプロパティ名のリスト
      Returns:
      BeanのプロパティをコピーしたMap