- java.lang.Object
-
- java.beans.beancontext.BeanContextChildSupport
-
- java.beans.beancontext.BeanContextSupport
-
- All Implemented Interfaces:
BeanContext
,BeanContextChild
,BeanContextServiceRevokedListener
,BeanContextServicesListener
,DesignMode
,PropertyChangeListener
,VetoableChangeListener
,Visibility
,Serializable
,Iterable<E>
,Collection
,EventListener
- Direct Known Subclasses:
BeanContextServicesSupport
public class BeanContextSupport extends BeanContextChildSupport implements BeanContext, Serializable, PropertyChangeListener, VetoableChangeListener
This helper class provides a utility implementation of the java.beans.beancontext.BeanContext interface.Since this class directly implements the BeanContext interface, the class can, and is intended to be used either by subclassing this implementation, or via ad-hoc delegation of an instance of this class from another.
- Since:
- 1.2
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
BeanContextSupport.BCSChild
protected static class
BeanContextSupport.BCSIterator
protected final subclass that encapsulates an iterator but implements a noop remove() method.
-
Field Summary
Fields Modifier and Type Field Description protected ArrayList<BeanContextMembershipListener>
bcmListeners
all accesses to theprotected ArrayList bcmListeners
field shall be synchronized on that object.protected HashMap<Object,BeanContextSupport.BCSChild>
children
all accesses to theprotected HashMap children
field shall be synchronized on that object.protected boolean
designTime
Aboolean
indicating whether or not this object is currently in design time mode.protected Locale
locale
The current locale of this BeanContext.protected boolean
okToUseGui
Aboolean
indicating if this instance may now render a GUI.-
Fields inherited from interface java.beans.beancontext.BeanContext
globalHierarchyLock
-
Fields inherited from class java.beans.beancontext.BeanContextChildSupport
beanContext, beanContextChildPeer, pcSupport, rejectedSetBCOnce, vcSupport
-
Fields inherited from interface java.beans.DesignMode
PROPERTYNAME
-
-
Constructor Summary
Constructors Constructor Description BeanContextSupport()
Create an instance that is not a delegate of another objectBeanContextSupport(BeanContext peer)
Create an instance using with a default localeBeanContextSupport(BeanContext peer, Locale lcle)
Create an instance using the specified localeBeanContextSupport(BeanContext peer, Locale lcle, boolean dtime)
Create an instance using the specified Locale and design mode.BeanContextSupport(BeanContext peer, Locale lcle, boolean dTime, boolean visible)
Construct a BeanContextSupport instance
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(Object targetChild)
Adds/nests a child within thisBeanContext
.boolean
addAll(Collection c)
add Collection to set of Children (Unsupported) implementations must synchronized on the hierarchy lock and "children" protected fieldvoid
addBeanContextMembershipListener(BeanContextMembershipListener bcml)
Adds a BeanContextMembershipListenerboolean
avoidingGui()
Used to determine if theBeanContext
child is avoiding using its GUI.protected Iterator<BeanContextSupport.BCSChild>
bcsChildren()
Returns an iterator of all children of thisBeanContext
.protected void
bcsPreDeserializationHook(ObjectInputStream ois)
called by readObject after defaultReadObject() but prior to deserialization of any children.protected void
bcsPreSerializationHook(ObjectOutputStream oos)
called by writeObject after defaultWriteObject() but prior to serialization of currently serializable children.protected void
childDeserializedHook(Object child, BeanContextSupport.BCSChild bcsc)
Called by readObject with the newly deserialized child and BCSChild.protected void
childJustAddedHook(Object child, BeanContextSupport.BCSChild bcsc)
subclasses may override this method to simply extend add() semantics after the child has been added and before the event notification has occurred.protected void
childJustRemovedHook(Object child, BeanContextSupport.BCSChild bcsc)
subclasses may override this method to simply extend remove() semantics after the child has been removed and before the event notification has occurred.protected static boolean
classEquals(Class<?> first, Class<?> second)
Tests to see if two class objects, or their names are equal.void
clear()
clear the children (Unsupported) implementations must synchronized on the hierarchy lock and "children" protected fieldboolean
contains(Object o)
Determines whether or not the specified object is currently a child of thisBeanContext
.boolean
containsAll(Collection c)
Tests to see if all objects in the specifiedCollection
are children of thisBeanContext
.boolean
containsKey(Object o)
Determines whether or not the specified object is currently a child of thisBeanContext
.protected Object[]
copyChildren()
Gets a copy of the this BeanContext's children.protected BeanContextSupport.BCSChild
createBCSChild(Object targetChild, Object peer)
Subclasses can override this method to insert their own subclass of Child without having to override add() or the other Collection methods that add children to the set.protected void
deserialize(ObjectInputStream ois, Collection coll)
used by readObject to deserialize a collection.void
dontUseGui()
notify this instance that it may no longer render a GUI.protected void
fireChildrenAdded(BeanContextMembershipEvent bcme)
Fire a BeanContextshipEvent on the BeanContextMembershipListener interfaceprotected void
fireChildrenRemoved(BeanContextMembershipEvent bcme)
Fire a BeanContextshipEvent on the BeanContextMembershipListener interfaceBeanContext
getBeanContextPeer()
Gets the instance ofBeanContext
that this object is providing the implementation for.protected static BeanContextChild
getChildBeanContextChild(Object child)
Gets the BeanContextChild (if any) of the specified childprotected static BeanContextMembershipListener
getChildBeanContextMembershipListener(Object child)
Gets the BeanContextMembershipListener (if any) of the specified childprotected static PropertyChangeListener
getChildPropertyChangeListener(Object child)
Gets the PropertyChangeListener (if any) of the specified childprotected static Serializable
getChildSerializable(Object child)
Gets the Serializable (if any) associated with the specified Childprotected static VetoableChangeListener
getChildVetoableChangeListener(Object child)
Gets the VetoableChangeListener (if any) of the specified childprotected static Visibility
getChildVisibility(Object child)
Gets the Component (if any) associated with the specified child.Locale
getLocale()
Gets the locale for thisBeanContext
.URL
getResource(String name, BeanContextChild bcc)
Analagous tojava.lang.ClassLoader.getResource()
, this method allows aBeanContext
implementation to interpose behavior between the childComponent
and underlyingClassLoader
.InputStream
getResourceAsStream(String name, BeanContextChild bcc)
Analagous tojava.lang.ClassLoader.getResourceAsStream()
, this method allows aBeanContext
implementation to interpose behavior between the childComponent
and underlyingClassLoader
.protected void
initialize()
protected method called from constructor and readObject to initialize transient state of BeanContextSupport instance.Object
instantiateChild(String beanName)
The instantiateChild method is a convenience hook in BeanContext to simplify the task of instantiating a Bean, nested, into aBeanContext
.boolean
isDesignTime()
Reports whether or not this object is in currently in design time mode.boolean
isEmpty()
Reports whether or not thisBeanContext
is empty.boolean
isSerializing()
Is thisBeanContext
in the process of being serialized?Iterator<Object>
iterator()
Gets all JavaBean orBeanContext
instances currently nested in thisBeanContext
.boolean
needsGui()
This method is typically called from the environment in order to determine if the implementor "needs" a GUI.void
okToUseGui()
Notify this instance that it may now render a GUIvoid
propertyChange(PropertyChangeEvent pce)
subclasses may envelope to monitor child property changes.void
readChildren(ObjectInputStream ois)
When an instance of this class is used as a delegate for the implementation of the BeanContext protocols (and its subprotocols) there exists a 'chicken and egg' problem during deserializationboolean
remove(Object targetChild)
Removes a child from this BeanContext.protected boolean
remove(Object targetChild, boolean callChildSetBC)
internal remove used when removal caused by unexpectedsetBeanContext
or byremove()
invocation.boolean
removeAll(Collection c)
remove all specified children (Unsupported) implementations must synchronized on the hierarchy lock and "children" protected fieldvoid
removeBeanContextMembershipListener(BeanContextMembershipListener bcml)
Removes a BeanContextMembershipListenerboolean
retainAll(Collection c)
retain only specified children (Unsupported) implementations must synchronized on the hierarchy lock and "children" protected fieldprotected void
serialize(ObjectOutputStream oos, Collection<?> coll)
Used by writeObject to serialize a Collection.void
setDesignTime(boolean dTime)
Sets the new design time value for thisBeanContext
.void
setLocale(Locale newLocale)
Sets the locale of this BeanContext.int
size()
Gets the number of children currently nested in this BeanContext.Object[]
toArray()
Gets all JavaBean orBeanContext
instances currently nested in this BeanContext.Object[]
toArray(Object[] arry)
Gets an array containing all children of thisBeanContext
that match the types contained in arry.protected boolean
validatePendingAdd(Object targetChild)
Subclasses of this class may override, or envelope, this method to add validation behavior for the BeanContext to examine child objects immediately prior to their being added to the BeanContext.protected boolean
validatePendingRemove(Object targetChild)
Subclasses of this class may override, or envelope, this method to add validation behavior for the BeanContext to examine child objects immediately prior to their being removed from the BeanContext.void
vetoableChange(PropertyChangeEvent pce)
subclasses may envelope to monitor veto child property changes.void
writeChildren(ObjectOutputStream oos)
Used to serialize all children of thisBeanContext
.-
Methods inherited from interface java.beans.beancontext.BeanContextChild
addPropertyChangeListener, addVetoableChangeListener, getBeanContext, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext
-
Methods inherited from class java.beans.beancontext.BeanContextChildSupport
addPropertyChangeListener, addVetoableChangeListener, firePropertyChange, fireVetoableChange, getBeanContext, getBeanContextChildPeer, initializeBeanContextResources, isDelegated, releaseBeanContextResources, removePropertyChangeListener, removeVetoableChangeListener, serviceAvailable, serviceRevoked, setBeanContext, validatePendingSetBeanContext
-
Methods inherited from interface java.util.Collection
equals, hashCode, parallelStream, removeIf, spliterator, stream
-
-
-
-
Field Detail
-
children
protected transient HashMap<Object,BeanContextSupport.BCSChild> children
all accesses to theprotected HashMap children
field shall be synchronized on that object.
-
bcmListeners
protected transient ArrayList<BeanContextMembershipListener> bcmListeners
all accesses to theprotected ArrayList bcmListeners
field shall be synchronized on that object.
-
locale
protected Locale locale
The current locale of this BeanContext.
-
okToUseGui
protected boolean okToUseGui
Aboolean
indicating if this instance may now render a GUI.
-
designTime
protected boolean designTime
Aboolean
indicating whether or not this object is currently in design time mode.
-
-
Constructor Detail
-
BeanContextSupport
public BeanContextSupport(BeanContext peer, Locale lcle, boolean dTime, boolean visible)
Construct a BeanContextSupport instance- Parameters:
peer
- The peerBeanContext
we are supplying an implementation for, ornull
if this object is its own peerlcle
- The current Locale for this BeanContext. Iflcle
isnull
, the default locale is assigned to theBeanContext
instance.dTime
- The initial state,true
if in design mode,false
if runtime.visible
- The initial visibility.- See Also:
Locale.getDefault()
,Locale.setDefault(java.util.Locale)
-
BeanContextSupport
public BeanContextSupport(BeanContext peer, Locale lcle, boolean dtime)
Create an instance using the specified Locale and design mode.- Parameters:
peer
- The peerBeanContext
we are supplying an implementation for, ornull
if this object is its own peerlcle
- The current Locale for thisBeanContext
. Iflcle
isnull
, the default locale is assigned to theBeanContext
instance.dtime
- The initial state,true
if in design mode,false
if runtime.- See Also:
Locale.getDefault()
,Locale.setDefault(java.util.Locale)
-
BeanContextSupport
public BeanContextSupport(BeanContext peer, Locale lcle)
Create an instance using the specified locale- Parameters:
peer
- The peer BeanContext we are supplying an implementation for, ornull
if this object is its own peerlcle
- The current Locale for thisBeanContext
. Iflcle
isnull
, the default locale is assigned to theBeanContext
instance.- See Also:
Locale.getDefault()
,Locale.setDefault(java.util.Locale)
-
BeanContextSupport
public BeanContextSupport(BeanContext peer)
Create an instance using with a default locale- Parameters:
peer
- The peerBeanContext
we are supplying an implementation for, ornull
if this object is its own peer
-
BeanContextSupport
public BeanContextSupport()
Create an instance that is not a delegate of another object
-
-
Method Detail
-
getBeanContextPeer
public BeanContext getBeanContextPeer()
Gets the instance ofBeanContext
that this object is providing the implementation for.- Returns:
- the BeanContext instance
-
instantiateChild
public Object instantiateChild(String beanName) throws IOException, ClassNotFoundException
The instantiateChild method is a convenience hook in BeanContext to simplify the task of instantiating a Bean, nested, into a
BeanContext
.The semantics of the beanName parameter are defined by java.beans.Beans.instantiate.
- Specified by:
instantiateChild
in interfaceBeanContext
- Parameters:
beanName
- the name of the Bean to instantiate within this BeanContext- Returns:
- the new object
- Throws:
IOException
- if there is an I/O error when the bean is being deserializedClassNotFoundException
- if the class identified by the beanName parameter is not found
-
size
public int size()
Gets the number of children currently nested in this BeanContext.- Specified by:
size
in interfaceCollection
- Returns:
- number of children
-
isEmpty
public boolean isEmpty()
Reports whether or not thisBeanContext
is empty. ABeanContext
is considered empty when it contains zero nested children.- Specified by:
isEmpty
in interfaceCollection
- Returns:
- if there are not children
-
contains
public boolean contains(Object o)
Determines whether or not the specified object is currently a child of thisBeanContext
.- Specified by:
contains
in interfaceCollection
- Parameters:
o
- the Object in question- Returns:
- if this object is a child
-
containsKey
public boolean containsKey(Object o)
Determines whether or not the specified object is currently a child of thisBeanContext
.- Parameters:
o
- the Object in question- Returns:
- if this object is a child
-
iterator
public Iterator<Object> iterator()
Gets all JavaBean orBeanContext
instances currently nested in thisBeanContext
.- Specified by:
iterator
in interfaceCollection
- Specified by:
iterator
in interfaceIterable<E>
- Returns:
- an
Iterator
of the nested children
-
toArray
public Object[] toArray()
Gets all JavaBean orBeanContext
instances currently nested in this BeanContext.- Specified by:
toArray
in interfaceCollection
- Returns:
- an array containing all of the elements in this collection
-
toArray
public Object[] toArray(Object[] arry)
Gets an array containing all children of thisBeanContext
that match the types contained in arry.- Specified by:
toArray
in interfaceCollection
- Parameters:
arry
- The array of object types that are of interest.- Returns:
- an array of children
-
createBCSChild
protected BeanContextSupport.BCSChild createBCSChild(Object targetChild, Object peer)
Subclasses can override this method to insert their own subclass of Child without having to override add() or the other Collection methods that add children to the set.
- Parameters:
targetChild
- the child to create the Child on behalf ofpeer
- the peer if the tragetChild and the peer are related by an implementation of BeanContextProxy- Returns:
- Subtype-specific subclass of Child without overriding collection methods
-
add
public boolean add(Object targetChild)
Adds/nests a child within thisBeanContext
.Invoked as a side effect of java.beans.Beans.instantiate(). If the child object is not valid for adding then this method throws an IllegalStateException.
- Specified by:
add
in interfaceCollection
- Parameters:
targetChild
- The child objects to nest within thisBeanContext
- Returns:
- true if the child was added successfully.
- See Also:
validatePendingAdd(java.lang.Object)
-
remove
public boolean remove(Object targetChild)
Removes a child from this BeanContext. If the child object is not for adding then this method throws an IllegalStateException.- Specified by:
remove
in interfaceCollection
- Parameters:
targetChild
- The child objects to remove- Returns:
true
if an element was removed as a result of this call- See Also:
validatePendingRemove(java.lang.Object)
-
remove
protected boolean remove(Object targetChild, boolean callChildSetBC)
internal remove used when removal caused by unexpectedsetBeanContext
or byremove()
invocation.- Parameters:
targetChild
- the JavaBean, BeanContext, or Object to be removedcallChildSetBC
- used to indicate that the child should be notified that it is no longer nested in thisBeanContext
.- Returns:
- whether or not was present before being removed
-
containsAll
public boolean containsAll(Collection c)
Tests to see if all objects in the specifiedCollection
are children of thisBeanContext
.- Specified by:
containsAll
in interfaceCollection
- Parameters:
c
- the specifiedCollection
- Returns:
true
if all objects in the collection are children of thisBeanContext
, false if not.- See Also:
Collection.contains(Object)
-
addAll
public boolean addAll(Collection c)
add Collection to set of Children (Unsupported) implementations must synchronized on the hierarchy lock and "children" protected field- Specified by:
addAll
in interfaceCollection
- Parameters:
c
- collection containing elements to be added to this collection- Returns:
- this implementation unconditionally throws
UnsupportedOperationException
- Throws:
UnsupportedOperationException
- thrown unconditionally by this implementation- See Also:
Collection.add(Object)
-
removeAll
public boolean removeAll(Collection c)
remove all specified children (Unsupported) implementations must synchronized on the hierarchy lock and "children" protected field- Specified by:
removeAll
in interfaceCollection
- Parameters:
c
- collection containing elements to be removed from this collection- Returns:
- this implementation unconditionally throws
UnsupportedOperationException
- Throws:
UnsupportedOperationException
- thrown unconditionally by this implementation- See Also:
Collection.remove(Object)
,Collection.contains(Object)
-
retainAll
public boolean retainAll(Collection c)
retain only specified children (Unsupported) implementations must synchronized on the hierarchy lock and "children" protected field- Specified by:
retainAll
in interfaceCollection
- Parameters:
c
- collection containing elements to be retained in this collection- Returns:
- this implementation unconditionally throws
UnsupportedOperationException
- Throws:
UnsupportedOperationException
- thrown unconditionally by this implementation- See Also:
Collection.remove(Object)
,Collection.contains(Object)
-
clear
public void clear()
clear the children (Unsupported) implementations must synchronized on the hierarchy lock and "children" protected field- Specified by:
clear
in interfaceCollection
- Throws:
UnsupportedOperationException
- thrown unconditionally by this implementation
-
addBeanContextMembershipListener
public void addBeanContextMembershipListener(BeanContextMembershipListener bcml)
Adds a BeanContextMembershipListener- Specified by:
addBeanContextMembershipListener
in interfaceBeanContext
- Parameters:
bcml
- the BeanContextMembershipListener to add- Throws:
NullPointerException
- if the argument is null
-
removeBeanContextMembershipListener
public void removeBeanContextMembershipListener(BeanContextMembershipListener bcml)
Removes a BeanContextMembershipListener- Specified by:
removeBeanContextMembershipListener
in interfaceBeanContext
- Parameters:
bcml
- the BeanContextMembershipListener to remove- Throws:
NullPointerException
- if the argument is null
-
getResourceAsStream
public InputStream getResourceAsStream(String name, BeanContextChild bcc)
Description copied from interface:BeanContext
Analagous tojava.lang.ClassLoader.getResourceAsStream()
, this method allows aBeanContext
implementation to interpose behavior between the childComponent
and underlyingClassLoader
.- Specified by:
getResourceAsStream
in interfaceBeanContext
- Parameters:
name
- the name of the resource requested.bcc
- the child object making the request.- Returns:
- the requested resource as an InputStream
- Throws:
NullPointerException
- if the argument is null
-
getResource
public URL getResource(String name, BeanContextChild bcc)
Description copied from interface:BeanContext
Analagous tojava.lang.ClassLoader.getResource()
, this method allows aBeanContext
implementation to interpose behavior between the childComponent
and underlyingClassLoader
.- Specified by:
getResource
in interfaceBeanContext
- Parameters:
name
- the name of the resource requested.bcc
- the child object making the request.- Returns:
- the requested resource as an InputStream
-
setDesignTime
public void setDesignTime(boolean dTime)
Sets the new design time value for thisBeanContext
.- Specified by:
setDesignTime
in interfaceDesignMode
- Parameters:
dTime
- the new designTime value- See Also:
BeanContext
,BeanContextMembershipListener
,PropertyChangeEvent
-
isDesignTime
public boolean isDesignTime()
Reports whether or not this object is in currently in design time mode.- Specified by:
isDesignTime
in interfaceDesignMode
- Returns:
true
if in design time mode,false
if not
-
setLocale
public void setLocale(Locale newLocale) throws PropertyVetoException
Sets the locale of this BeanContext.- Parameters:
newLocale
- the new locale. This method call will have no effect if newLocale isnull
.- Throws:
PropertyVetoException
- if the new value is rejected
-
getLocale
public Locale getLocale()
Gets the locale for thisBeanContext
.- Returns:
- the current Locale of the
BeanContext
-
needsGui
public boolean needsGui()
This method is typically called from the environment in order to determine if the implementor "needs" a GUI.
The algorithm used herein tests the BeanContextPeer, and its current children to determine if they are either Containers, Components, or if they implement Visibility and return needsGui() == true.
- Specified by:
needsGui
in interfaceVisibility
- Returns:
true
if the implementor needs a GUI
-
dontUseGui
public void dontUseGui()
notify this instance that it may no longer render a GUI.- Specified by:
dontUseGui
in interfaceVisibility
-
okToUseGui
public void okToUseGui()
Notify this instance that it may now render a GUI- Specified by:
okToUseGui
in interfaceVisibility
-
avoidingGui
public boolean avoidingGui()
Used to determine if theBeanContext
child is avoiding using its GUI.- Specified by:
avoidingGui
in interfaceVisibility
- Returns:
- is this instance avoiding using its GUI?
- See Also:
Visibility
-
isSerializing
public boolean isSerializing()
Is thisBeanContext
in the process of being serialized?- Returns:
- if this
BeanContext
is currently being serialized
-
bcsChildren
protected Iterator<BeanContextSupport.BCSChild> bcsChildren()
Returns an iterator of all children of thisBeanContext
.- Returns:
- an iterator for all the current BCSChild values
-
bcsPreSerializationHook
protected void bcsPreSerializationHook(ObjectOutputStream oos) throws IOException
called by writeObject after defaultWriteObject() but prior to serialization of currently serializable children. This method may be overridden by subclasses to perform custom serialization of their state prior to this superclass serializing the children. This method should not however be used by subclasses to replace their own implementation (if any) of writeObject().- Parameters:
oos
- theObjectOutputStream
to use during serialization- Throws:
IOException
- if serialization failed
-
bcsPreDeserializationHook
protected void bcsPreDeserializationHook(ObjectInputStream ois) throws IOException, ClassNotFoundException
called by readObject after defaultReadObject() but prior to deserialization of any children. This method may be overridden by subclasses to perform custom deserialization of their state prior to this superclass deserializing the children. This method should not however be used by subclasses to replace their own implementation (if any) of readObject().- Parameters:
ois
- theObjectInputStream
to use during deserialization- Throws:
IOException
- if deserialization failedClassNotFoundException
- if needed classes are not found
-
childDeserializedHook
protected void childDeserializedHook(Object child, BeanContextSupport.BCSChild bcsc)
Called by readObject with the newly deserialized child and BCSChild.- Parameters:
child
- the newly deserialized childbcsc
- the newly deserialized BCSChild
-
serialize
protected final void serialize(ObjectOutputStream oos, Collection<?> coll) throws IOException
Used by writeObject to serialize a Collection.- Parameters:
oos
- theObjectOutputStream
to use during serializationcoll
- theCollection
to serialize- Throws:
IOException
- if serialization failed
-
deserialize
protected final void deserialize(ObjectInputStream ois, Collection coll) throws IOException, ClassNotFoundException
used by readObject to deserialize a collection.- Parameters:
ois
- the ObjectInputStream to usecoll
- the Collection- Throws:
IOException
- if deserialization failedClassNotFoundException
- if needed classes are not found
-
writeChildren
public final void writeChildren(ObjectOutputStream oos) throws IOException
Used to serialize all children of thisBeanContext
.- Parameters:
oos
- theObjectOutputStream
to use during serialization- Throws:
IOException
- if serialization failed
-
readChildren
public final void readChildren(ObjectInputStream ois) throws IOException, ClassNotFoundException
When an instance of this class is used as a delegate for the implementation of the BeanContext protocols (and its subprotocols) there exists a 'chicken and egg' problem during deserialization- Parameters:
ois
- the ObjectInputStream to use- Throws:
IOException
- if deserialization failedClassNotFoundException
- if needed classes are not found
-
vetoableChange
public void vetoableChange(PropertyChangeEvent pce) throws PropertyVetoException
subclasses may envelope to monitor veto child property changes.- Specified by:
vetoableChange
in interfaceVetoableChangeListener
- Parameters:
pce
- aPropertyChangeEvent
object describing the event source and the property that has changed.- Throws:
PropertyVetoException
- if the recipient wishes the property change to be rolled back.
-
propertyChange
public void propertyChange(PropertyChangeEvent pce)
subclasses may envelope to monitor child property changes.- Specified by:
propertyChange
in interfacePropertyChangeListener
- Parameters:
pce
- A PropertyChangeEvent object describing the event source and the property that has changed.
-
validatePendingAdd
protected boolean validatePendingAdd(Object targetChild)
Subclasses of this class may override, or envelope, this method to add validation behavior for the BeanContext to examine child objects immediately prior to their being added to the BeanContext.
- Parameters:
targetChild
- the child to create the Child on behalf of- Returns:
- true iff the child may be added to this BeanContext, otherwise false.
-
validatePendingRemove
protected boolean validatePendingRemove(Object targetChild)
Subclasses of this class may override, or envelope, this method to add validation behavior for the BeanContext to examine child objects immediately prior to their being removed from the BeanContext.
- Parameters:
targetChild
- the child to create the Child on behalf of- Returns:
- true iff the child may be removed from this BeanContext, otherwise false.
-
childJustAddedHook
protected void childJustAddedHook(Object child, BeanContextSupport.BCSChild bcsc)
subclasses may override this method to simply extend add() semantics after the child has been added and before the event notification has occurred. The method is called with the child synchronized.- Parameters:
child
- the childbcsc
- the BCSChild
-
childJustRemovedHook
protected void childJustRemovedHook(Object child, BeanContextSupport.BCSChild bcsc)
subclasses may override this method to simply extend remove() semantics after the child has been removed and before the event notification has occurred. The method is called with the child synchronized.- Parameters:
child
- the childbcsc
- the BCSChild
-
getChildVisibility
protected static final Visibility getChildVisibility(Object child)
Gets the Component (if any) associated with the specified child.- Parameters:
child
- the specified child- Returns:
- the Component (if any) associated with the specified child.
-
getChildSerializable
protected static final Serializable getChildSerializable(Object child)
Gets the Serializable (if any) associated with the specified Child- Parameters:
child
- the specified child- Returns:
- the Serializable (if any) associated with the specified Child
-
getChildPropertyChangeListener
protected static final PropertyChangeListener getChildPropertyChangeListener(Object child)
Gets the PropertyChangeListener (if any) of the specified child- Parameters:
child
- the specified child- Returns:
- the PropertyChangeListener (if any) of the specified child
-
getChildVetoableChangeListener
protected static final VetoableChangeListener getChildVetoableChangeListener(Object child)
Gets the VetoableChangeListener (if any) of the specified child- Parameters:
child
- the specified child- Returns:
- the VetoableChangeListener (if any) of the specified child
-
getChildBeanContextMembershipListener
protected static final BeanContextMembershipListener getChildBeanContextMembershipListener(Object child)
Gets the BeanContextMembershipListener (if any) of the specified child- Parameters:
child
- the specified child- Returns:
- the BeanContextMembershipListener (if any) of the specified child
-
getChildBeanContextChild
protected static final BeanContextChild getChildBeanContextChild(Object child)
Gets the BeanContextChild (if any) of the specified child- Parameters:
child
- the specified child- Returns:
- the BeanContextChild (if any) of the specified child
- Throws:
IllegalArgumentException
- if child implements both BeanContextChild and BeanContextProxy
-
fireChildrenAdded
protected final void fireChildrenAdded(BeanContextMembershipEvent bcme)
Fire a BeanContextshipEvent on the BeanContextMembershipListener interface- Parameters:
bcme
- the event to fire
-
fireChildrenRemoved
protected final void fireChildrenRemoved(BeanContextMembershipEvent bcme)
Fire a BeanContextshipEvent on the BeanContextMembershipListener interface- Parameters:
bcme
- the event to fire
-
initialize
protected void initialize()
protected method called from constructor and readObject to initialize transient state of BeanContextSupport instance. This class uses this method to instantiate inner class listeners used to monitor PropertyChange and VetoableChange events on children. subclasses may envelope this method to add their own initialization behavior
-
copyChildren
protected final Object[] copyChildren()
Gets a copy of the this BeanContext's children.- Returns:
- a copy of the current nested children
-
-