public class

BeanContextServicesSupport

extends BeanContextSupport
implements BeanContextServices
java.lang.Object
   ↳ java.beans.beancontext.BeanContextChildSupport
     ↳ java.beans.beancontext.BeanContextSupport
       ↳ java.beans.beancontext.BeanContextServicesSupport

Class Overview

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.

Summary

Nested Classes
class BeanContextServicesSupport.BCSSChild  
class BeanContextServicesSupport.BCSSProxyServiceProvider  
class BeanContextServicesSupport.BCSSServiceProvider subclasses may subclass this nested class to add behaviors for each BeanContextServicesProvider. 
[Expand]
Inherited Constants
From interface java.beans.DesignMode
Fields
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
[Expand]
Inherited Fields
From class java.beans.beancontext.BeanContextSupport
From class java.beans.beancontext.BeanContextChildSupport
From interface java.beans.beancontext.BeanContext
Public Constructors
BeanContextServicesSupport(BeanContextServices peer, Locale lcle, boolean dTime, boolean visible)

Construct a BeanContextServicesSupport instance

BeanContextServicesSupport(BeanContextServices peer, Locale lcle, boolean dtime)
Create an instance using the specified Locale and design mode.
BeanContextServicesSupport(BeanContextServices peer, Locale lcle)
Create an instance using the specified locale
BeanContextServicesSupport(BeanContextServices peer)
Create an instance with a peer
BeanContextServicesSupport()
Create an instance that is not a delegate of another object
Public Methods
void addBeanContextServicesListener(BeanContextServicesListener bcsl)
add a BeanContextServicesListener
boolean addService(Class serviceClass, BeanContextServiceProvider bcsp)
add a service
BeanContextServices getBeanContextServicesPeer()
Gets the BeanContextServices associated with this BeanContextServicesSupport.
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
synchronized 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.
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.
Protected Methods
boolean addService(Class serviceClass, BeanContextServiceProvider bcsp, boolean fireEvent)
add a service
synchronized void bcsPreDeserializationHook(ObjectInputStream ois)
called from BeanContextSupport readObject before it deserializes the children ...
synchronized void bcsPreSerializationHook(ObjectOutputStream oos)
called from BeanContextSupport writeObject before it serializes the children ...
void childJustRemovedHook(Object child, BeanContextSupport.BCSChild bcsc)
called from superclass child removal operations after a child has been successfully removed.
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.

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.
final void fireServiceAdded(Class serviceClass)
Fires a BeanContextServiceEvent notifying of a new service.
final void fireServiceAdded(BeanContextServiceAvailableEvent bcssae)
Fires a BeanContextServiceAvailableEvent indicating that a new service has become available.
final void fireServiceRevoked(Class serviceClass, boolean revokeNow)
Fires a BeanContextServiceRevokedEvent indicating that a particular service is no longer available.
final void fireServiceRevoked(BeanContextServiceRevokedEvent bcsre)
Fires a BeanContextServiceEvent notifying of a service being revoked.
final static BeanContextServicesListener getChildBeanContextServicesListener(Object child)
Gets the BeanContextServicesListener (if any) of the specified child.
synchronized void initializeBeanContextResources()
called from setBeanContext to notify a BeanContextChild to allocate resources obtained from the nesting BeanContext.
synchronized void releaseBeanContextResources()
called from setBeanContext to notify a BeanContextChild to release resources obtained from the nesting BeanContext.
[Expand]
Inherited Methods
From class java.beans.beancontext.BeanContextSupport
From class java.beans.beancontext.BeanContextChildSupport
From class java.lang.Object
From interface java.beans.DesignMode
From interface java.beans.PropertyChangeListener
From interface java.beans.VetoableChangeListener
From interface java.beans.Visibility
From interface java.beans.beancontext.BeanContext
From interface java.beans.beancontext.BeanContextChild
From interface java.beans.beancontext.BeanContextServiceRevokedListener
From interface java.beans.beancontext.BeanContextServices
From interface java.beans.beancontext.BeanContextServicesListener
From interface java.lang.Iterable
From interface java.util.Collection

Fields

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

Public Constructors

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 peer
lcle The current Locale for this BeanContext.
dTime The initial state, true if in design mode, false if runtime.
visible The initial visibility.

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 peer
lcle The current Locale for this BeanContext.
dtime The initial state, true if in design mode, false if runtime.

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 peer
lcle The current Locale for this BeanContext.

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

public BeanContextServicesSupport ()

Create an instance that is not a delegate of another object

Public Methods

public void addBeanContextServicesListener (BeanContextServicesListener bcsl)

add a BeanContextServicesListener

Parameters
bcsl the BeanContextServicesListener to add

public boolean addService (Class serviceClass, BeanContextServiceProvider bcsp)

add a service

Parameters
serviceClass the service to add
bcsp the BeanContextServiceProvider associated with the service

public BeanContextServices getBeanContextServicesPeer ()

Gets the BeanContextServices associated with this BeanContextServicesSupport.

Returns
  • the instance of BeanContext this object is providing the implementation for.

public Iterator getCurrentServiceClasses ()

Gets the currently available services for this context.

Returns
  • an iterator for all the currently registered service classes.

public 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.

Parameters
serviceClass the specified service
Returns
  • an iterator for all the currently available service selectors (if any) available for the specified service.

public Object getService (BeanContextChild child, Object requestor, Class serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl)

obtain a service which may be delegated

Parameters
child the BeanContextChild associated with this request
requestor the object requesting the service
serviceClass class of the requested service
serviceSelector the service dependent parameter
bcsrl the BeanContextServiceRevokedListener to notify if the service should later become revoked
Returns
  • a reference to this context's named Service as requested or null

public synchronized boolean hasService (Class serviceClass)

has a service, which may be delegated

Parameters
serviceClass the service in question
Returns
  • true if the service is available

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.

public void releaseService (BeanContextChild child, Object requestor, Object service)

release a service

Parameters
child the BeanContextChild
requestor the requestor
service the service

public void removeBeanContextServicesListener (BeanContextServicesListener bcsl)

remove a BeanContextServicesListener

Parameters
bcsl the BeanContextServicesListener to remove from this context

public void revokeService (Class serviceClass, BeanContextServiceProvider bcsp, boolean revokeCurrentServicesNow)

remove a service

Parameters
serviceClass the service to revoke from this BeanContextServices
bcsp the BeanContextServiceProvider associated with this particular service that is being revoked
revokeCurrentServicesNow a value of true indicates an exceptional circumstance where the BeanContextServiceProvider or BeanContextServices wishes to immediately terminate service to all currently outstanding references to the specified service.

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.

Parameters
bcssae The BeanContextServiceAvailableEvent fired as a result of a service becoming available

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.

Parameters
bcssre The BeanContextServiceRevokedEvent fired as a result of a service being revoked

Protected Methods

protected boolean addService (Class serviceClass, BeanContextServiceProvider bcsp, boolean fireEvent)

add a service

protected synchronized void bcsPreDeserializationHook (ObjectInputStream ois)

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

protected synchronized void bcsPreSerializationHook (ObjectOutputStream oos)

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

Throws
IOException

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.

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 of
peer the peer if the targetChild and peer are related by BeanContextProxy

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 final void fireServiceAdded (Class serviceClass)

Fires a BeanContextServiceEvent notifying of a new service.

protected final void fireServiceAdded (BeanContextServiceAvailableEvent bcssae)

Fires a BeanContextServiceAvailableEvent indicating that a new service has become available.

Parameters
bcssae the BeanContextServiceAvailableEvent

protected final void fireServiceRevoked (Class serviceClass, boolean revokeNow)

Fires a BeanContextServiceRevokedEvent indicating that a particular service is no longer available.

protected final void fireServiceRevoked (BeanContextServiceRevokedEvent bcsre)

Fires a BeanContextServiceEvent notifying of a service being revoked.

Parameters
bcsre the BeanContextServiceRevokedEvent

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

protected synchronized 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.

protected synchronized 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.