全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.beans.Introspector

java.lang.Object
   |
   +----java.beans.Introspector

public class Introspector
extends Object
Introspector クラスには、ターゲットの Java Bean がサポートするプロパティ、イベント、およびメソッドについてツールが調べるための、標準的な方法が備わっています。

上記の 3 種類の情報について、Introspector は bean のクラスとスーパークラスを別々に分析し、明白/暗黙的な情報を見つけ出し、その情報を使ってターゲット bean を包括的に記述する BeanInfo オブジェクトを構築します。

「Foo」 クラスでは、情報の問い合わせ時に null でない値を示す該当 「FooBeanInfo」 クラスがある場合、明白な情報を入手できます。まず最初にターゲット bean クラスの完全なパッケージ修飾名を取って 「BeanInfo」 を添えて新規のクラス名を作り、BeanInfo クラスを検索します。この処理が失敗した場合は、この完全なパッケージ修飾名の最後のクラス名にあたる部分を取り、BeanInfo パッケージ検索パスに指定のパッケージごとに該当クラスを検索します。

従って、例えば 「sun.xyz.OurButton」 というクラスでは、ます最初に 「sun.xyz.OurButtonBeanInfo」 という BeanInfo クラスを検索し、見つかられない場合は BeanInfo 検索パス内のパッケージごとに OurButtonBeanInfo クラスを検索します。

クラスが明白な BeanInfo を示す場合、分析クラスおよび発生クラスから獲得した BeanInfo 情報にこれを追加します。明白な情報は現在のクラスおよびそのベースクラスに関する最も信頼できる情報とみなすので、スーパークラスの連鎖についての検索はしません。

クラスの明白な BeanInfo が見つからない場合、低レベルのリフレクションを使ってクラスのメソッドを調べ、標準設計パターンを適用してプロパティのアクセス用メソッド、イベントソースメソッド、および public メソッドを識別します。次にクラスのスーパークラス分析を行い、この情報を追加します (スーパークラスの連鎖をさかのぼる可能性もあります)。


Method Index

 o decapitalize(String)
文字列を取り、通常の Java 変数名の大文字使用法に従って変換するユーティリティメソッド。
 o getBeanInfo(Class)
Java bean を内部検査し、すべてのプロパティ、公開されたメソッド、およびイベントについて調べます。
 o getBeanInfo(Class, Class)
Java bean を内部検査し、指定の 「停止」 ポイントになるまで、プロパティ、公開されたメソッドを調べます。
 o getBeanInfoSearchPath()
 o setBeanInfoSearchPath(String[])
BeanInfo クラスの検索で使うパッケージ名のリストを変更します。

Methods

 o getBeanInfo
  public static BeanInfo getBeanInfo(Class beanClass) throws IntrospectionException
Java bean を内部検査し、すべてのプロパティ、公開されたメソッド、およびイベントについて調べます。

パラメータ:
beanClass - 分析する bean クラス
返り値:
ターゲット bean を記述する BeanInfo オブジェクト
例外: IntrospectionException
内部検査中に例外が発生した場合
 o getBeanInfo
  public static BeanInfo getBeanInfo(Class beanClass,
                                     Class stopClass) throws IntrospectionException
Java bean を内部検査し、指定の 「停止」 ポイントになるまで、プロパティ、公開されたメソッドを調べます。

パラメータ:
bean - 分析する bean クラス
stopClass - 分析を止めるベースクラス。stopClass やそのベースクラス内のメソッド/プロパティ/イベントはすべて、分析処理では無視されます。
例外: IntrospectionException
内部検査中に例外が発生した場合
 o decapitalize
  public static String decapitalize(String name)
文字列を取り、通常の Java 変数名の大文字使用法に従って変換するユーティリティメソッド。通常、最初の文字を大文字から小文字に変換しますが、(まれに) 特殊な場合、例えば複数の文字があって最初と 2 番目の両方の文字が大文字の場合は、変換しません。

つまり、「FooBah」 は 「fooBah」、「X」 は 「x」 になりますが、「URL」 は変りません。

パラメータ:
name - 小文字にする文字列
返り値:
小文字化した文字列
 o getBeanInfoSearchPath
  public static String[] getBeanInfoSearchPath()
返り値:
BeanInfo クラスを見つけるために検索されるパッケージ名の配列

最初は {"sun.beans.infos"} に設定されています。

 o setBeanInfoSearchPath
  public static void setBeanInfoSearchPath(String path[])
BeanInfo クラスの検索で使うパッケージ名のリストを変更します。

パラメータ:
path - パッケージ名の配列

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス