Spec-Zone.ru › OpenJDK 17

Класс VetoableChangeSupport

java.lang.Object
java.beans.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, 2021, 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/17/docs/api/java.desktop/java/beans/VetoableChangeSupport.html

Spec-Zone.ru

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