public class BeanContextSupport extends BeanContextChildSupport implements BeanContext, Serializable, PropertyChangeListener, VetoableChangeListener
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.
Modifier and Type | Class and Description |
---|---|
protected class |
BeanContextSupport.BCSChild |
protected static class |
BeanContextSupport.BCSIterator
protected final subclass that encapsulates an iterator but implements
a noop remove() method.
|
Modifier and Type | Field and Description |
---|---|
protected ArrayList |
bcmListeners
all accesses to the
protected ArrayList bcmListeners field
shall be synchronized on that object. |
protected HashMap |
children
all accesses to the
protected HashMap children field
shall be synchronized on that object. |
protected boolean |
designTime
A boolean indicating whether or not
this object is currently in design time mode.
|
protected Locale |
locale
The current locale of this BeanContext.
|
protected boolean |
okToUseGui
A boolean indicating if this
instance may now render a GUI.
|
beanContext, beanContextChildPeer, pcSupport, rejectedSetBCOnce, vcSupport
globalHierarchyLock
PROPERTYNAME
Constructor and Description |
---|
BeanContextSupport()
Create an instance that is not a delegate of another object
|
BeanContextSupport(BeanContext peer)
Create an instance using with a default locale
|
BeanContextSupport(BeanContext peer,
Locale lcle)
Create an instance using the specified locale
|
BeanContextSupport(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
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(Object targetChild)
Adds/nests a child within this BeanContext.
|
boolean |
addAll(Collection c)
add Collection to set of Children (Unsupported)
implementations must synchronized on the hierarchy lock and "children" protected field
|
void |
addBeanContextMembershipListener(BeanContextMembershipListener bcml)
Adds a BeanContextMembershipListener
|
boolean |
avoidingGui()
Used to determine if the BeanContext
child is avoiding using its GUI.
|
protected Iterator |
bcsChildren()
Returns an iterator of all children
of this BeanContext.
|
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 field
|
boolean |
contains(Object o)
Determines whether or not the specified object
is currently a child of this BeanContext.
|
boolean |
containsAll(Collection c)
Tests to see if all objects in the
specified Collection are children of
this BeanContext.
|
boolean |
containsKey(Object o)
Determines whether or not the specified object
is currently a child of this BeanContext.
|
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 interface
|
protected void |
fireChildrenRemoved(BeanContextMembershipEvent bcme)
Fire a BeanContextshipEvent on the BeanContextMembershipListener interface
|
BeanContext |
getBeanContextPeer()
Gets the instance of BeanContext that
this object is providing the implementation for.
|
protected static BeanContextChild |
getChildBeanContextChild(Object child)
Gets the BeanContextChild (if any) of the specified child
|
protected static BeanContextMembershipListener |
getChildBeanContextMembershipListener(Object child)
Gets the BeanContextMembershipListener
(if any) of the specified child
|
protected static PropertyChangeListener |
getChildPropertyChangeListener(Object child)
Gets the PropertyChangeListener
(if any) of the specified child
|
protected static Serializable |
getChildSerializable(Object child)
Gets the Serializable (if any) associated with the specified Child
|
protected static VetoableChangeListener |
getChildVetoableChangeListener(Object child)
Gets the VetoableChangeListener
(if any) of the specified child
|
protected static Visibility |
getChildVisibility(Object child)
Gets the Component (if any) associated with the specified child.
|
Locale |
getLocale()
Gets the locale for this BeanContext.
|
URL |
getResource(String name,
BeanContextChild bcc)
Analagous to
java.lang.ClassLoader.getResource() , this
method allows a BeanContext implementation to interpose
behavior between the child Component
and underlying ClassLoader . |
InputStream |
getResourceAsStream(String name,
BeanContextChild bcc)
Analagous to
java.lang.ClassLoader.getResourceAsStream() ,
this method allows a BeanContext implementation
to interpose behavior between the child Component
and underlying ClassLoader . |
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 a BeanContext.
|
boolean |
isDesignTime()
Reports whether or not this object is in
currently in design time mode.
|
boolean |
isEmpty()
Reports whether or not this
BeanContext is empty.
|
boolean |
isSerializing()
Is this BeanContext in the
process of being serialized?
|
Iterator |
iterator()
Gets all JavaBean or BeanContext instances
currently nested in this BeanContext.
|
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 GUI
|
void |
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 deserialization
|
boolean |
remove(Object targetChild)
Removes a child from this BeanContext.
|
protected boolean |
remove(Object targetChild,
boolean callChildSetBC)
internal remove used when removal caused by
unexpected setBeanContext or
by remove() invocation.
|
boolean |
removeAll(Collection c)
remove all specified children (Unsupported)
implementations must synchronized on the hierarchy lock and "children" protected field
|
void |
removeBeanContextMembershipListener(BeanContextMembershipListener bcml)
Removes a BeanContextMembershipListener
|
boolean |
retainAll(Collection c)
retain only specified children (Unsupported)
implementations must synchronized on the hierarchy lock and "children" protected field
|
protected void |
serialize(ObjectOutputStream oos,
Collection coll)
Used by writeObject to serialize a Collection.
|
void |
setDesignTime(boolean dTime)
Sets the new design time value for this BeanContext.
|
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 or BeanContext
instances currently nested in this BeanContext.
|
Object[] |
toArray(Object[] arry)
Gets an array containing all children of
this BeanContext 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
this BeanContext.
|
addPropertyChangeListener, addVetoableChangeListener, firePropertyChange, fireVetoableChange, getBeanContext, getBeanContextChildPeer, initializeBeanContextResources, isDelegated, releaseBeanContextResources, removePropertyChangeListener, removeVetoableChangeListener, serviceAvailable, serviceRevoked, setBeanContext, validatePendingSetBeanContext
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addPropertyChangeListener, addVetoableChangeListener, getBeanContext, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext
equals, hashCode
protected transient HashMap children
protected HashMap children
field
shall be synchronized on that object.protected transient ArrayList bcmListeners
protected ArrayList bcmListeners
field
shall be synchronized on that object.protected Locale locale
protected boolean okToUseGui
protected boolean designTime
public BeanContextSupport(BeanContext peer, Locale lcle, boolean dTime, boolean visible)
peer
- The peer BeanContext we are
supplying an implementation for,
or null
if this object is its own peerlcle
- The current Locale for this BeanContext. If
lcle is null, the default locale
is assigned to the BeanContext instance.dTime
- The initial state,
true if in design mode,
false if runtime.visible
- The initial visibility.Locale.getDefault()
,
Locale.setDefault(java.util.Locale)
public BeanContextSupport(BeanContext peer, Locale lcle, boolean dtime)
peer
- The peer BeanContext we
are supplying an implementation for,
or null if this object is its own peerlcle
- The current Locale for this BeanContext. If
lcle is null, the default locale
is assigned to the BeanContext instance.dtime
- The initial state, true
if in design mode,
false if runtime.Locale.getDefault()
,
Locale.setDefault(java.util.Locale)
public BeanContextSupport(BeanContext peer, Locale lcle)
peer
- The peer BeanContext we are
supplying an implementation for,
or null if this object
is its own peerlcle
- The current Locale for this
BeanContext. If
lcle is null,
the default locale
is assigned to the BeanContext
instance.Locale.getDefault()
,
Locale.setDefault(java.util.Locale)
public BeanContextSupport(BeanContext peer)
peer
- The peer BeanContext we are
supplying an implementation for,
or null if this object
is its own peerpublic BeanContextSupport()
public BeanContext getBeanContextPeer()
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.instantate.
instantiateChild
in interface BeanContext
beanName
- the name of the Bean to instantiate within this BeanContextIOException
- if there is an I/O error when the bean is being deserializedClassNotFoundException
- if the class
identified by the beanName parameter is not foundpublic int size()
size
in interface Collection
public boolean isEmpty()
isEmpty
in interface Collection
public boolean contains(Object o)
contains
in interface Collection
o
- the Object in questionpublic boolean containsKey(Object o)
o
- the Object in questionpublic Iterator iterator()
iterator
in interface Iterable
iterator
in interface Collection
public Object[] toArray()
toArray
in interface Collection
public Object[] toArray(Object[] arry)
toArray
in interface Collection
arry
- The array of object
types that are of interest.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.
targetChild
- the child to create the Child on behalf ofpeer
- the peer if the tragetChild and the peer are related by an implementation of BeanContextProxypublic boolean add(Object targetChild)
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.
add
in interface Collection
targetChild
- The child objects to nest
within this BeanContextvalidatePendingAdd(java.lang.Object)
public boolean remove(Object targetChild)
remove
in interface Collection
targetChild
- The child objects to removevalidatePendingRemove(java.lang.Object)
protected boolean remove(Object targetChild, boolean callChildSetBC)
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 this BeanContext.public boolean containsAll(Collection c)
containsAll
in interface Collection
c
- the specified CollectionCollection.contains(Object)
public boolean addAll(Collection c)
addAll
in interface Collection
c
- collection containing elements to be added to this collectionUnsupportedOperationException
Collection.add(Object)
public boolean removeAll(Collection c)
removeAll
in interface Collection
c
- collection containing elements to be removed from this collectionUnsupportedOperationException
Collection.remove(Object)
,
Collection.contains(Object)
public boolean retainAll(Collection c)
retainAll
in interface Collection
c
- collection containing elements to be retained in this collectionUnsupportedOperationException
Collection.remove(Object)
,
Collection.contains(Object)
public void clear()
clear
in interface Collection
UnsupportedOperationException
public void addBeanContextMembershipListener(BeanContextMembershipListener bcml)
addBeanContextMembershipListener
in interface BeanContext
bcml
- the BeanContextMembershipListener to addNullPointerException
public void removeBeanContextMembershipListener(BeanContextMembershipListener bcml)
removeBeanContextMembershipListener
in interface BeanContext
bcml
- the BeanContextMembershipListener to removeNullPointerException
public InputStream getResourceAsStream(String name, BeanContextChild bcc)
BeanContext
java.lang.ClassLoader.getResourceAsStream()
,
this method allows a BeanContext
implementation
to interpose behavior between the child Component
and underlying ClassLoader
.getResourceAsStream
in interface BeanContext
name
- the name of the resource requested.bcc
- the child object making the request.NullPointerException
public URL getResource(String name, BeanContextChild bcc)
BeanContext
java.lang.ClassLoader.getResource()
, this
method allows a BeanContext
implementation to interpose
behavior between the child Component
and underlying ClassLoader
.getResource
in interface BeanContext
name
- the name of the resource requested.bcc
- the child object making the request.public void setDesignTime(boolean dTime)
setDesignTime
in interface DesignMode
dTime
- the new designTime valueBeanContext
,
BeanContextMembershipListener
,
PropertyChangeEvent
public boolean isDesignTime()
isDesignTime
in interface DesignMode
public void setLocale(Locale newLocale) throws PropertyVetoException
newLocale
- the new locale. This method call will have
no effect if newLocale is null
.PropertyVetoException
- if the new value is rejectedpublic Locale getLocale()
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.
needsGui
in interface Visibility
public void dontUseGui()
dontUseGui
in interface Visibility
public void okToUseGui()
okToUseGui
in interface Visibility
public boolean avoidingGui()
avoidingGui
in interface Visibility
Visibility
public boolean isSerializing()
protected Iterator bcsChildren()
protected void bcsPreSerializationHook(ObjectOutputStream oos) throws IOException
IOException
protected void bcsPreDeserializationHook(ObjectInputStream ois) throws IOException, ClassNotFoundException
IOException
ClassNotFoundException
protected void childDeserializedHook(Object child, BeanContextSupport.BCSChild bcsc)
child
- the newly deserialized childbcsc
- the newly deserialized BCSChildprotected final void serialize(ObjectOutputStream oos, Collection coll) throws IOException
oos
- the ObjectOutputStream
to use during serializationcoll
- the Collection to serializeIOException
- if serialization failedprotected final void deserialize(ObjectInputStream ois, Collection coll) throws IOException, ClassNotFoundException
ois
- the ObjectInputStream to usecoll
- the CollectionIOException
ClassNotFoundException
public final void writeChildren(ObjectOutputStream oos) throws IOException
oos
- the ObjectOutputStream
to use during serializationIOException
- if serialization failedpublic final void readChildren(ObjectInputStream ois) throws IOException, ClassNotFoundException
IOException
ClassNotFoundException
public void vetoableChange(PropertyChangeEvent pce) throws PropertyVetoException
vetoableChange
in interface VetoableChangeListener
pce
- a PropertyChangeEvent
object describing the
event source and the property that has changed.PropertyVetoException
- if the recipient wishes the property
change to be rolled back.public void propertyChange(PropertyChangeEvent pce)
propertyChange
in interface PropertyChangeListener
pce
- A PropertyChangeEvent object describing the event source
and the property that has changed.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.
protected void childJustAddedHook(Object child, BeanContextSupport.BCSChild bcsc)
protected void childJustRemovedHook(Object child, BeanContextSupport.BCSChild bcsc)
protected static final Visibility getChildVisibility(Object child)
child
- the specified childprotected static final Serializable getChildSerializable(Object child)
child
- the specified childprotected static final PropertyChangeListener getChildPropertyChangeListener(Object child)
child
- the specified childprotected static final VetoableChangeListener getChildVetoableChangeListener(Object child)
child
- the specified childprotected static final BeanContextMembershipListener getChildBeanContextMembershipListener(Object child)
child
- the specified childprotected static final BeanContextChild getChildBeanContextChild(Object child)
child
- the specified childIllegalArgumentException
- if child implements both BeanContextChild and BeanContextProxyprotected final void fireChildrenAdded(BeanContextMembershipEvent bcme)
protected final void fireChildrenRemoved(BeanContextMembershipEvent bcme)
protected void initialize()
protected final Object[] copyChildren()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved.