jp.terasoluna.fw.util
クラス GenericPropertyUtil

java.lang.Object
  上位を拡張 jp.terasoluna.fw.util.GenericPropertyUtil

public class GenericPropertyUtil
extends java.lang.Object

JavaBeanのプロパティの Genericsを扱うためのユーティリティクラス。


フィールドの概要
private static org.apache.commons.logging.Log log
          ログクラス。
 
コンストラクタの概要
GenericPropertyUtil()
           
 
メソッドの概要
protected static java.lang.reflect.Method getMethod(java.lang.Object bean, java.lang.String name)
          JavaBeanのプロパティの取得メソッドを 取得する。
static java.lang.Class resolveCollectionType(java.lang.Object bean, java.lang.String name)
          JavaBeanCollection型プロパティの要素の型を取得する。
protected static java.lang.Class resolveType(java.lang.Class genericClass, java.lang.Class clazz, java.lang.reflect.Type type, int index)
          フィールド、または、メソッドの情報を元に Generics型で指定された型を取得する。
static java.lang.Class resolveType(java.lang.Object bean, java.lang.String name, java.lang.Class genericClass, int index)
          JavaBeanGenerics型プロパティで指定された型を取得する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

log

private static final org.apache.commons.logging.Log log
ログクラス。

コンストラクタの詳細

GenericPropertyUtil

public GenericPropertyUtil()
メソッドの詳細

resolveCollectionType

public static java.lang.Class resolveCollectionType(java.lang.Object bean,
                                                    java.lang.String name)
                                             throws java.lang.IllegalArgumentException,
                                                    java.lang.IllegalStateException
JavaBeanCollection型プロパティの要素の型を取得する。

取得例

 public class Bean {
     private List<String> list;
     public List<String> getList() {
         return this.list;
     }
 }
 
上記のようなBeanに対して、以下のように使用すると、 String.classを取得できる。

 Bean bean = new Bean();
 Class elementType =
     GenericCollectionUtil.resolveCollectionType(
         bean, "list");
 

パラメータ:
bean - JavaBeanインスタンス。
name - Collection型プロパティの名前。
戻り値:
Collectionの要素の型。 特定できない場合はObject型が返却される。
例外:
java.lang.IllegalArgumentException - 引数beannullの場合。引数namenull、空文字、空白文字列の場合。 JavaBeanのプロパティの 取得メソッドを取得できなかった場合
java.lang.IllegalStateException - 指定されたプロパティがCollection実装クラス ではない場合。

resolveType

public static java.lang.Class resolveType(java.lang.Object bean,
                                          java.lang.String name,
                                          java.lang.Class genericClass,
                                          int index)
                                   throws java.lang.IllegalArgumentException,
                                          java.lang.IllegalStateException
JavaBeanGenerics型プロパティで指定された型を取得する。

取得例

 public class Bean {
     private Map<String, Boolean> map;
     public Map<String, Boolean> getMap() {
         return this.map;
     }
 }
 
上記のようなBeanに対して、以下のように使用すると、 String.classを取得できる。

 Bean bean = new Bean();
 Class keyType =
     GenericCollectionUtil.resolveType(
         bean, "map", Map.class, 0);
 

パラメータ:
bean - JavaBeanインスタンス。
name - Generics型プロパティの名前。
genericClass - Generics型プロパティの 型定義を行っているクラス。
index - 型パラメータの宣言順序。
戻り値:
Generics型プロパティで指定された型。 特定できない場合はObject型が返却される。
例外:
java.lang.IllegalArgumentException - 引数beannullの場合。引数namenull、空文字、空白文字列の場合。 引数genericClassnullの場合。 引数index0より小さい、または、 宣言された型パラメータ数以上の場合。 JavaBeanのプロパティの 取得メソッドを取得できなかった場合
java.lang.IllegalStateException - 型パラメータがWildCardTypeである場合。

getMethod

protected static java.lang.reflect.Method getMethod(java.lang.Object bean,
                                                    java.lang.String name)
                                             throws java.lang.IllegalArgumentException
JavaBeanのプロパティの取得メソッドを 取得する。

パラメータ:
bean - JavaBeanインスタンス。
name - Generics型プロパティの名前。
戻り値:
JavaBeanに定義されたプロパティの取得メソッド。
例外:
java.lang.IllegalArgumentException - JavaBeanのプロパティの 取得メソッドを取得できなかった場合。

resolveType

protected static java.lang.Class resolveType(java.lang.Class genericClass,
                                             java.lang.Class clazz,
                                             java.lang.reflect.Type type,
                                             int index)
                                      throws java.lang.IllegalArgumentException,
                                             java.lang.IllegalStateException
フィールド、または、メソッドの情報を元に Generics型で指定された型を取得する。

パラメータ:
genericClass - Generics型プロパティの 型定義を行っているクラス。
clazz - 具体的な型パラメータを指定したクラス。
type - 具体的な型パラメータを指定したクラスのインスタンスの Typeインスタンス。
index - 型パラメータの宣言順序。
戻り値:
Generics型で指定された型。 特定できない場合はObject型が返却される。
例外:
java.lang.IllegalArgumentException - 引数genericClassnullの場合。 引数clazznullの場合。 引数index0より小さい、または、 宣言された型パラメータ数以上の場合。
java.lang.IllegalStateException - 型パラメータがWildCardTypeである場合。