Spec-Zone.ru › OpenJDK 24

Класс 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, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/beans/VetoableChangeSupport.html

Spec-Zone.ru

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