Spec-Zone.ru › OpenJDK 25

Класс VetoableChangeSupport

java.lang.Object
java.beans.VetoableChangeSupport
Все реализуемые интерфейсы:
Serializable
public class VetoableChangeSupport extends Object implements Serializable
Это вспомогательный класс, который могут использовать компоненты bean, поддерживающие ограниченные свойства. Он управляет списком слушателей и отправляет им события 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)
Сообщает об изменении ограниченного свойства типа integer слушателям, зарегистрированным для отслеживания изменений всех свойств или свойства с указанным именем.
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 для определенного свойства.

Методы, объявленные в классе Object

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

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

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 был добавлен к тому же источнику событий несколько раз, после удаления он будет вызываться на один раз реже. Если listener равен null или никогда не добавлялся, исключение не выбрасывается и никаких действий не выполняется.
Параметры:
listener — VetoableChangeListener, который нужно удалить

getVetoableChangeListeners

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

Если некоторые слушатели были добавлены для именованного свойства, возвращенный массив будет содержать смесь 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 был добавлен к тому же источнику событий для указанного свойства несколько раз, после удаления он будет вызываться на один раз реже. Если 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
Сообщает об изменении ограниченного свойства типа integer слушателям, зарегистрированным для отслеживания изменений всех свойств или свойства с указанным именем.

Любой слушатель может выбросить 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
Сообщает об изменении ограниченного свойства типа boolean слушателям, зарегистрированным для отслеживания изменений всех свойств или свойства с указанным именем.

Любой слушатель может выбросить 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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/beans/VetoableChangeSupport.html

Spec-Zone.ru

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