Spec-Zone.ru › OpenJDK 21

Класс VetoableChangeSupport

java.lang.Object
java.beans.VetoableChangeSupport
Все реализованные интерфейсы:
Serializable
public class VetoableChangeSupport extends Object implements Serializable
Этот утилитарный класс может быть использован компонентами (beans), поддерживающими ограниченные свойства. Он управляет списком слушателей и рассылает PropertyChangeEvent события этим слушателям. Вы можете использовать экземпляр этого класса в качестве поля вашего компонента (bean) и делегировать ему работу с подобными задачами. VetoableChangeListener могут быть зарегистрированы для всех свойств или для указанного свойства по имени.

Вот пример VetoableChangeSupport использования, который соответствует правилам и рекомендациям, изложенным в спецификации JavaBeans:


 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.

Краткое описание методов

Модификатор и тип Метод Описание
void addVetoableChangeListener(VetoableChangeListener listener)
Добавляет VetoableChangeListener в список слушателей.
void addVetoableChangeListener(String propertyName, VetoableChangeListener listener)
Добавляет VetoableChangeListener для определённого свойства.
void fireVetoableChange(PropertyChangeEvent event)
Вызывает событие изменения свойства для слушателей, зарегистрированных для отслеживания обновлений всех свойств или свойства с указанным именем.
void fireVetoableChange(String propertyName, boolean oldValue, boolean newValue)
Сообщает о boolean-изменении ограниченного свойства слушателям, которые зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.
void fireVetoableChange(String propertyName, int oldValue, int newValue)
Сообщает об изменении целочисленного ограниченного свойства слушателям, которые зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.
void fireVetoableChange(String propertyName, Object oldValue, Object newValue)
Сообщает об изменении ограниченного свойства слушателям, которые зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.
VetoableChangeListener[] getVetoableChangeListeners()
Возвращает массив всех слушателей, добавленных в объект VetoableChangeSupport с помощью addVetoableChangeListener().
VetoableChangeListener[] getVetoableChangeListeners(String propertyName)
Возвращает массив всех слушателей, связанных с указанным свойством.
boolean hasListeners(String propertyName)
Проверяет наличие слушателей для определённого свойства, включая тех, которые зарегистрированы для всех свойств.
void removeVetoableChangeListener(VetoableChangeListener listener)
Удаляет VetoableChangeListener из списка слушателей.
void removeVetoableChangeListener(String propertyName, VetoableChangeListener listener)
Удаляет VetoableChangeListener для определённого свойства.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

VetoableChangeSupport

public VetoableChangeSupport(Object sourceBean)
Создаёт объект VetoableChangeSupport.
Параметры:
sourceBean - Компонент, используемый в качестве источника событий.

Подробное описание методов

addVetoableChangeListener

public void addVetoableChangeListener(VetoableChangeListener listener)
Добавляет обработчик VetoableChangeListener в список слушателей. Слушатель регистрируется для всех свойств. Один и тот же объект слушателя можно добавить несколько раз, и он будет вызываться столько раз, сколько раз он был добавлен. Если listener равно null, исключение не генерируется, и никаких действий не выполняется.
Параметры:
listener - Добавляемый обработчик VetoableChangeListener

removeVetoableChangeListener

public void removeVetoableChangeListener(VetoableChangeListener listener)
Удаляет обработчик VetoableChangeListener из списка слушателей. Это удаляет обработчик VetoableChangeListener, который был зарегистрирован для всех свойств. Если listener был добавлен более одного раза к одному источнику событий, он будет уведомлен на одну итерацию меньше после удаления. Если listener равно null или никогда не добавлялся, исключение не генерируется, и никаких действий не выполняется.
Параметры:
listener - Удаляемый обработчик VetoableChangeListener

getVetoableChangeListeners

public VetoableChangeListener[] getVetoableChangeListeners()
Возвращает массив всех слушателей, добавленных к объекту VetoableChangeSupport с помощью addVetoableChangeListener().

Если некоторые слушатели были добавлены с именем свойства, возвращаемый массив будет смесью VetoableChangeListeners и 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 был добавлен более одного раза к одному источнику событий для указанного свойства, он будет уведомлен на одну итерацию меньше после удаления. Если 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 для отмены обновления. Если один из слушателей отменяет обновление, этот метод передаёт новое "обратное" PropertyChangeEvent, которое возвращает к старому значению, всем слушателям, которые уже подтвердили это обновление, и повторно бросает PropertyVetoException.

Событие не генерируется, если старое и новое значения равны и не равны null.

Это просто удобная обёртка вокруг более общего метода fireVetoableChange(PropertyChangeEvent).

Параметры:
propertyName - Программное имя свойства, которое вот-вот изменится
oldValue - Старое значение свойства
newValue - Новое значение свойства
Исключения:
PropertyVetoException - если один из слушателей отменяет обновление свойства

fireVetoableChange

public void fireVetoableChange(String propertyName, int oldValue, int newValue) throws PropertyVetoException
Сообщает слушателям об обновлении целочисленного свойства, которые были зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.

Любой слушатель может бросить PropertyVetoException для отмены обновления. Если один из слушателей отменяет обновление, этот метод передаёт новое "обратное" PropertyChangeEvent, которое возвращает к старому значению, всем слушателям, которые уже подтвердили это обновление, и повторно бросает PropertyVetoException.

Событие не генерируется, если старые и новые значения равны.

Это просто удобная обёртка вокруг более общего метода fireVetoableChange(String, Object, Object).

Параметры:
propertyName - Программное имя свойства, которое вот-вот изменится
oldValue - Старое значение свойства
newValue - Новое значение свойства
Исключения:
PropertyVetoException - если один из слушателей отменяет обновление свойства
С тех пор:
1.2

fireVetoableChange

public void fireVetoableChange(String propertyName, boolean oldValue, boolean newValue) throws PropertyVetoException
Сообщает слушателям об обновлении булевого свойства, которые были зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.

Любой слушатель может бросить PropertyVetoException для отмены обновления. Если один из слушателей отменяет обновление, этот метод передаёт новое "обратное" PropertyChangeEvent, которое возвращает к старому значению, всем слушателям, которые уже подтвердили это обновление, и повторно бросает PropertyVetoException.

Событие не генерируется, если старые и новые значения равны.

Это просто удобная обёртка вокруг более общего метода fireVetoableChange(String, Object, Object).

Параметры:
propertyName - Программное имя свойства, которое вот-вот изменится
oldValue - Старое значение свойства
newValue - Новое значение свойства
Исключения:
PropertyVetoException - если один из слушателей отменяет обновление свойства
С тех пор:
1.2

fireVetoableChange

public void fireVetoableChange(PropertyChangeEvent event) throws PropertyVetoException
Вызывает событие изменения свойства для слушателей, которые были зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.

Любой слушатель может бросить PropertyVetoException для отмены обновления. Если один из слушателей отменяет обновление, этот метод передаёт новое "обратное" PropertyChangeEvent, которое возвращает к старому значению, всем слушателям, которые уже подтвердили это обновление, и повторно бросает PropertyVetoException.

Событие не генерируется, если старые и новые значения в заданном событии равны и не равны null.

Параметры:
event - Событие PropertyChangeEvent для запуска
Исключения:
PropertyVetoException - если один из слушателей отменяет обновление свойства
С тех пор:
1.2

hasListeners

public boolean hasListeners(String propertyName)
Проверяет наличие слушателей для определенного свойства, включая тех, кто зарегистрирован на все свойства. Если propertyName равно null, проверяются только слушатели, зарегистрированные на все свойства.
Параметры:
propertyName - Имя свойства.
Возвращает:
true, если для данного свойства есть один или более слушателей
С тех пор:
1.2

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/java/beans/VetoableChangeSupport.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API