org.apache.beehive.controls.runtime.webcontext
Class ControlBeanContextServicesSupport

Object
  extended by ControlBeanContextChildSupport
      extended by ControlBeanContextSupport
          extended by ControlBeanContextServicesSupport
All Implemented Interfaces:
BeanContext, BeanContextChild, BeanContextServiceRevokedListener, BeanContextServices, BeanContextServicesListener, DesignMode, PropertyChangeListener, VetoableChangeListener, Visibility, Serializable, Iterable, Collection, EventListener

public class ControlBeanContextServicesSupport
extends ControlBeanContextSupport
implements BeanContextServices

Implementation of BeanContextServices for Beehive Controls. Assumes single threaded usage.

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface BeanContext
globalHierarchyLock
 
Fields inherited from interface DesignMode
PROPERTYNAME
 
Constructor Summary
ControlBeanContextServicesSupport()
          Constructor.
ControlBeanContextServicesSupport(BeanContextServices peer)
          Constructor which allows delegate to be passed in.
 
Method Summary
 void addBeanContextServicesListener(BeanContextServicesListener bcsl)
          Adds a BeanContextServicesListener to this BeanContext.
 boolean addService(Class serviceClass, BeanContextServiceProvider serviceProvider)
          Adds a service to this BeanContext.
 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)
          A BeanContextChild, or any arbitrary object associated with a BeanContextChild, may obtain a reference to a currently registered service from its nesting BeanContextServices via invocation of this method.
 boolean hasService(Class serviceClass)
          Reports whether or not a given service is currently available from this context.
protected  void initialize()
          Initialize data structures.
protected  void releaseBeanContextResources()
          Invoked when all resources obtained from the current nested bean context need to be released.
 void releaseService(BeanContextChild child, Object requestor, Object service)
          Releases a BeanContextChild's (or any arbitrary object associated with a BeanContextChild) reference to the specified service by calling releaseService() on the underlying BeanContextServiceProvider.
 void removeBeanContextServicesListener(BeanContextServicesListener bcsl)
          Removes a BeanContextServicesListener from this BeanContext.
 void revokeService(Class serviceClass, BeanContextServiceProvider serviceProvider, boolean revokeCurrentServicesNow)
          BeanContextServiceProviders wishing to remove a currently registered service from this context may do so via invocation of this method.
 
Methods inherited from class ControlBeanContextSupport
add, addAll, addBeanContextMembershipListener, avoidingGui, clear, contains, containsAll, dontUseGui, getResource, getResourceAsStream, instantiateChild, isDesignTime, isEmpty, iterator, needsGui, okToUseGui, propertyChange, readChildren, remove, removeAll, removeBeanContextMembershipListener, retainAll, setDesignTime, size, toArray, toArray, vetoableChange, writeChildren
 
Methods inherited from class ControlBeanContextChildSupport
addPropertyChangeListener, addVetoableChangeListener, firePropertyChange, getBeanContext, getPeer, removePropertyChangeListener, removeVetoableChangeListener, serviceAvailable, serviceRevoked, setBeanContext
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface BeanContext
addBeanContextMembershipListener, getResource, getResourceAsStream, instantiateChild, removeBeanContextMembershipListener
 
Methods inherited from interface BeanContextChild
addPropertyChangeListener, addVetoableChangeListener, getBeanContext, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext
 
Methods inherited from interface Collection
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 
Methods inherited from interface DesignMode
isDesignTime, setDesignTime
 
Methods inherited from interface Visibility
avoidingGui, dontUseGui, needsGui, okToUseGui
 
Methods inherited from interface BeanContextServicesListener
serviceAvailable
 
Methods inherited from interface BeanContextServiceRevokedListener
serviceRevoked
 

Constructor Detail

ControlBeanContextServicesSupport

public ControlBeanContextServicesSupport()
Constructor.


ControlBeanContextServicesSupport

public ControlBeanContextServicesSupport(BeanContextServices peer)
Constructor which allows delegate to be passed in.

Parameters:
peer - BeanContextServices peer.
Method Detail

addService

public boolean addService(Class serviceClass,
                          BeanContextServiceProvider serviceProvider)
Adds a service to this BeanContext. BeanContextServiceProviders call this method to register a particular service with this context. If the service has not previously been added, the BeanContextServices associates the service with the BeanContextServiceProvider and fires a BeanContextServiceAvailableEvent to all currently registered BeanContextServicesListeners. The method then returns true, indicating that the addition of the service was successful. If the given service has already been added, this method simply returns false.

Specified by:
addService in interface BeanContextServices
Parameters:
serviceClass - the service to add
serviceProvider - the BeanContextServiceProvider associated with the service
Returns:
true if service was added.

revokeService

public void revokeService(Class serviceClass,
                          BeanContextServiceProvider serviceProvider,
                          boolean revokeCurrentServicesNow)
BeanContextServiceProviders wishing to remove a currently registered service from this context may do so via invocation of this method. Upon revocation of the service, the BeanContextServices fires a BeanContextServiceRevokedEvent to its list of currently registered BeanContextServiceRevokedListeners and BeanContextServicesListeners.

Specified by:
revokeService in interface BeanContextServices
Parameters:
serviceClass - the service to revoke from this BeanContextServices
serviceProvider - 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.

hasService

public boolean hasService(Class serviceClass)
Reports whether or not a given service is currently available from this context.

Specified by:
hasService in interface BeanContextServices
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
A BeanContextChild, or any arbitrary object associated with a BeanContextChild, may obtain a reference to a currently registered service from its nesting BeanContextServices via invocation of this method. When invoked, this method gets the service by calling the getService() method on the underlying BeanContextServiceProvider.

Specified by:
getService in interface BeanContextServices
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
Throws:
TooManyListenersException

releaseService

public void releaseService(BeanContextChild child,
                           Object requestor,
                           Object service)
Releases a BeanContextChild's (or any arbitrary object associated with a BeanContextChild) reference to the specified service by calling releaseService() on the underlying BeanContextServiceProvider.

Specified by:
releaseService in interface BeanContextServices
Parameters:
child - the BeanContextChild
requestor - the requestor
service - the service

getCurrentServiceClasses

public Iterator getCurrentServiceClasses()
Gets the currently available services for this context.

Specified by:
getCurrentServiceClasses in interface BeanContextServices
Returns:
an Iterator consisting of the currently available services

getCurrentServiceSelectors

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.

Specified by:
getCurrentServiceSelectors in interface BeanContextServices
Parameters:
serviceClass - the specified service
Returns:
the currently available service selectors for the named serviceClass

addBeanContextServicesListener

public void addBeanContextServicesListener(BeanContextServicesListener bcsl)
Adds a BeanContextServicesListener to this BeanContext.

Specified by:
addBeanContextServicesListener in interface BeanContextServices
Parameters:
bcsl - the BeanContextServicesListener to add

removeBeanContextServicesListener

public void removeBeanContextServicesListener(BeanContextServicesListener bcsl)
Removes a BeanContextServicesListener from this BeanContext.

Specified by:
removeBeanContextServicesListener in interface BeanContextServices
Parameters:
bcsl - the BeanContextServicesListener to remove from this context

releaseBeanContextResources

protected void releaseBeanContextResources()
Invoked when all resources obtained from the current nested bean context need to be released. For BeanContextServices this means revoke any services obtained from a delegate services provider. Typically invoked when the parent context is changed.

Overrides:
releaseBeanContextResources in class ControlBeanContextChildSupport

initialize

protected void initialize()
Initialize data structures.

Overrides:
initialize in class ControlBeanContextSupport