Spec-Zone.ru › OpenJDK 27

Класс VetoableChangeSupport

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

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии.
Финализация устарела и планируется к удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного промежутка реального времени.

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

VetoableChangeSupport

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

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, общие сведения, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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