Spec-Zone.ru › OpenJDK 8

Класс 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 потокобезопасен.

Этот класс сериализуем. При сериализации он сохранит (и восстановит) любых слушателей, которые сами являются сериализуемыми. Любые несериализуемые слушатели будут пропущены во время сериализации.

См. также:
PropertyChangeSupport, Сериализованная форма

Конструкторы

Конструктор и описание
VetoableChangeSupport(Object sourceBean)

Создает объект VetoableChangeSupport.

Методы

Модификатор и тип Метод и описание
void addVetoableChangeListener(String propertyName, VetoableChangeListener listener)

Добавляет VetoableChangeListener для конкретного свойства.

void addVetoableChangeListener(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(String propertyName, VetoableChangeListener listener)

Удаляет VetoableChangeListener для определенного свойства.

void removeVetoableChangeListener(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

removeVetoableChangeListener

public void removeVetoableChangeListener(String propertyName,
                                         VetoableChangeListener listener)

Удаляет обработчик VetoableChangeListener для определенного свойства. Если listener был добавлен более одного раза к тому же источнику событий для указанного свойства, он будет оповещен на один вызов меньше после удаления. Если propertyName равно null, исключение не выбрасывается, и никаких действий не выполняется. Если listener равно null или никогда не добавлялся для указанного свойства, исключение не выбрасывается, и никаких действий не выполняется.

Параметры:
propertyName - Имя свойства, за которым следили.
listener - Удаляемый обработчик VetoableChangeListener

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 - если один из слушателей отклоняет обновление свойства

fireVetoableChange

public void fireVetoableChange(String propertyName,
                               boolean oldValue,
                               boolean newValue)
                        throws PropertyVetoException

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

Любой слушатель может бросить PropertyVetoException чтобы отклонить обновление. Если один из слушателей отклоняет обновление, этот метод передает новое «обратное» PropertyChangeEvent, которое восстанавливает старое значение всем слушателям, которые уже подтвердили это обновление, и повторно выбрасывает PropertyVetoException.

Событие не генерируется, если старое и новое значения равны.

Это всего лишь удобная обертка над более универсальным методом fireVetoableChange(String, Object, Object).

Параметры:
propertyName - Программное имя свойства, которое собирается измениться
oldValue - Старое значение свойства
newValue - Новое значение свойства
Исключения:
PropertyVetoException - если один из слушателей отклоняет обновление свойства

fireVetoableChange

public void fireVetoableChange(PropertyChangeEvent event)
                        throws PropertyVetoException

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

Любой слушатель может бросить PropertyVetoException чтобы отклонить обновление. Если один из слушателей отклоняет обновление, этот метод передает новое «обратное» PropertyChangeEvent, которое восстанавливает старое значение всем слушателям, которые уже подтвердили это обновление, и повторно выбрасывает PropertyVetoException.

Событие не генерируется, если старое и новое значения события равны и не равны null.

Параметры:
event - Событие PropertyChangeEvent для генерации
Исключения:
PropertyVetoException - если один из слушателей отклоняет обновление свойства

hasListeners

public boolean hasListeners(String propertyName)

Проверяет, есть ли слушатели для определенного свойства, включая тех, которые зарегистрированы для всех свойств. Если propertyName равно null, проверяются только слушатели, зарегистрированные для всех свойств.

Параметры:
propertyName - имя свойства.
Возвращает:
true, если есть один или несколько слушателей для данного свойства

© 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.

Spec-Zone.ru

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