- java.lang.Object
-
- java.beans.VetoableChangeSupport
-
- すべての実装されたインタフェース:
Serializable
public class VetoableChangeSupport extends Object implements Serializable
制約プロパティをサポートするBeanで使用できるユーティリティ・クラスです。 リスナーのリストを管理し、PropertyChangeEventをそれらにディスパッチします。 このクラスのインスタンスをBeanのメンバー・フィールドとして使用し、こうした種類の処理をそれに委譲できます。VetoableChangeListenerは、すべてのプロパティまたは名前で指定されたプロパティに対して登録できます。次は、JavaBeans™仕様に記載されているルールと推奨事項に従った
VetoableChangeSupportの使用例です。public class MyBean { private final VetoableChangeSupport vcs = new VetoableChangeSupport(this); public void addVetoableChangeListener(VetoableChangeListener listener) { this.vcs.addVetoableChangeListener(listener); } public void removeVetoableChangeListener(VetoableChangeListener listener) { this.vcs.removeVetoableChangeListener(listener); } private String value; public String getValue() { return this.value; } public void setValue(String newValue) throws PropertyVetoException { String oldValue = this.value; this.vcs.fireVetoableChange("value", oldValue, newValue); this.value = newValue; } [...] }VetoableChangeSupportインスタンスはスレッドセーフです。このクラスは直列化可能です。 直列化した場合、直列化可能なリスナーが保存および復元されます。 直列化の際、直列化可能でないリスナーはスキップされます。
- 導入されたバージョン:
- 1.1
- 関連項目:
PropertyChangeSupport, 直列化された形式
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 VetoableChangeSupport(Object sourceBean)VetoableChangeSupportオブジェクトを構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 voidaddVetoableChangeListener(VetoableChangeListener listener)VetoableChangeListenerをリスナー・リストに追加します。voidaddVetoableChangeListener(String propertyName, VetoableChangeListener listener)特定のプロパティのVetoableChangeListenerを追加します。voidfireVetoableChange(PropertyChangeEvent event)登録されているリスナーにプロパティ変更イベントをトリガーして、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。voidfireVetoableChange(String propertyName, boolean oldValue, boolean newValue)登録されているリスナーにboolean型の制約プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。voidfireVetoableChange(String propertyName, int oldValue, int newValue)登録されているリスナーに整数型の制約プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。voidfireVetoableChange(String propertyName, Object oldValue, Object newValue)登録されているリスナーに制約プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。VetoableChangeListener[]getVetoableChangeListeners()addVetoableChangeListener()によってVetoableChangeSupportオブジェクトに追加されたすべてのリスナーの配列を返します。VetoableChangeListener[]getVetoableChangeListeners(String propertyName)指定されたプロパティに関連付けられているすべてのリスナーの配列を返します。booleanhasListeners(String propertyName)特定のプロパティにリスナーがあるかどうかを判定します。あらゆるプロパティに登録されたリスナーが含まれます。voidremoveVetoableChangeListener(VetoableChangeListener listener)リスナー・リストからVetoableChangeListenerを削除します。voidremoveVetoableChangeListener(String propertyName, VetoableChangeListener listener)特定のプロパティのVetoableChangeListenerを削除します。
-
-
-
コンストラクタの詳細
-
VetoableChangeSupport
public VetoableChangeSupport(Object sourceBean)
VetoableChangeSupportオブジェクトを構築します。- パラメータ:
sourceBean- すべてのイベントのソースとして指定されるBean。
-
-
メソッドの詳細
-
addVetoableChangeListener
public void addVetoableChangeListener(VetoableChangeListener listener)
VetoableChangeListenerをリスナー・リストに追加します。 リスナーは、すべてのプロパティに対して登録されます。 同じリスナー・オブジェクトを複数回追加でき、追加した回数だけリスナー・オブジェクトが呼び出されます。listenerがnullの場合、例外はスローされず、何も処理は行われません。- パラメータ:
listener- 追加されるVetoableChangeListener
-
removeVetoableChangeListener
public void removeVetoableChangeListener(VetoableChangeListener listener)
リスナー・リストからVetoableChangeListenerを削除します。 すべてのプロパティに登録されたVetoableChangeListenerを削除します。 同じイベント・ソースにlistenerが2回以上追加された場合は、削除されたあとに1回少ない通知が行われます。listenerがnullの場合、または追加されなかった場合、例外はスローされず、何も処理は行われません。- パラメータ:
listener- 削除されるVetoableChangeListener
-
getVetoableChangeListeners
public VetoableChangeListener[] getVetoableChangeListeners()
addVetoableChangeListener()によってVetoableChangeSupportオブジェクトに追加されたすべてのリスナーの配列を返します。指定されたプロパティによって追加されたリスナーがある場合、VetoableChangeListenerと
VetoableChangeListenerProxyからなる配列が返されます。 リスナーの識別に関係している呼出し元メソッドは、個々の要素をテストしてVetoableChangeListenerProxyであるかどうかの確認、キャスト、パラメータの確認を行う必要があります。VetoableChangeListener[] listeners = bean.getVetoableChangeListeners(); for (int i = 0; i < listeners.length; i++) { if (listeners[i] instanceof VetoableChangeListenerProxy) { VetoableChangeListenerProxy proxy = (VetoableChangeListenerProxy)listeners[i]; if (proxy.getPropertyName().equals("foo")) { // proxy is a VetoableChangeListener which was associated // with the property named "foo" } } }- 戻り値:
- 追加されたすべての
VetoableChangeListeners、リスナーが追加されていない場合は空の配列 - 導入されたバージョン:
- 1.4
- 関連項目:
VetoableChangeListenerProxy
-
addVetoableChangeListener
public void addVetoableChangeListener(String propertyName, VetoableChangeListener listener)
特定のプロパティのVetoableChangeListenerを追加します。 リスナーが呼び出されるのは、fireVetoableChangeの呼出しにより、その特定のプロパティが指定されたときだけです。 同じリスナー・オブジェクトを複数回追加できます。 各プロパティでは、リスナーがそのプロパティに追加された回数だけリスナーが呼び出されます。propertyNameまたはlistenerがnullの場合、例外はスローされず、何も処理は行われません。- パラメータ:
propertyName- 待機しているプロパティの名前。listener- 追加されるVetoableChangeListener- 導入されたバージョン:
- 1.2
-
removeVetoableChangeListener
public void removeVetoableChangeListener(String propertyName, VetoableChangeListener listener)
特定のプロパティのVetoableChangeListenerを削除します。 指定したプロパティの同じイベント・ソースにlistenerが2回以上追加された場合は、削除されたあとに1回少ない通知が行われます。propertyNameがnullの場合、例外はスローされず、何も処理は行われません。listenerがnullの場合、または指定されたプロパティに追加されなかった場合、例外はスローされず、何も処理は行われません。- パラメータ:
propertyName- 待機していたプロパティの名前。listener- 削除されるVetoableChangeListener- 導入されたバージョン:
- 1.2
-
getVetoableChangeListeners
public VetoableChangeListener[] getVetoableChangeListeners(String propertyName)
指定されたプロパティに関連付けられているすべてのリスナーの配列を返します。- パラメータ:
propertyName- 待機しているプロパティの名前- 戻り値:
- 名前付きプロパティに関連付けられているすべての
VetoableChangeListeners。 このようなリスナーが追加されていない場合、またはpropertyNameがnullの場合は、空の配列が返されます。 - 導入されたバージョン:
- 1.4
-
fireVetoableChange
public void fireVetoableChange(String propertyName, Object oldValue, Object newValue) throws PropertyVetoException
登録されているリスナーに制約プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。どのリスナーも
PropertyVetoExceptionをスローして更新を拒否できます。 いずれかのリスナーが更新を拒否した場合、このメソッドは、この更新をすでに確定しているすべてのリスナーに、古い値に戻る「undo」PropertyChangeEventを新たに渡し、再度PropertyVetoExceptionをスローします。古い値と新しい値が等しく、nullでない場合、イベントはトリガーされません。
これは、より一般的な
fireVetoableChange(PropertyChangeEvent)メソッドの簡易ラッパーにすぎません。- パラメータ:
propertyName- 変更されるプロパティのプログラム名oldValue- プロパティの古い値newValue- プロパティの新しい値- 例外:
PropertyVetoException- いずれかのリスナーがプロパティの更新を拒否した場合
-
fireVetoableChange
public void fireVetoableChange(String propertyName, int oldValue, int newValue) throws PropertyVetoException
登録されているリスナーに整数型の制約プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。どのリスナーも
PropertyVetoExceptionをスローして更新を拒否できます。 いずれかのリスナーが更新を拒否した場合、このメソッドは、この更新をすでに確定しているすべてのリスナーに、古い値に戻る「undo」PropertyChangeEventを新たに渡し、再度PropertyVetoExceptionをスローします。古い値と新しい値が等しい場合、イベントはトリガーされません。
これは、より一般的な
fireVetoableChange(String, Object, Object)メソッドの簡易ラッパーにすぎません。- パラメータ:
propertyName- 変更されるプロパティのプログラム名oldValue- プロパティの古い値newValue- プロパティの新しい値- 例外:
PropertyVetoException- いずれかのリスナーがプロパティの更新を拒否した場合- 導入されたバージョン:
- 1.2
-
fireVetoableChange
public void fireVetoableChange(String propertyName, boolean oldValue, boolean newValue) throws PropertyVetoException
登録されているリスナーにboolean型の制約プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。どのリスナーも
PropertyVetoExceptionをスローして更新を拒否できます。 いずれかのリスナーが更新を拒否した場合、このメソッドは、この更新をすでに確定しているすべてのリスナーに、古い値に戻る「undo」PropertyChangeEventを新たに渡し、再度PropertyVetoExceptionをスローします。古い値と新しい値が等しい場合、イベントはトリガーされません。
これは、より一般的な
fireVetoableChange(String, Object, Object)メソッドの簡易ラッパーにすぎません。- パラメータ:
propertyName- 変更されるプロパティのプログラム名oldValue- プロパティの古い値newValue- プロパティの新しい値- 例外:
PropertyVetoException- いずれかのリスナーがプロパティの更新を拒否した場合- 導入されたバージョン:
- 1.2
-
fireVetoableChange
public void fireVetoableChange(PropertyChangeEvent event) throws PropertyVetoException
登録されているリスナーにプロパティ変更イベントをトリガーして、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。どのリスナーも
PropertyVetoExceptionをスローして更新を拒否できます。 いずれかのリスナーが更新を拒否した場合、このメソッドは、この更新をすでに確定しているすべてのリスナーに、古い値に戻る「undo」PropertyChangeEventを新たに渡し、再度PropertyVetoExceptionをスローします。指定されたイベントの以前の値と新しい値が等しくてnullでない場合、イベントはトリガーされません。
- パラメータ:
event- トリガーされるPropertyChangeEvent- 例外:
PropertyVetoException- いずれかのリスナーがプロパティの更新を拒否した場合- 導入されたバージョン:
- 1.2
-
hasListeners
public boolean hasListeners(String propertyName)
特定のプロパティにリスナーがあるかどうかを判定します。あらゆるプロパティに登録されたリスナーが含まれます。propertyNameがnullの場合は、すべてのプロパティに登録されているリスナーのみがチェックされます。- パラメータ:
propertyName- プロパティ名。- 戻り値:
- 指定したプロパティに1つ以上のリスナーがある場合はtrue
- 導入されたバージョン:
- 1.2
-
-