JavaTM 2 Platform
Std. Ed. v1.3

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 メソッドを識別します。次にクラスのスーパークラスを分析し、この情報を追加します (スーパークラスの連鎖をさかのぼる可能性もある)。

イントロスペクションおよび設計パターンについての詳細は、「JavaBeans specification」を参照してください。


フィールドの概要
static int IGNORE_ALL_BEANINFO
           
static int IGNORE_IMMEDIATE_BEANINFO
           
static int USE_ALL_BEANINFO
           
 
メソッドの概要
static String decapitalize(String name)
          文字列を引数に取り、通常の Java 変数名の大文字使用法に従って変換するユーティリティメソッドです。
static void flushCaches()
          Introspector の内部キャッシュをすべてフラッシュします。
static void flushFromCaches(Class clz)
          Introspector の指定されたクラスの内部キャッシュ情報をすべてフラッシュします。
static BeanInfo getBeanInfo(Class beanClass)
          Java bean を内観し、すべてのプロパティ、公開されたメソッド、およびイベントについて調べます。
static BeanInfo getBeanInfo(Class beanClass, Class stopClass)
          Java bean を内観し、指定の「停止」ポイントになるまで、プロパティ、公開されたメソッドを調べます。
static BeanInfo getBeanInfo(Class beanClass, int flags)
          いくつかの制御フラグに従って、Java bean を内観し、すべてのプロパティ、公開されたメソッド、およびイベントについて調べます。
static String[] getBeanInfoSearchPath()
          BeanInfo クラスの検察に使用されるパッケージ名のリストを取得します。
static void setBeanInfoSearchPath(String[] path)
          BeanInfo クラスの検索に使用されるパッケージ名のリストを設定します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

USE_ALL_BEANINFO

public static final int USE_ALL_BEANINFO

IGNORE_IMMEDIATE_BEANINFO

public static final int IGNORE_IMMEDIATE_BEANINFO

IGNORE_ALL_BEANINFO

public static final int IGNORE_ALL_BEANINFO
メソッドの詳細

getBeanInfo

public static BeanInfo getBeanInfo(Class beanClass)
                            throws IntrospectionException
Java bean を内観し、すべてのプロパティ、公開されたメソッド、およびイベントについて調べます。
パラメータ:
beanClass - 分析される bean クラス
戻り値:
ターゲット bean を記述する BeanInfo オブジェクト
例外:
IntrospectionException - イントロスペクション中に例外が発生した場合

getBeanInfo

public static BeanInfo getBeanInfo(Class beanClass,
                                   int flags)
                            throws IntrospectionException
いくつかの制御フラグに従って、Java bean を内観し、すべてのプロパティ、公開されたメソッド、およびイベントについて調べます。
パラメータ:
beanClass - 分析される bean クラス
flags - イントロスペクションを制御するためのフラグ。flags == USE_ALL_BEANINFO の場合、見つかったすべての BeanInfo クラスを使用する。flags == IGNORE_IMMEDIATE_BEANINFO の場合、指定された beanClass に関連した BeanInfo をすべて無視する。flags == IGNORE_ALL_BEANINFO の場合、指定された beanClass またはそのすべての親クラスに関連したすべての BeanInfo を無視する
戻り値:
ターゲット bean を記述する BeanInfo オブジェクト
例外:
IntrospectionException - イントロスペクション中に例外が発生した場合

getBeanInfo

public static BeanInfo getBeanInfo(Class beanClass,
                                   Class stopClass)
                            throws IntrospectionException
Java bean を内観し、指定の「停止」ポイントになるまで、プロパティ、公開されたメソッドを調べます。
パラメータ:
bean - 分析される bean クラス
stopClass - 分析を停止する基底クラス。stopClass やその基底クラス内のメソッド/プロパティ/イベントはすべて、分析処理では無視される
例外:
IntrospectionException - イントロスペクション中に例外が発生した場合

decapitalize

public static String decapitalize(String name)
文字列を引数に取り、通常の Java 変数名の大文字使用法に従って変換するユーティリティメソッドです。通常は最初の文字を大文字から小文字に変換しますが、特殊な場合、たとえば複数の文字があって最初と 2 番目の両方の文字が大文字の場合は、変換しません。

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

パラメータ:
name - 小文字に変換される文字列
戻り値:
小文字に変換された文字列

getBeanInfoSearchPath

public static String[] getBeanInfoSearchPath()
BeanInfo クラスの検察に使用されるパッケージ名のリストを取得します。
戻り値:
BeanInfo クラスを検索するために使用されるパッケージ名の配列

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


setBeanInfoSearchPath

public static void setBeanInfoSearchPath(String[] path)
BeanInfo クラスの検索に使用されるパッケージ名のリストを設定します。

セキュリティマネージャが存在する場合、最初に、セキュリティマネージャの checkPropertiesAccess メソッドが呼び出されます。これによって、SecurityException がスローされる場合があります。

パラメータ:
path - パッケージ名の配列
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPropertiesAccess メソッドがシステムプロパティの設定を許可しない場合
関連項目:
SecurityManager.checkPropertiesAccess()

flushCaches

public static void flushCaches()
Introspector の内部キャッシュをすべてフラッシュします。このメソッドは通常は必要ありません。通常、このメソッドが必要とされるのは、拡張ツールが既存の配置済み Class オブジェクトを更新し、Introspector に既存の Class オブジェクトを再分析させる必要が生じた場合だけです。

flushFromCaches

public static void flushFromCaches(Class clz)
Introspector の指定されたクラスの内部キャッシュ情報をすべてフラッシュします。このメソッドは通常は必要ありません。通常、このメソッドが必要とされるのは、拡張ツールが既存の配置済み Class オブジェクトを更新し、Introspector に既存の Class オブジェクトを再分析させる必要が生じた場合だけです。 フラッシュされるのは、ターゲット Class オブジェクトに関連した直接の状態だけです。同じ名前を持つほかの Class オブジェクトの状態や、関連する Class オブジェクト (サブクラスなど) の状態は、フラッシュされません。それらの状態にターゲット Class オブジェクトから間接的に取得された情報が格納されている場合も同様です。
パラメータ:
clz - フラッシュされるクラスオブジェクト

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.