java.beans.beancontext
Class BeanContextServicesSupport
java.lang.Objectjava.beans.beancontext.BeanContextChildSupport
java.beans.beancontext.BeanContextSupport
java.beans.beancontext.BeanContextServicesSupport
- All Implemented Interfaces:
- BeanContext, BeanContextChild, BeanContextServiceRevokedListener, BeanContextServices, BeanContextServicesListener, DesignMode, PropertyChangeListener, VetoableChangeListener, Visibility, Serializable, Iterable, Collection, EventListener
public class BeanContextServicesSupport
- extends BeanContextSupport
- implements BeanContextServices
- extends BeanContextSupport
This helper class provides a utility implementation of the java.beans.beancontext.BeanContextServices interface.
Since this class directly implements the BeanContextServices interface, the class can, and is intended to be used either by subclassing this implementation, or via delegation of an instance of this class from another through the BeanContextProxy interface.
- Since:
- 1.2
- See Also:
- Serialized Form
| Nested Class Summary | |
|---|---|
protected class |
BeanContextServicesSupport.BCSSChild
|
protected class |
BeanContextServicesSupport.BCSSProxyServiceProvider
|
protected static class |
BeanContextServicesSupport.BCSSServiceProvider
subclasses may subclass this nested class to add behaviors for each BeanContextServicesProvider. |
| Nested classes/interfaces inherited from class java.beans.beancontext.BeanContextSupport |
|---|
BeanContextSupport.BCSChild, BeanContextSupport.BCSIterator |
| Field Summary | |
|---|---|
protected ArrayList |
bcsListeners
List of BeanContextServicesListener objects. |
protected BeanContextServicesSupport.BCSSProxyServiceProvider |
proxy
Delegate for the BeanContextServiceProvider. |
protected int |
serializable
The number of instances of a serializable BeanContextServceProvider. |
protected HashMap |
services
all accesses to the protected transient HashMap services
field should be synchronized on that object |
| Fields inherited from class java.beans.beancontext.BeanContextSupport |
|---|
bcmListeners, children, designTime, locale, okToUseGui |
| Fields inherited from class java.beans.beancontext.BeanContextChildSupport |
|---|
beanContext, beanContextChildPeer, pcSupport, rejectedSetBCOnce, vcSupport |
| Fields inherited from interface java.beans.beancontext.BeanContext |
|---|
globalHierarchyLock |
| Fields inherited from interface java.beans.DesignMode |
|---|
PROPERTYNAME |
| Constructor Summary | |
|---|---|
BeanContextServicesSupport()
Create an instance that is not a delegate of another object |
|
BeanContextServicesSupport(BeanContextServices peer)
Create an instance with a peer |
|
BeanContextServicesSupport(BeanContextServices peer,
Locale lcle)
Create an instance using the specified locale |
|
BeanContextServicesSupport(BeanContextServices peer,
Locale lcle,
boolean dtime)
Create an instance using the specified Locale and design mode. |
|
BeanContextServicesSupport(BeanContextServices peer,
Locale lcle,
boolean dTime,
boolean visible)
Construct a BeanContextServicesSupport instance |
|
| Method Summary | |
|---|---|
void |
addBeanContextServicesListener(BeanContextServicesListener bcsl)
add a BeanContextServicesListener |
boolean |
addService(Class serviceClass,
BeanContextServiceProvider bcsp)
add a service |
protected boolean |
addService(Class serviceClass,
BeanContextServiceProvider bcsp,
boolean fireEvent)
add a service |
protected void |
bcsPreDeserializationHook(ObjectInputStream ois)
called from BeanContextSupport readObject before it deserializes the children ... |
protected void |
bcsPreSerializationHook(ObjectOutputStream oos)
called from BeanContextSupport writeObject before it serializes the children ... |
protected void |
childJustRemovedHook(Object child,
BeanContextSupport.BCSChild bcsc)
called from superclass child removal operations after a child has been successfully removed. |
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 BeanContextServicesSupport.BCSSServiceProvider |
createBCSSServiceProvider(Class sc,
BeanContextServiceProvider bcsp)
subclasses can override this method to create new subclasses of BCSSServiceProvider without having to overrride addService() in order to instantiate. |
protected void |
fireServiceAdded(BeanContextServiceAvailableEvent bcssae)
Fires a BeanContextServiceAvailableEvent indicating that a new service has become available. |
protected void |
fireServiceAdded(Class serviceClass)
Fires a BeanContextServiceEvent notifying of a new service. |
protected void |
fireServiceRevoked(BeanContextServiceRevokedEvent bcsre)
Fires a BeanContextServiceEvent notifying of a service being revoked. |
protected void |
fireServiceRevoked(Class serviceClass,
boolean revokeNow)
Fires a BeanContextServiceRevokedEvent indicating that a particular service is no longer available. |
BeanContextServices |
getBeanContextServicesPeer()
Gets the BeanContextServices associated with this BeanContextServicesSupport. |
protected static BeanContextServicesListener |
getChildBeanContextServicesListener(Object child)
Gets the BeanContextServicesListener (if any) of the specified child. |
Iterator |
getCurrentServiceClasses()
Gets the currently available services for this context. |
Iterator |
getCurrentServiceSelectors(Class serviceClass)
Gets the list of service dependent service parameters (Service Selectors) for the specified service, by calling getCurrentServiceSelectors() on the underlying BeanContextServiceProvider. |
Object |
getService(BeanContextChild child,
Object requestor,
Class serviceClass,
Object serviceSelector,
BeanContextServiceRevokedListener bcsrl)
obtain a service which may be delegated |
boolean |
hasService(Class serviceClass)
has a service, which may be delegated |
void |
initialize()
called by BeanContextSupport superclass during construction and deserialization to initialize subclass transient state. |
protected void |
initializeBeanContextResources()
called from setBeanContext to notify a BeanContextChild to allocate resources obtained from the nesting BeanContext. |
protected void |
releaseBeanContextResources()
called from setBeanContext to notify a BeanContextChild to release resources obtained from the nesting BeanContext. |
void |
releaseService(BeanContextChild child,
Object requestor,
Object service)
release a service |
void |
removeBeanContextServicesListener(BeanContextServicesListener bcsl)
remove a BeanContextServicesListener |
void |
revokeService(Class serviceClass,
BeanContextServiceProvider bcsp,
boolean revokeCurrentServicesNow)
remove a service |
void |
serviceAvailable(BeanContextServiceAvailableEvent bcssae)
BeanContextServicesListener callback, propagates event to all currently registered listeners and BeanContextServices children, if this BeanContextService does not already implement this service itself. |
void |
serviceRevoked(BeanContextServiceRevokedEvent bcssre)
BeanContextServicesListener callback, propagates event to all currently registered listeners and BeanContextServices children, if this BeanContextService does not already implement this service itself. |
| Methods inherited from class java.beans.beancontext.BeanContextChildSupport |
|---|
addPropertyChangeListener, addVetoableChangeListener, firePropertyChange, fireVetoableChange, getBeanContext, getBeanContextChildPeer, isDelegated, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext, validatePendingSetBeanContext |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface java.beans.beancontext.BeanContext |
|---|
addBeanContextMembershipListener, getResource, getResourceAsStream, instantiateChild, removeBeanContextMembershipListener |
| Methods inherited from interface java.beans.beancontext.BeanContextChild |
|---|
addPropertyChangeListener, addVetoableChangeListener, getBeanContext, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext |
| Methods inherited from interface java.util.Collection |
|---|
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray |
| Methods inherited from interface java.beans.DesignMode |
|---|
isDesignTime, setDesignTime |
| Methods inherited from interface java.beans.Visibility |
|---|
avoidingGui, dontUseGui, needsGui, okToUseGui |
| Field Detail |
|---|
services
protected transient HashMap services
- all accesses to the
protected transient HashMap servicesfield should be synchronized on that object
serializable
protected transient int serializable
- The number of instances of a serializable BeanContextServceProvider.
proxy
protected transient BeanContextServicesSupport.BCSSProxyServiceProvider proxy
- Delegate for the BeanContextServiceProvider.
bcsListeners
protected transient ArrayList bcsListeners
- List of BeanContextServicesListener objects.
| Constructor Detail |
|---|
BeanContextServicesSupport
public BeanContextServicesSupport(BeanContextServices peer, Locale lcle, boolean dTime, boolean visible)
Construct a BeanContextServicesSupport instance
- Parameters:
peer- The peer BeanContext we are supplying an implementation for, if null the this object is its own peerlcle- The current Locale for this BeanContext.dtime- The initial state, true if in design mode, false if runtime.visible- The initial visibility.
BeanContextServicesSupport
public BeanContextServicesSupport(BeanContextServices peer, Locale lcle, boolean dtime)
- Create an instance using the specified Locale and design mode.
- Parameters:
peer- The peer BeanContext we are supplying an implementation for, if null the this object is its own peerlcle- The current Locale for this BeanContext.dtime- The initial state, true if in design mode, false if runtime.
BeanContextServicesSupport
public BeanContextServicesSupport(BeanContextServices peer, Locale lcle)
- Create an instance using the specified locale
- Parameters:
peer- The peer BeanContext we are supplying an implementation for, if null the this object is its own peerlcle- The current Locale for this BeanContext.
BeanContextServicesSupport
public BeanContextServicesSupport(BeanContextServices peer)
- Create an instance with a peer
- Parameters:
peer- The peer BeanContext we are supplying an implementation for, if null the this object is its own peer
BeanContextServicesSupport
public BeanContextServicesSupport()
- Create an instance that is not a delegate of another object
| Method Detail |
|---|
initialize
public void initialize()
- called by BeanContextSupport superclass during construction and
deserialization to initialize subclass transient state.
subclasses may envelope this method, but should not override it or
call it directly.
- Overrides:
initializein classBeanContextSupport
getBeanContextServicesPeer
public BeanContextServices getBeanContextServicesPeer()
- Gets the BeanContextServices associated with this
BeanContextServicesSupport.
- Returns:
- the instance of BeanContext this object is providing the implementation for.
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.
- Overrides:
createBCSChildin classBeanContextSupport
- Parameters:
targetChild- the child to create the Child on behalf ofpeer- the peer if the targetChild and peer are related by BeanContextProxy
createBCSSServiceProvider
protected BeanContextServicesSupport.BCSSServiceProvider createBCSSServiceProvider(Class sc, BeanContextServiceProvider bcsp)
- subclasses can override this method to create new subclasses of
BCSSServiceProvider without having to overrride addService() in
order to instantiate.
addBeanContextServicesListener
public void addBeanContextServicesListener(BeanContextServicesListener bcsl)
- add a BeanContextServicesListener
- Specified by:
addBeanContextServicesListenerin interfaceBeanContextServices
- Parameters:
bcsl- theBeanContextServicesListenerto add
removeBeanContextServicesListener
public void removeBeanContextServicesListener(BeanContextServicesListener bcsl)
- remove a BeanContextServicesListener
- Specified by:
removeBeanContextServicesListenerin interfaceBeanContextServices
- Parameters:
bcsl- theBeanContextServicesListenerto remove from this context
addService
public boolean addService(Class serviceClass, BeanContextServiceProvider bcsp)
- add a service
- Specified by:
addServicein interfaceBeanContextServices
- Parameters:
serviceClass- the service to addbcsp- theBeanContextServiceProviderassociated with the service
addService
protected boolean addService(Class serviceClass, BeanContextServiceProvider bcsp, boolean fireEvent)
- add a service
revokeService
public void revokeService(Class serviceClass, BeanContextServiceProvider bcsp, boolean revokeCurrentServicesNow)
- remove a service
- Specified by:
revokeServicein interfaceBeanContextServices
- Parameters:
serviceClass- the service to revoke from this BeanContextServicesbcsp- the BeanContextServiceProvider associated with this particular service that is being revokedrevokeCurrentServicesNow- a value oftrueindicates an exceptional circumstance where theBeanContextServiceProviderorBeanContextServiceswishes to immediately terminate service to all currently outstanding references to the specified service.
hasService
public boolean hasService(Class serviceClass)
- has a service, which may be delegated
- Specified by:
hasServicein interfaceBeanContextServices
- Parameters:
serviceClass- the service in question- Returns:
- true if the service is available
getService
public Object getService(BeanContextChild child, Object requestor, Class serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl) throws TooManyListenersException
- obtain a service which may be delegated
- Specified by:
getServicein interfaceBeanContextServices
- Parameters:
child- theBeanContextChildassociated with this requestrequestor- the object requesting the serviceserviceClass- class of the requested serviceserviceSelector- the service dependent parameterbcsrl- theBeanContextServiceRevokedListenerto notify if the service should later become revoked- Returns:
- a reference to this context's named
Service as requested or
null - Throws:
TooManyListenersException
releaseService
public void releaseService(BeanContextChild child, Object requestor, Object service)
- release a service
- Specified by:
releaseServicein interfaceBeanContextServices
- Parameters:
child- theBeanContextChildrequestor- the requestorservice- the service
getCurrentServiceClasses
public Iterator getCurrentServiceClasses()
- Description copied from interface:
BeanContextServices - Gets the currently available services for this context.
- Specified by:
getCurrentServiceClassesin interfaceBeanContextServices
- Returns:
- an iterator for all the currently registered service classes.
getCurrentServiceSelectors
public Iterator getCurrentServiceSelectors(Class serviceClass)
- Description copied from interface:
BeanContextServices - Gets the list of service dependent service parameters
(Service Selectors) for the specified service, by
calling getCurrentServiceSelectors() on the
underlying BeanContextServiceProvider.
- Specified by:
getCurrentServiceSelectorsin interfaceBeanContextServices
- Parameters:
serviceClass- the specified service- Returns:
- an iterator for all the currently available service selectors (if any) available for the specified service.
serviceAvailable
public void serviceAvailable(BeanContextServiceAvailableEvent bcssae)
- BeanContextServicesListener callback, propagates event to all
currently registered listeners and BeanContextServices children,
if this BeanContextService does not already implement this service
itself.
subclasses may override or envelope this method to implement their
own propagation semantics.
- Specified by:
serviceAvailablein interfaceBeanContextServicesListener- Overrides:
serviceAvailablein classBeanContextChildSupport
- Parameters:
bcssae- The BeanContextServiceAvailableEvent fired as a result of a service becoming available
serviceRevoked
public void serviceRevoked(BeanContextServiceRevokedEvent bcssre)
- BeanContextServicesListener callback, propagates event to all
currently registered listeners and BeanContextServices children,
if this BeanContextService does not already implement this service
itself.
subclasses may override or envelope this method to implement their
own propagation semantics.
- Specified by:
serviceRevokedin interfaceBeanContextServiceRevokedListener- Overrides:
serviceRevokedin classBeanContextChildSupport
- Parameters:
bcssre- TheBeanContextServiceRevokedEventfired as a result of a service being revoked
getChildBeanContextServicesListener
protected static final BeanContextServicesListener getChildBeanContextServicesListener(Object child)
- Gets the BeanContextServicesListener (if any) of the specified
child.
- Parameters:
child- the specified child- Returns:
- the BeanContextServicesListener (if any) of the specified child
childJustRemovedHook
protected void childJustRemovedHook(Object child, BeanContextSupport.BCSChild bcsc)
- called from superclass child removal operations after a child
has been successfully removed. called with child synchronized.
This subclass uses this hook to immediately revoke any services
being used by this child if it is a BeanContextChild.
subclasses may envelope this method in order to implement their
own child removal side-effects.
- Overrides:
childJustRemovedHookin classBeanContextSupport
releaseBeanContextResources
protected void releaseBeanContextResources()
- called from setBeanContext to notify a BeanContextChild
to release resources obtained from the nesting BeanContext.
This method revokes any services obtained from its parent.
subclasses may envelope this method to implement their own semantics.
- Overrides:
releaseBeanContextResourcesin classBeanContextChildSupport
initializeBeanContextResources
protected void initializeBeanContextResources()
- called from setBeanContext to notify a BeanContextChild
to allocate resources obtained from the nesting BeanContext.
subclasses may envelope this method to implement their own semantics.
- Overrides:
initializeBeanContextResourcesin classBeanContextChildSupport
fireServiceAdded
protected final void fireServiceAdded(Class serviceClass)
- Fires a BeanContextServiceEvent notifying of a new service.
fireServiceAdded
protected final void fireServiceAdded(BeanContextServiceAvailableEvent bcssae)
- Fires a BeanContextServiceAvailableEvent indicating that a new
service has become available.
- Parameters:
bcssae- the BeanContextServiceAvailableEvent
fireServiceRevoked
protected final void fireServiceRevoked(BeanContextServiceRevokedEvent bcsre)
- Fires a BeanContextServiceEvent notifying of a service being revoked.
- Parameters:
bcsre- the BeanContextServiceRevokedEvent
fireServiceRevoked
protected final void fireServiceRevoked(Class serviceClass, boolean revokeNow)
- Fires a BeanContextServiceRevokedEvent
indicating that a particular service is
no longer available.
bcsPreSerializationHook
protected void bcsPreSerializationHook(ObjectOutputStream oos) throws IOException
- called from BeanContextSupport writeObject before it serializes the
children ...
This class will serialize any Serializable BeanContextServiceProviders
herein.
subclasses may envelope this method to insert their own serialization
processing that has to occur prior to serialization of the children
- Overrides:
bcsPreSerializationHookin classBeanContextSupport
- Throws:
IOException
bcsPreDeserializationHook
protected void bcsPreDeserializationHook(ObjectInputStream ois) throws IOException, ClassNotFoundException
- called from BeanContextSupport readObject before it deserializes the
children ...
This class will deserialize any Serializable BeanContextServiceProviders
serialized earlier thus making them available to the children when they
deserialized.
subclasses may envelope this method to insert their own serialization
processing that has to occur prior to serialization of the children
- Overrides:
bcsPreDeserializationHookin classBeanContextSupport
- Throws:
IOExceptionClassNotFoundException
