BeanContextChildSupport.java revision 0
* BeanContextChild protocol. * This class may either be directly subclassed, or encapsulated and delegated * to in order to implement this interface for a given component. * @author Laurence P. G. Cable * @see java.beans.beancontext.BeanContext * @see java.beans.beancontext.BeanContextServices * @see java.beans.beancontext.BeanContextChild * construct a BeanContextChildSupport where this class has been * subclassed in order to implement the JavaBean component itself. * construct a BeanContextChildSupport where the JavaBean component * itself implements BeanContextChild, and encapsulates this, delegating * that interface to this implementation * Sets the <code>BeanContext</code> for * this <code>BeanContextChildSupport</code>. * @param bc the new value to be assigned to the <code>BeanContext</code> * @throws <code>PropertyVetoException</code> if the change is rejected "setBeanContext() change rejected:",
* Gets the nesting <code>BeanContext</code> * for this <code>BeanContextChildSupport</code>. * @return the nesting <code>BeanContext</code> for * this <code>BeanContextChildSupport</code>. * Add a PropertyChangeListener for a specific property. * The same listener object may be added more than once. For each * property, the listener will be invoked the number of times it was added * If <code>name</code> or <code>pcl</code> is null, no exception is thrown * and no action is taken. * @param name The name of the property to listen on * @param pcl The <code>PropertyChangeListener</code> to be added * Remove a PropertyChangeListener for a specific property. * If <code>pcl</code> was added more than once to the same event * source for the specified property, it will be notified one less time * If <code>name</code> is null, no exception is thrown * and no action is taken. * If <code>pcl</code> is null, or was never added for the specified * property, no exception is thrown and no action is taken. * @param name The name of the property that was listened on * @param pcl The PropertyChangeListener to be removed * Add a VetoableChangeListener for a specific property. * The same listener object may be added more than once. For each * property, the listener will be invoked the number of times it was added * If <code>name</code> or <code>vcl</code> is null, no exception is thrown * and no action is taken. * @param name The name of the property to listen on * @param vcl The <code>VetoableChangeListener</code> to be added * Removes a <code>VetoableChangeListener</code>. * If <code>pcl</code> was added more than once to the same event * source for the specified property, it will be notified one less time * If <code>name</code> is null, no exception is thrown * and no action is taken. * If <code>vcl</code> is null, or was never added for the specified * property, no exception is thrown and no action is taken. * @param name The name of the property that was listened on * @param vcl The <code>VetoableChangeListener</code> to be removed * A service provided by the nesting BeanContext has been revoked. * Subclasses may override this method in order to implement their own * @param bcsre The <code>BeanContextServiceRevokedEvent</code> fired as a * result of a service being revoked * A new service is available from the nesting BeanContext. * Subclasses may override this method in order to implement their own * @param bcsae The BeanContextServiceAvailableEvent fired as a * result of a service becoming available * Gets the <tt>BeanContextChild</tt> associated with this * <tt>BeanContextChildSupport</tt>. * @return the <tt>BeanContextChild</tt> peer of this class * Reports whether or not this class is a delegate of another. * @return true if this class is a delegate of another * Report a bound property update to any registered listeners. No event is * fired if old and new are equal and non-null. * @param name 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 * Report a vetoable property update to any registered listeners. * If anyone vetos the change, then fire a new event * reverting everyone to the old value and then rethrow * the PropertyVetoException. <P> * No event is fired if old and new are equal and non-null. * @param name The programmatic name of the property that is about to * @param oldValue The old value of the property * @param newValue - The new value of the property * @throws PropertyVetoException if the recipient wishes the property * change to be rolled back. * Called from setBeanContext to validate (or otherwise) the * pending change in the nesting BeanContext property value. * Returning false will cause setBeanContext to throw * @param newValue the new value that has been requested for * the BeanContext property * @return <code>true</code> if the change operation is to be vetoed * This method may be overridden by subclasses to provide their own * release behaviors. When invoked any resources held by this instance * obtained from its current BeanContext property should be released * since the object is no longer nested within that BeanContext. * This method may be overridden by subclasses to provide their own * initialization behaviors. When invoked any resources requried by the * BeanContextChild should be obtained from the current BeanContext. * Write the persistence state of the object. * dont serialize if we are delegated and the delegator isnt also throw new IOException(
"BeanContextChildSupport beanContextChildPeer not Serializable");
* Restore a persistent object, must wait for subsequent setBeanContext() * to fully restore any resources obtained from the new nesting * The <code>BeanContext</code> in which * this <code>BeanContextChild</code> is nested. * The <tt>PropertyChangeSupport</tt> associated with this * <tt>BeanContextChildSupport</tt>. * The <tt>VetoableChangeSupport</tt> associated with this * <tt>BeanContextChildSupport</tt>. * A flag indicating that there has been * at least one <code>PropertyChangeVetoException</code> * thrown for the attempted setBeanContext operation.