Класс VetoableChangeSupport

Все реализованные интерфейсы:
Serializable
public class VetoableChangeSupport
extends Object
implements Serializable

Это утилитарный класс, который может быть использован компонентами, поддерживающими ограниченные свойства. Он управляет списком слушателей и рассылает PropertyChangeEvent события им. Вы можете использовать экземпляр этого класса в качестве поля вашего компонента и делегировать ему эти задачи. 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)

Сообщает слушателям, зарегистрированным для отслеживания обновлений всех свойств или свойства с указанным именем, об обновлении свойства с логическим ограничением.

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, 2020, 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/11/docs/api/java.desktop/java/beans/VetoableChangeSupport.html

Spec-Zone .ru
спецификации, руководства, описания, API