/* * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. * * Distributable under LGPL license. * See terms of license at gnu.org. */ package net.java.sip.communicator.util; import java.util.*; /** * A "ConfigurationChange" event gets delivered whenever a someone changes a * configuration property. A ConfigurationEvent object is sent as an argument to * the ConfigurationChangeListener methods. * <P> * Normally ConfigurationChangeEvents are accompanied by the name and the old * and new values of the changed property. If the new value is a primitive type * (such as int or boolean) it must be wrapped as the corresponding java.lang.* * Object type (such as Integer or Boolean). * <P> * Null values may be provided for the old and the new values if their true * values are not known. * <P> * An event source may send a null object as the name to indicate that an * arbitrary set of if its properties have changed. In this case the old and new * values should also be null. * <P> * In the case where the event reflects the change of a constrained property, it * will first be dispatched to all propertyWillChange methods and only in case * that none of them has objected (no ChangeVetoException has been thrown) the * propertyChange method is called. * * @author Emil Ivov */ public class PropertyChangeEvent extends EventObject { /** * name of the property that changed. May be null, if not known. * * @serial */ private final String propertyName; /** * New value for property. May be null if not known. * * @serial */ private final Object newValue; /** * Previous value for property. May be null if not known. * * @serial */ private final Object oldValue; /** * Constructs a new <tt>PropertyChangeEvent</tt>. * * @param source The bean that fired the event. * @param propertyName The programmatic name of the property that was * changed. * @param oldValue The old value of the property. * @param newValue The new value of the property. */ public PropertyChangeEvent(Object source, String propertyName, Object oldValue, Object newValue) { super(source); this.propertyName = propertyName; this.newValue = newValue; this.oldValue = oldValue; } /** * Gets the programmatic name of the property that was changed. * * @return The programmatic name of the property that was changed. May be * null if multiple properties have changed. */ public String getPropertyName() { return propertyName; } /** * Sets the new value for the property, expressed as an Object. * * @return The new value for the property, expressed as an Object. May be * null if multiple properties have changed. */ public Object getNewValue() { return newValue; } /** * Gets the old value for the property, expressed as an Object. * * @return The old value for the property, expressed as an Object. May be * null if multiple properties have changed. */ public Object getOldValue() { return oldValue; } }