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 {@link #serialize(ObjectOutputStream,
Collection)}) 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 {@link BeanContextChild} implementation for the given child.
|
protected static BeanContextMembershipListener | getChildBeanContextMembershipListener(Object child)
Returns child as an instance of
{@link BeanContextMembershipListener}, or null if
child does not implement that interface.
|
protected static PropertyChangeListener | getChildPropertyChangeListener(Object child)
Returns child as an instance of
{@link PropertyChangeListener}, or null if child
does not implement that interface.
|
protected static Serializable | getChildSerializable(Object child)
Returns child as an instance of {@link Serializable}, or
null if child does not implement that
interface.
|
protected static VetoableChangeListener | getChildVetoableChangeListener(Object child)
Returns child as an instance of
{@link VetoableChangeListener}, or null if child
does not implement that interface.
|
protected static Visibility | getChildVisibility(Object child)
Returns child as an instance of {@link Visibility}, or
null if child does not implement that interface.
|
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
{@link #deserialize(ObjectInputStream, Collection} method
and then calls {@link 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
{@link #serialize(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 {@link BeanContextChild} and {@link BeanContextProxy} interfaces.
child
as an instance of
{@link BeanContextMembershipListener}, or null
if
child
does not implement that interface.
Parameters: child the child (null
permitted).
Returns: The child cast to {@link BeanContextMembershipListener}.
child
as an instance of
{@link PropertyChangeListener}, or null
if child
does not implement that interface.
Parameters: child the child (null
permitted).
Returns: The child cast to {@link PropertyChangeListener}.
child
as an instance of {@link Serializable}, or
null
if child
does not implement that
interface.
Parameters: child the child (null
permitted).
Returns: The child cast to {@link Serializable}.
child
as an instance of
{@link VetoableChangeListener}, or null
if child
does not implement that interface.
Parameters: child the child (null
permitted).
Returns: The child cast to {@link VetoableChangeListener}.
child
as an instance of {@link Visibility}, or
null
if child
does not implement that interface.
Parameters: child the child (null
permitted).
Returns: The child cast to {@link 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.
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 {@link 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 {@link 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.
Parameters: oos the output stream.
Throws: IOException if an I/O error occurs.