java.beans.beancontext
public class BeanContextSupport extends BeanContextChildSupport implements BeanContext, Serializable, PropertyChangeListener, VetoableChangeListener
Since: 1.2
Nested Class Summary | |
---|---|
protected class | BeanContextSupport.BCSChild |
protected static class | BeanContextSupport.BCSIterator |
Field Summary | |
---|---|
protected ArrayList | bcmListeners |
protected HashMap | children |
protected boolean | designTime |
protected Locale | locale |
protected boolean | okToUseGui |
Constructor Summary | |
---|---|
BeanContextSupport()
Construct a BeanContextSupport instance. | |
BeanContextSupport(BeanContext peer)
Construct a BeanContextSupport instance.
| |
BeanContextSupport(BeanContext peer, Locale locale)
Construct a BeanContextSupport instance.
| |
BeanContextSupport(BeanContext peer, Locale locale, boolean dtime)
Construct a BeanContextSupport instance.
| |
BeanContextSupport(BeanContext peer, Locale locale, boolean dtime, boolean visible)
Construct a BeanContextSupport instance.
|
Method Summary | |
---|---|
boolean | add(Object targetChild) Add a child to the bean context. |
boolean | addAll(Collection c) |
void | addBeanContextMembershipListener(BeanContextMembershipListener listener) |
boolean | avoidingGui()
Returns true if this bean needs a GUI
but is being prevented from using one.
|
protected Iterator | bcsChildren() |
protected void | bcsPreDeserializationHook(ObjectInputStream ois)
Subclasses may use this method to perform their own deserialization
after the default deserialization process has taken place, but
prior to the deserialization of the children. |
protected void | bcsPreSerializationHook(ObjectOutputStream oos)
Subclasses may use this method to perform their own serialization
after the default serialization process has taken place, but
prior to the serialization of the children. |
protected void | childDeserializedHook(Object child, BeanContextSupport.BCSChild bcsc)
Called when a child is deserialized.
|
protected void | childJustAddedHook(Object child, BeanContextSupport.BCSChild bcsc) |
protected void | childJustRemovedHook(Object child, BeanContextSupport.BCSChild bcsc) |
protected static boolean | classEquals(Class first, Class second) |
void | clear() |
boolean | contains(Object o) |
boolean | containsAll(Collection c) |
boolean | containsKey(Object o) |
protected Object[] | copyChildren() |
protected BeanContextSupport.BCSChild | createBCSChild(Object targetChild, Object peer) |
protected void | deserialize(ObjectInputStream ois, Collection coll)
Deserializes objects (written by BeanContextSupport) and adds them to the specified collection.
|
void | dontUseGui()
Informs this bean that is should not make
use of the GUI. |
protected void | fireChildrenAdded(BeanContextMembershipEvent bcme) |
protected void | fireChildrenRemoved(BeanContextMembershipEvent bcme) |
BeanContext | getBeanContextPeer()
Returns the bean context peer.
|
protected static BeanContextChild | getChildBeanContextChild(Object child)
Returns the BeanContextChild implementation for the given child.
|
protected static BeanContextMembershipListener | getChildBeanContextMembershipListener(Object child)
Returns child as an instance of
BeanContextMembershipListener, or null if
child does not implement that interface.
|
protected static PropertyChangeListener | getChildPropertyChangeListener(Object child)
Returns child as an instance of
PropertyChangeListener, or null if child
does not implement that interface.
|
protected static Serializable | getChildSerializable(Object child) |
protected static VetoableChangeListener | getChildVetoableChangeListener(Object child)
Returns child as an instance of
VetoableChangeListener, or null if child
does not implement that interface.
|
protected static Visibility | getChildVisibility(Object child) |
Locale | getLocale() |
URL | getResource(String name, BeanContextChild bcc) |
InputStream | getResourceAsStream(String name, BeanContextChild bcc) |
protected void | initialize() |
Object | instantiateChild(String beanName)
This is a convenience method for instantiating a bean inside this
context. |
boolean | isDesignTime()
Returns true if the BeanContext is in
design time mode, and false if it is in runtime mode.
|
boolean | isEmpty()
Returns true if this bean context has no children.
|
boolean | isSerializing()
Returns true if the bean context is in the process
of being serialized.
|
Iterator | iterator() |
boolean | needsGui()
Returns false as this bean does not a
GUI for its operation.
|
void | okToUseGui()
Informs this bean that it is okay to make use of
the GUI. |
void | propertyChange(PropertyChangeEvent pce)
Subclasses may use this method to catch property changes
arising from the children of this context. |
void | readChildren(ObjectInputStream ois)
Deerializes the children using the
(ObjectInputStream, Collection method
and then calls childDeserializedHook(Object, BCSChild)
for each child deserialized.
|
boolean | remove(Object targetChild)
Remove the specified child from the context. |
protected boolean | remove(Object targetChild, boolean callChildSetBC) Removes a child from the bean context. |
boolean | removeAll(Collection c) |
void | removeBeanContextMembershipListener(BeanContextMembershipListener bcml) |
boolean | retainAll(Collection c) |
protected void | serialize(ObjectOutputStream oos, Collection coll)
Writes the items in the collection to the specified output stream. |
void | setDesignTime(boolean dtime)
Sets the flag that indicates whether or not the
BeanContext is in design mode. |
void | setLocale(Locale newLocale) |
int | size() |
Object[] | toArray()
Returns an array containing the children of this BeanContext .
|
Object[] | toArray(Object[] array)
Populates, then returns, the supplied array with the children of this
BeanContext . |
protected boolean | validatePendingAdd(Object targetChild) |
protected boolean | validatePendingRemove(Object targetChild) |
void | vetoableChange(PropertyChangeEvent pce)
Subclasses may use this method to veto changes arising
from the children of this context.
|
void | writeChildren(ObjectOutputStream oos)
Serializes the children using the
(ObjectOutputStream, Collection method.
|
Parameters: peer the bean context peer (null
permitted).
Parameters: peer the bean context peer (null
permitted). locale the locale (null
permitted, equivalent to
the default locale).
Parameters: peer the bean context peer (null
permitted). locale the locale (null
permitted, equivalent to
the default locale). dtime a flag indicating whether or not the bean context is in
design time mode.
Parameters: peer the bean context peer (null
permitted). locale the locale (null
permitted, equivalent to
the default locale). dtime a flag indicating whether or not the bean context is in
design time mode. visible initial value of the okToUseGui
flag.
Add a child to the bean context. A child can be a simple
Object
, a BeanContextChild
or another BeanContext
.
The children of a BeanContext
form a set. As
a result, this method returns false
if the given
object is already a child of this context.
If the child is a BeanContextChild
, or a proxy
for such a child, the setBeanContext()
method
is invoked on the child. If this operation is vetoed by the
child, via throwing a PropertyVetoException
,
then the current completion state of the add()
operation is rolled back and a IllegalStateException
is thrown. If the BeanContextChild
is successfully
added, then the context registers with its
PropertyChangeListener
and
VetoableChangeListener
for "beanContext" events.
If the child implements java.beans.Visibility
,
then its ability to use a GUI is set based on that of
this context.
A BeanContextMembershipEvent
is fired when the
child is successfully added to the bean context.
This method is synchronized over the global hierarchy lock.
Parameters: targetChild the child to add.
Returns: false if the child has already been added.
Throws: IllegalArgumentException if the child is null. IllegalStateException if the child vetos the setting of its context.
Returns: true if needsGui()
is true but the bean has been
told not to use it.
readObject
in the subclass.
Parameters: ois the input stream.
Throws: ClassNotFoundException if the class of an object being deserialized could not be found. IOException if an I/O error occurs.
writeObject
in the subclass.
Parameters: oos the output stream.
Throws: IOException if an I/O error occurs.
Parameters: child the deserialized child. bcsc the deserialized context wrapper for the child.
Parameters: ois the input stream (null
not permitted). coll the collection to add the objects to (null
not
permitted).
Throws: ClassNotFoundException IOException
See Also: BeanContextSupport
Returns: The bean context peer.
See Also: beanContextChildPeer
Parameters: child the child (null
permitted).
Returns: The bean context child.
Throws: IllegalArgumentException if child
implements both
the BeanContextChild and BeanContextProxy interfaces.
child
as an instance of
BeanContextMembershipListener, or null
if
child
does not implement that interface.
Parameters: child the child (null
permitted).
Returns: The child cast to BeanContextMembershipListener.
child
as an instance of
PropertyChangeListener, or null
if child
does not implement that interface.
Parameters: child the child (null
permitted).
Returns: The child cast to PropertyChangeListener.
child
as an instance of Serializable, or
null
if child
does not implement that
interface.
Parameters: child the child (null
permitted).
Returns: The child cast to Serializable.
child
as an instance of
VetoableChangeListener, or null
if child
does not implement that interface.
Parameters: child the child (null
permitted).
Returns: The child cast to VetoableChangeListener.
child
as an instance of Visibility, or
null
if child
does not implement that interface.
Parameters: child the child (null
permitted).
Returns: The child cast to Visibility.
java.beans.Beans
using the context's classloader.
Parameters: beanName the name of the class of bean to instantiate.
Throws: IOException if an I/O error occurs in loading the class. ClassNotFoundException if the class, beanName
,
can not be found.
true
if the BeanContext
is in
design time mode, and false
if it is in runtime mode.
Returns: A boolean.
See Also: BeanContextSupport
Returns: true if there are no children.
Returns: true if the context is being serialized.
Returns: false
Parameters: pce the property change event.
(ObjectInputStream, Collection
method
and then calls childDeserializedHook(Object, BCSChild)
for each child deserialized.
Parameters: oos the output stream.
Throws: IOException if an I/O error occurs.
remove(Object,boolean)
with a request for the setBeanContext()
method
of the child to be called (i.e. the second argument is true).
Parameters: targetChild the child to remove.
Removes a child from the bean context. A child can be a simple
Object
, a BeanContextChild
or another BeanContext
. If the given child is not
a child of this context, this method returns false
.
If the child is a BeanContextChild
, or a proxy
for such a child, the setBeanContext()
method
is invoked on the child (if specified). If this operation is vetoed
by the child, via throwing a PropertyVetoException
,
then the current completion state of the remove()
operation is rolled back and a IllegalStateException
is thrown. If the BeanContextChild
is successfully
removed, then the context deregisters with its
PropertyChangeListener
and
VetoableChangeListener
for "beanContext" events.
A BeanContextMembershipEvent
is fired when the
child is successfully removed from the bean context.
This method is synchronized over the global hierarchy lock.
Parameters: targetChild the child to remove. callChildSetBC true if the setBeanContext()
method of the child should be called.
Returns: false if the child doesn't exist.
Throws: IllegalArgumentException if the child is null. IllegalStateException if the child vetos the setting of its context.
null
) are simply ignored.
Parameters: oos the output stream (null
not permitted). coll the collection (null
not permitted).
Throws: IOException
See Also: BeanContextSupport
BeanContext
is in design mode. If the flag changes
value, a PropertyChangeEvent (with the property name 'designMode')
is sent to registered listeners. Note that the property name used here
does NOT match the specification in the DesignMode interface, we
match the reference implementation instead - see bug parade entry 4295174.
Parameters: dtime the new value for the flag.
See Also: isDesignTime
BeanContext
.
Returns: An array containing the children.
BeanContext
. If the array is too short to hold the
children, a new array is allocated and returned. If the array is too
long, it is padded with null
items at the end.
Parameters: array an array to populate (null
not permitted).
Parameters: pce the vetoable property change event fired.
(ObjectOutputStream, Collection
method.
Parameters: oos the output stream.
Throws: IOException if an I/O error occurs.