実行時及びビルダ環境では,Java Beanが,どの特性, イベント及びメソッドをサポートするかを,見つけ出すことができる必要がある。 この過程を,自己検査(introspection)と呼ぶ。
Java Beans開発者が,Javaで,十分に作業を行えることが望ましい。 そこで,Java Beanの振舞いを定義するために,いかなる別の仕様記述言語の使用も避けたい。 Javaで,その振舞いをすべて指定したい。
Java Beansの主要目標は,単純な部品を書くこと 及び大部分の共通タスクに対しデフォルトの実装を提供することを,非常に容易にすることにある。 そのため,単純なビーンズでは,ビーンズ開発者が, 自己検査をサポートするための一連の余分な作業を行わずに,自己検査をできるようにしたい。 しかし,より複雑な部品に対しても,部品開発者が,特性,イベント及びメソッドの公開に関して, 完全及び正確な制御ができるようにしたい。
そのために,複合的な機構を提供する。 デフォルトでは,低レベルの 自己反映(reflection) 機構を使用して, 対象ビーンがサポートするメソッドを調べ,その後,単純な 設計パタン(design pattern) を適用して,これらのメソッドから, 特性,イベント及び公開メソッドのいずれがサポートされているかを導き出す。 しかし,ビーンの実装者が,クラス BeanInfo の提供を選択し,彼らのビーンを記述する場合, このクラス BeanInfo を,ビーンの振舞いをプログラムに基づいて発見するために使用する。
アプリケーションビルダ及び他のツールが,ビーンの分析を可能とするために, 様々な設計パタン及び標準インタフェースを理解し,様々なビーンを自己検査する均一の方法を提供する, クラスIntrospectorを提供する。
任意の与えられたビーンインスタンス対して,その自己検査情報は,不変であって,
通常の使用では変化しない,と期待する。
しかし,ビーンが,クラスファイルの新しく改善された集合で更新される場合,
そのシグネチャは変化するかもしれない。
設計パタン(design pattern) という用語は,標準的な目的で使用するメソッド 及び/又はインタフェースの集合に対する,慣用名及び型シグネチャを意味する。 例えば,メソッドgetFoo及びメソッドsetFooは,特性“foo”の値を検索し,設定するために使用する。
これらの設計パタンには,使用法が二つある。 まず,人のプログラマにとっての有益な文書化のヒントとする。 標準設計パタンに合う特定のメソッドを素早く識別することで, 人は,新しいクラスをより速く取り入れ,使用できる。 次に,設計パタンを認識し,部品を分析及び理解するためにそれらを使用する, ツール及びライブラリを書くことができる。 特に,Java Beansでは,設計パタンの自動識別を,ツールが特性, イベント及びエクスポートされたメソッドを識別する手段として使用する。
しかし,Java Bean内部では,設計パタンに合うメソッド名及び型名を使用するのは, 完全にオプションとする。 プログラマが,インタフェースBeanInfoを使って,明示的に,その特性, メソッド及びイベントを指定する準備をすれば,それらが何であっても, そのメソッド及び型を呼び出すことができる。 しかし,これらのメソッド及び型は,それでも, 必要とされる型シグネチャに合致しなければならない。 これは,このことが,それら操作にとって本質的なことによる。
標準命名パタンの使用はオプションだが,これを標準命名規約として使用し,
極めて有益な文書化技術とすることが,非常に望ましい。
デフォルトで,次の形式のメソッドを探すことによって, 特性を位置決めする設計パタンを使用する。
public <Propertytype> get<PropertyName>(); public void set<PropertyName>(<PropertyType> a);
同じ型を取り出し返却する,メソッド“get<PropertyName>” 及びメソッド“set<PropertyName>”の対応する対を発見する場合は, これらのメソッドを,<propertyName>という名前をもつ, 読取り書込み特性を定義するとみなす。 メソッド“get<PropertyName>”を使用して特性値を取得し, メソッド“set<PropertyName>”を使用して特性値を設定する。 メソッドの対は,同じクラスに置かれてもよいし,又は一方は基本クラスにあって, 他方は派生クラスにあってもよい。
これらメソッドの一つだけを見つけた場合は, <propertyName>と呼ぶ, 読取り専用特性又は書込み専用特性のいずれかを定義するとみなす。
デフォルトでは,特性は,束縛(bound) 特性でも 制約付き(constrained) 特性でもないと仮定する(7.参照)。
単純な読取り書込み特性“foo”は,次のメソッドの対で表現してよい。
public Wombat getFoo(); public void setFoo(Wombat w);
論理的特性に対しては,取得メソッドが,次のパタンと合致してよい。
public boolean is<PropertyName>();
このメソッド“is<PropertyName>”は, メソッド“get<PropertyName>”の代わりに,又はメソッド “get<PropertyName>”に付加して,提供してよい。
いずれかの場合でも,メソッド“is<PropertyName>”が, 論理的特性に対して存在するときは,特性値を読み取るために, メソッド“is<PropertyName>”を使用する。
論理的特性の例を,次に示す。
public boolean isMarsupial(); public void setMarsupial(boolean m);
型が,配列“<PropertyElement>[]” となる特性を発見する場合は,同様に,次の形式のメソッドを探す。
public <PropertyElement> get<PropertyName>(int a); public void set<PropertyName>(int a, <PropertyElement> b);
いずれかの種類のパタンを発見すれば,“<propertyName>”が, インデクス付き特性であって,これらのメソッドを, インデクス付きの値の読取り及び/又は書込みのために使用できる,と仮定する。
そこで,インデクス付き特性“foo”は,次の四つのアクセサメソッドで, 表現されるかもしれない。
public Bah[] getFoo(); public void setFoo(Bah a []); public Bah getFoo(int a); public void setFoo(int a, Bah b);
デフォルトで,ビーンが,どのイベントをマルチキャストするかを決定するために, 次の設計パタンを使用する。次の形式のメソッドの対を探す。
public void add<EventListenerType>(<EventListenerType> a) public void remove<EventListenerType>(<EventListenerType> a)
この場合,両メソッドは,同じ型<EventListenerType>の実引数を取る。 ただし,型<EventListenerTypeは,インタフェース“java.util.EventListener” を拡張する。最初のメソッドは,“add”で始まり,2番目のメソッドは,“remove”で始まる。 型名“<EventListenerType>”は,“Listener”で終わる。
この設計パタンは,Java Beanが,インタフェース“<EventListenerType>” で指定するイベントのマルチキャストイベントソースとして動作していることを仮定する。
例えば,次の例は,マルチキャストイベントソースを定義する。
public void addFredListener(FredListener t); public void removeFredListener(FredListener t);
特別な場合として,これらの設計パタンを使用してイベントソースを位置決めする場合, メソッド“add<EventListenerType>”が, java.util.TooManyListenersException を投げるかどうかを検査する。 メソッド“add<EventListenerType>”が, java.util.TooManyListenerExceptionを投げれば,イベントソースは, ユニキャストであって,一度に登録されているイベントリスナは, 一つだけを許容すると仮定する。
例えば, 次の例は,インタフェース“JackListener” に対するユニキャストイベントソースを定義する。
public void addJackListener(JackListener t) throws java.util.TooManyListenersException; public void removeJackListener(JackListener t);
デフォルトで,Java Beanのすべての公開メソッドは,部品環境内部での, 他の部品による又はスクリプト言語によるアクセスのために, 外部的メソッドとして開示することが望ましい,と仮定する。
デフォルトで,これには,あらゆる特性アクセサメソッド,
あらゆるイベントリスナレジストリメソッドを含む。
Java Beanは,インタフェースBeanInfoを実装するクラスを提供することによって, どの特性,イベント及びメソッドをサポートするかを,明示的に指定することもできる。
インタフェースBeanInfoは,対象ビーンのイベント,特性, メソッド及び大域的な情報を知るためのメソッドを提供する。 ビーン配布の一部として,ISVも,ビーンのクラス名に“BeanInfo”を追加することで その名前を形成する,合致するクラスBeanInfoを配布する可能性がある。
Java Beansは,純粋にプログラム的なAPIを使用し, BeanInfo を通じて自己検査情報を取得する。 しかし,舞台の背後にある任意の私的なビーン記述ファイルを使用し, これらのファイルを読み取る方法を知るクラスBeanInfoを単に提供するだけという オプションを,個々の部品開発者はもつことに注意すること。
ビーンのクラスBeanInfoは,ビーンの振舞いの一部だけを指定する, 選択を行うかもしれない。それは,例えば,メソッド getEventSetDescriptors から配列 EventSetDescriptor を返し,ビーンのイベントに関する確実な情報を提供し, その一方で,メソッド getMethodDescriptors から null を返す方を選択するかもしれない。 これは,開示されたメソッドに関する情報を, ビーンそれ自体の調査によって発見することが望ましいことを示す。
そこで,ビーンの完全な図を得るために,アプリケーションツールは,常に,
インタフェース Introspector(8.7を参照)を使用するのがよい。
インタフェース Introspector は,様々な潜在的なソースからの情報を組み合わせ,
対象ビーンに対応する確実な記述子BeanInfoを構成する。
ビーンの開示された特性,メソッド及びイベントの明示的な規定 及び設計パタンを使用する暗黙的な分析の両方を許容する。
この情報へのアクセスを簡単にするために, 及びすべてのツールに確実に同じ分析規則を適用するために, クラスjava.beans.Introspectorを提供する。 これを,ビーンのクラスを分析するために使用することが望ましい。 クラスjava.beans.Introspectorを使用することで, 包括的に対象ビーンのクラスを記述するオブジェクトBeanInfoを得ることができる。
クラスInrospectorは,対象クラスのクラス及びスーパクラスの連鎖上を渡り歩く。 クラスIntrospectorは,各レベルで,ビーンについての明示的な情報を提供する, 合致するクラスBeanInfoが存在するかどうかを検査し,存在すれば, その明示的な情報を使用する。そうでなければ, 低レベルの自己反映APIを使用して対象クラスを調査し, 設計パタンを使用してその振舞いを分析し,それから, その基本クラスで自己検査を続行する。 (分析規則の完全な記述に関するクラスIntrospectorの定義を参照。)
この多重レベル分析は,ISVが,
明示的に指定した振舞いをする複雑なビーンの配布できるためとする。
その場合,これらのビーンズは,エンドカスタマによって,単純な方法で,
サブクラス化され,拡張される。
エンドカスタマが付加した拡張を分析するために自動的な自己検査を使用し,
基本クラスを書いたISVによって提供される明示的な情報に追加を可能としたい。
設計パタンを使用して特性の名前又はイベントの名前を推論する場合, 推論された名前を大文字化するためには,どの規則に従うのがいいのかを, 決定する必要がある。通常,大文字小文字が混ざった様式の Java における名前の中央の辺りから名前を抽出すると,デフォルトでは, 名前は,大文字で始まることになる。
Javaのプログラマは,慣習的に,通常の識別子を小文字で始める。 この規定では,議論の結果,特性名及びイベント名に対しては, この同じ慣用規則に従うのがよい,とした。
そこで,既存のJavaにおける名前の中央の辺りから, 特性名及びイベント名が抽出する場合,通常, 最初の文字を小文字に変換する。 しかし,すべて大文字の名前を使用する場合をサポートするために, 名前の最初の2文字が両方とも大文字かどうか,及びその場合には, 両方とも大文字のままにしておくかどうかを検査する。 次に例を示す。
この変換規則を実装するメソッド Introspector.decapitalize を提供する。
高レベルの自己検査 API だけが,対象ビーンの“公開”
メソッドにおける情報を提供する。
通常の JDK セキュリティマネジャでは,信頼されないアプレットでも,
java.lang.reflect API を使用して公開フィールド及び公開メソッドにアクセスできる。
しかし,私的なメソッド及び私的なフィールドへのアクセスは,
“信頼される”アプリケーションビルダには適用されてもよいが,
信頼されないアプレットに対しては,通常は,拒絶される。
public class java.beans.BeanDescriptor extends java.beans.FeatureDescriptor
BeanDescriptorは,そのJavaのクラス,そのdisplayName,などの, ビーンに関する大域的な情報を提供する。
これは,オブジェクトBeanInfoによって返される記述子の一種とする。 オブジェクトBeanInfoは,特性,メソッド及びイベントに対応する記述子も返す。
public BeanDescriptor(Class beanClass)カスタマイザをもたないビーンに対して,BeanDescriptorを生成する。
public BeanDescriptor(Class beanClass, Class customizerClass)カスタマイザをもつビーンに対して,BeanDescriptorを生成する。
public Class getBeanClass()
public Class getCustomizerClass()
public interface java.beans.BeanInfo
ビーンに関する明示的な情報を提供したいビーン実装者は, このインタフェースBeanInfoを実装し,ビーンのメソッド,特性,イベントなどについての, 明示的な情報を提供する,クラスBeanInfoを提供してもよい。
ビーン実装者は,明示的な情報の完全な集合を提供する必要はない。 どの情報を提供したいかを選択できる。 残りの情報は,ビーンクラスのメソッドの低レベル自己反映を使用し, 標準設計パタンを適用することで,自動分析によって取得する。
様々なクラスXyZDescriptorの一部として,極めて多様な情報を提供できる機会がある。 しかし,様々なコンストラクタが要求する,核となる最小限の情報だけが,本当に, 提供する必要がある。
クラスSimpleBeanInfoも参照すること。 クラスSimpleBeanInfoは,クラスBeanInfoに代わって,便利な“noop”基本クラスを提供し, 明示的な情報を返したい特定の個所のために,クラスBeanInfoを上書きできる。
ビーンの振舞いのすべてを知るためには,クラスIntrospectorを参照すること。
public final static int ICON_COLOR_16x16
カラーアイコン16x16を示す定数
2) ICON_COLOR_32x32
public final static int ICON_COLOR_32x32
カラーアイコン32x32を示す定数
3) ICON_MONO_16x16
public final static int ICON_MONO_16x16
モノクロアイコン16x16を示す定数
4) ICON_MONO_32x32
public final static int ICON_MONO_32x32
モノクロアイコン32x32を示す定数
public BeanInfo[] getAdditionalBeanInfo()
このメソッドによって,オブジェクトBeanInfoは, 現ビーンに関する付加的な情報を提供する,他のオブジェクトBeanInfo の任意の集まりを返すことができる。
様々なオブジェクトBeanInfoが提供する情報間に矛盾又は重複がある場合, 現在のBeanInfoは,getAddtionalBeanInfoの返すオブジェクトに優先し, さらに,配列の後方の要素が前方の要素に優先する。
public BeanDescriptor getBeanDescriptor()
public int getDefaultEventIndex()
ビーンは,ビーンを使用するときに,通常は人が使用する“デフォルト” イベントをもつ可能性がある。
返却値:
デフォルトイベントがない場合は,-1を返す。
public int getDefaultPropertyIndex()
ビーンは,ビーンをカスタム化する人が,更新のために, 通常は最初に選択する“デフォルト”特性をもつ可能性がある。
返却値:
public EventSetDescriptor[] getEventSetDescriptors()
返却値:
public Image getIcon(int iconKind)
このメソッドは,ツールボックス,ツールバーなどで, ビーンを表現するために使用できるイメージオブジェクトを返す。 アイコンイメージは,GIFのことが多いが,将来は, 他のフォーマットを含む可能性がある。
Beanは,アイコンの提供を要求されない。 そこで,このメソッドからのnullを返す可能性がある。
4種類の可能なアイコン(16x16カラー,32x32カラー,16x16モノクロ 及び 32x32モノクロ)が存在する。 ビーンが,一つのアイコンだけのサポートを選択する場合は, 16x16カラーのサポートが望ましい。
既存の背景に重ねられるために, アイコンが“透明な”背景をもつことが望ましい。
仮引数:
public MethodDescriptor[] getMethodDescriptors()返却値:
public PropertyDescriptor[] getPropertyDescriptors()返却値:
public class java.beans.EventSetDescriptor extends java.beans.FeatureDescriptor
EventDescriptorは,与えられたJava Beanが起動するイベントのグループを示す。
イベントの与えられたグループは,すべて,単一のイベントリスナインタフェース上で, メソッド呼出しとして配布され,イベントリスナオブジェクトは,イベントソースによって, 提供される登録メソッドでの呼出しを介し,登録できる。
public EventSetDescriptor(Class sourceClass, String eventSetName, Class listenerType, String listenerMethodName) throws IntrospectionException
このコンストラクタは,次の例で示すとおりの条件を満たす, 最も単純な標準設計パタンに従っている場合に,EventSetDescriptorを生成する。
仮引数:
例外:IntrospectionException
public EventSetDescriptor(Class sourceClass, String eventSetName, Class listenerType, String listenerMethodNames[], String addListenerMethodName, String removeListenerMethodName) throws IntrospectionException
このコンストラクタは,文字列名を使用する EventSetDescriptor を, 最初から生成する。
仮引数:
例外:IntrospectionException
public EventSetDescriptor(String eventSetName, Class listenerType, Method listenerMethods[], Method addListenerMethod, Method removeListenerMethod) throws IntrospectionException
このコンストラクタは,java.lang.reflect.Method 及び java.lang.Class オブジェクトを使用して,EventSetDescriptorを,最初から生成する。
仮引数:
例外:IntrospectionException
public EventSetDescriptor(String eventSetName, Class listenerType, MethodDescriptor listenerMethodDescriptors[], Method addListenerMethod, Method removeListenerMethod) throws IntrospectionException
このコンストラクタは,java.lang.reflect.MethodDescrptor 及び java.lang.Class オブジェクトを使用して, EventSetDescriptorを最初から生成する。
仮引数:
例外:IntrospectionException
public Method getAddListenerMethod()返却値:
public MethodDescriptor[] getListenerMethodDescriptors()返却値:
public Method[] getListenerMethods()返却値:
public Class getListenerType()返却値:
public Method getRemoveListenerMethod()返却値:
public boolean isInDefaultEventSet()
イベント集合が“デフォルト集合”内に存在するかどうかを報告する。
返却値:
public boolean isUnicast()
通常,イベントソースは,マルチキャストとする。 しかし,厳密にユニキャストとなる例外も存在する。
返却値:
public void setInDefaultEventSet(boolean inDefaultEventSet)
“デフォルト”集合に存在する(又は“デフォルト”集合に存在しない)として, イベント集合に印をする。デフォルトは,これを真とする。
仮引数:
public void setUnicast(boolean unicast)
ユニキャスト(又はユニキャストでない)として,イベント集合に印をする。
仮引数:
public class java.beans.FeatureDescriptor extends java.lang.Object
クラスFeatureDescriptorは,PropertyDescriptor,EventSetDescriptor 及び MethodDescriptor に対する共通した基本クラスとする。
クラスFeatureDescriptorは,すべての自己検査記述子に対して, 設定及び検索可能な共通情報をサポートする。
さらに,拡張機構を提供し,任意の属性及び値の対を,
設計特徴と関連付け可能にする。
public FeatureDescriptor()
public Enumeration attributeName()返却値:
public String getDisplayName()返却値:
public String getName()返却値:
public String getShortDescription()返却値:
public Object getValue(String attributeName)
名前の付いた属性を,この機能で,検索する。
仮引数:
返却値:
public boolean isExpert()フラグ“expert”フラグは,専門的ユーザ用機能と通常のユーザ用機能とを, 区別するために使用する。
返却値:
public boolean isHidden()
フラグ“hidden”のフラグは,ツールの使用だけを意図し, 人に開示することは望ましくない機能を識別するために使用する。
返却値:
public void setDisplayName(String displayName)仮引数:
public void setExpert(boolean expert)
“expert”フラグは,専門的ユーザ用機能と通常のユーザ用の機能とを, 区別するために使用する。
仮引数:
public void setHidden(boolean hidden)“hidden”のフラグは, ツールの使用だけを意図し,人に公開するのは望ましくない 機能を識別するために使用する。
仮引数:
public void setName(String name)仮引数:
public void setShortDescription(String text)
短記述文字列を機能と関連付けることを可能とする。 通常,これらの記述文字列は,約 40 文字より短くすることが望ましい。
仮引数:
public void setValue(String attributeName, Object value)
名前の付いた属性をこの機能と関連付ける。
仮引数:
public class java.beans.IndexedPropertyDescriptor extends java.beans.PropertyDescriptor
IndexedPropertyDescriptor は,配列と同様に動作し, その配列の特定の要素にアクセスするために, インデクス付き読取りメソッド及び/又はインデクス付き書込みメソッドをもつ, 特性を示す。
インデクス付き特性は,
単純なインデクスなしの読取り及び書込みメソッドも提供するかもしれない。
これらが存在する場合は,
インデクス付き読取りメソッドが返す型の配列の読取り及び書込みを行う。
public IndexedPropertyDescriptor(String propertyName, Class beanClass) throws IntrospectionException
このコンストラクタは, インデクス付きアクセス及び配列アクセスの両方に対して, アクセサメソッド getFoo 及び setFoo をもつことで, 標準 Java 規約に従う特性に対応する IndexedPropertyDescriptorを構成する。
そこで,実引数名が“fred”の場合,インデクス付き読取りメソッド“getFred”, “getFred”と呼ぶインデクスなし(配列として)の読取りメソッド, インデクス付き書込みメソッド“setFred”,及びインデクスなしの書込みメソッド “setFred”が存在すると仮定する。
public IndexedPropertyDescriptor(String propertyName, Class beanClass, String getterName, String setterName, String indexedGetterName, String indexedSetterName) throws IntrospectionException
このコンストラクタは,単純特性の名前 並びにインデクス付き及びインデクスなし両方のための, 特性の読取り及び書込み用のメソッド名を取る。
仮引数:
例外:IntrospectionException
public IndexedPropertyDescriptor(String propertyName, Method getter, Method setter, Method indexedGetter, Method indexedSetter) throws IntrospectionException
このコンストラクタは,単純特性の名前 並びに特性の読取り及び書込みを行うための Method オブジェクトを取る。
仮引数:
例外:IntrospectionException
public Class getIndexedPropertyType()返却値:
インデクス付き特性型に対応する Java Class。 Class は,“int”などの Java プリミティブ型を示すかもしれないことに注意。
これは,indexedReadMethod が返す型とする。
public Method getIndexedReadMethod()返却値:
public Method getIndexedWriteMethod()返却値:
public class java.beans.IntrospectionException extends java.lang.Exception
自己検査中に例外が発生する場合に投げられる。
典型的な原因には,次がある。
つまり,
文字列のクラス名を Class オブジェクトに写像できない,
文字列のメソッド名を解決できない,又は
意図する使用とは違う型シグネチャをもつメソッド名を指定した。
public IntrospectionException(String mess)仮引数:
public class java.beans.Introspector extends java.lang.Object
クラス Introspector は,ツールが, 対象 Java Bean によってサポートされる特性, イベント及びメソッドについて知るための標準的な方法を提供する。
これら3種類の各情報に対し,Introspector は, 明示的な又は暗黙的な情報を探すために, ビーンのクラス及びスーパクラスを個々に分析し, その情報を使用して,対象ビーンを包括的に示す BeanInfo オブジェクトを構築する。
各クラス“Foo”に対し,対応するクラス"FooBeanInfo"が存在する場合, 明示的な情報が利用可能となる。クラス“FooBeanInfo”は, その情報が問い合わされたときに,nullでない値を提供する。 まず,対象ビーンクラスの完全パッケージ識別名を取り, これに“BeanInfo”を付加して新しいクラス名を作成することで, クラス BeanInfo を探す。 これが失敗した場合は,この名前の最後のクラス名の構成要素を取り出し, BeanInfo パッケージ探索経路内に指定された各パッケージ内で, そのクラスを探す。
そこで,“sun.xyz.OurButton”などのクラスに対しては, まず,“sun.xyz.OurButtonBeanInfo”と呼ぶクラス BeanInfo を探し, 失敗した場合は,クラス OurButtonBeanInfo の BeanInfo 探索経路内の各パッケージを見る。 これは,“sun.bean.infos.OurButtonBeanInfo”を, デフォルト探索経路で探すことを意味する。
クラスが,それ自体に関する明示的な BeanInfo を提供する場合, それを,派生クラスを分析して得た BeanInfo 情報に付加する。 しかし,その明示的な情報は,現クラス及びその基底クラスに限定するとみなし, スーパクラスの連鎖にまでは,続けない。
クラスについての明示的な BeanInfo が見つからない場合は,
低レベルの自己反映性を使用して,クラスのメソッドを調査し,
標準設計パターンを適用して,特性アクセサ,イベントソース又は
公開メソッドを識別する。
その上で,クラスのスーパクラスの分析を続行し,
そのスーパクラス(及びスーパクラスの連鎖までという可能性もある)
からの情報に付加する。
public static String decapitalize(String name)
文字列を取り,それを通常の Java 変数名の大文字化形式に変換する, ユティリティメソッド。 これは,通常,最初の文字を大文字から小文字に変換することを意味するが, 二つ以上の文字が存在し,しかも, 最初の文字及び2番目の文字が両方とも大文字となる (通常ではない)特別な場合では,そのままにしておく。
そこで,“Foobah”は,“fooBah”となり,“X”は,“x”となるが, “URL”は,“URL”のままとする。
仮引数:
public static BeanInfo getBeanInfo(Class beanClass) throws IntrospectionException
Java ビーンに関して自己検査し,そのあらゆる特性, 開示されたメソッド及びイベントについて知る。
仮引数:
返却値:
例外:IntrospectionException
public static BeanInfo getBeanInfo(Class beanClass, Class stopClass) throws IntrospectionException
Java ビーンについて自己検査し,与えられた“停止”点の下での, その特性及び開示されたメソッドに関するすべてを知る。
仮引数:
例外:IntrospectionException
public static String[] getBeanInfoSearchPath()返却値:
public static void setBeanInfoSearchPath(String path[])
クラス BeanInfo を発見するために使用する,パッケージ名のリストを変更する。
仮引数:
public class java.beans.MethodDescriptor extends java.beans.FeatureDescriptor
MethodDescriptor は,他の部品からの外部アクセスに対し,
Java Beanがサポートする特定のメソッドを示す。
public MethodDescriptor(Method method)仮引数:
public MethodDescriptor(Method method, ParameterDescriptor parameterDescripors[])仮引数:
public Method getMethod()返却値:
public ParameterDescriptor[] getParameterDescriptors()返却値:
public class java.beans.ParameterDescriptor extends java.beans.FeatureDescriptor
クラス ParameterDescriptor は,ビーンの実装者が, クラス java.lang.reflect.Method によって提供される低レベルの型情報以外の, 各パラメタの付加的情報を提供可能とする。
現在,すべての状態は,基底クラス FeatureDescriptor から生じる。
public class java.beans.PropertyDescriptor extends java.beans.FeatureDescriptor
PropertyDescriptor は,Java ビーンが, 一対のアクセサメソッドを介してエクスポートする一つの特性を示す。
public PropertyDescriptor(String propertyName, Class beanClass) throws IntrospectionException
アクセサメソッド getFoo 及び setFoo をもつことによって, 標準 Java 規約に従う特性に対して,PropertyDescriptor を構成する。 そこで,実引数名が“fred”の場合は,読取りメソッドは,“getFred”とし, 書込みメソッドは,“setFred”とすると仮定する。 特性名は,小文字で始まるのがよいが,メソッド名の中では, 大文字となることに注意。
仮引数:
例外:IntrospectionException
public PropertyDescriptor(String propertyName, Class beanClass, String getterName, String setterName) throws IntrospectionException
このコンストラクタは, 単純な特性の名前及び特性の読取り及び書込みを行うためのメソッドの名前を取る。
仮引数:
例外:IntrospectionException
public PropertyDescriptor(String propertyName, Method getter, Method setter) throws IntrospectionException
このコンストラクタは, 単純な特性の名前及び特性の読取り及び書込みのための Method オブジェクトを取る。
仮引数:
public Class getPropertyEditorClass()返却値:
public Class getPropertyType()返却値:
public Method getReadMethod()返却値:
public Method getWriteMethod()返却値:
public boolean isBound()
“束縛”特性に更新することによって,特性が変更されるときに, イベント“PropertyChange”の起動を引き起こす。
返却値:
public boolean isConstrained()
“制約付き”特性に更新しようとすることによって,特性が変更されるときに, イベント“VetoableChange”の起動を引き起こす。
返却値:
public void setBound(boolean bound)
“束縛”特性に更新することによって,特性が変更されるときに, イベント“PropertyChange”の起動を引き起こす。
仮引数:
public void setConstrained(boolean constrained)
“制約付き”特性に更新しようとすることによって,特性が変更されるときに, イベント“VetoableChange”も起動が引き起こされる。
仮引数:
public void setPropertyEditorClass(Class propertyEditorClass)
通常,PropertyEditorは,PropertyEditorManagerを使用して,発見する。 しかし,何らかの理由で特定の PropertyEditor と与えられた特性を関連付けたい場合は, このメソッドを使用できる。
仮引数:
public class java.beans.SimpleBeanInfo extends java.lang.Object implements java.beans.BeanInfo
このクラスは,人が BeanInfo クラス群を提供するのを容易にする, サポートクラスとする。
このクラスは,デフォルトでは,“noop”情報を提供し,
選択した問題に関するより明示的な情報を提供するために,選択的に,
上書き可能とする。
“noop”値の場合は,自己検査は,低レベル自己検査及び設計パタンを適用して,
自動的に対象ビーンを分析する。
public BeanInfo[] getAdditionalBeanInfo()
他に意味のある BeanInfo オブジェクトが存在しないことを要求する。 例えば,基底クラスのための BeanInfo を返したい場合は, これを上書きしてもよい。
public BeanDescriptor getBeanDescriptor()
ビーンのクラス及びカスタマイザに関する知識を否定する。 明示的な情報を提供したい場合は,これを上書きできる。
public int getDefaultEventIndex()
デフォルトイベントの知識を否定する。 ビーンに対してデフォルトイベントを定義したい場合は, これを上書きできる。
public int getDefaultPropertyIndex()
デフォルト特性の知識を否定する。 ビーンに対してデフォルト特性を定義したい場合は, これを上書きできる。
public EventSetDescriptor[] getEventSetDescriptors()
イベント集合の知識を否定する。 明示的なイベント集合情報を提供したい場合は, これを上書きできる。
public Image getIcon(int iconKind)
利用可能なアイコンが存在しないことを要求する。 ビーンに対してアイコンを提供したい場合は, これを上書きできる。
public MethodDescriptor[] getMethodDescrioptors()
メソッドの知識を否定する。 明示的なメソッド情報を提供したい場合は, これを上書きできる。
public PropertyDescriptor[] getPropertyDescriptors()
特性の知識を否定する。 明示的な特性情報を提供したい場合は, これを上書きできる。
public Image loadImage(String resourceName)
これは,アイコンイメージのロードを支援する, ユティリティメソッドとする。 これは,現オブジェクトのクラスファイルと関連する資源ファイルの名前を取り, そのファイルからイメージオブジェクトをロードする。 典型的なイメージは,GIFとする。
仮引数:
返却値: