jp.terasoluna.fw.util
クラス GenericPropertyUtil

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

public class GenericPropertyUtil
extends Object

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


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

コンストラクタの詳細

GenericPropertyUtil

public GenericPropertyUtil()
メソッドの詳細

resolveCollectionType

public static Class resolveCollectionType(Object bean,
                                          String name)
                                   throws IllegalArgumentException,
                                          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型が返却される。
例外:
IllegalArgumentException - 引数beannullの場合。引数namenull、空文字、空白文字列の場合。 JavaBeanのプロパティの 取得メソッドを取得できなかった場合
IllegalStateException - 指定されたプロパティがCollection実装クラス ではない場合。

resolveType

public static Class resolveType(Object bean,
                                String name,
                                Class genericClass,
                                int index)
                         throws IllegalArgumentException,
                                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型が返却される。
例外:
IllegalArgumentException - 引数beannullの場合。引数namenull、空文字、空白文字列の場合。 引数genericClassnullの場合。 引数index0より小さい、または、 宣言された型パラメータ数以上の場合。 JavaBeanのプロパティの 取得メソッドを取得できなかった場合
IllegalStateException - 型パラメータがWildCardTypeである場合。

getMethod

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

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

resolveType

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

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


Copyright © 2012. All Rights Reserved.