public interface BeanContextServices extends BeanContext, BeanContextServicesListener
The BeanContextServices interface provides a mechanism for a BeanContext to expose generic "services" to the BeanContextChild objects within.
globalHierarchyLock
PROPERTYNAME
boolean addService(Class serviceClass, BeanContextServiceProvider serviceProvider)
Adds a service to this BeanContext. BeanContextServiceProvider
s 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
.
serviceClass
- the service to addserviceProvider
- the BeanContextServiceProvider
associated with the servicevoid 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
.
serviceClass
- the service to revoke from this BeanContextServicesserviceProvider
- the BeanContextServiceProvider associated with this particular service that is being revokedrevokeCurrentServicesNow
- 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.boolean hasService(Class serviceClass)
Reports whether or not a given service is currently available from this context.
serviceClass
- the service in questionObject 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
.
child
- the BeanContextChild
associated with this requestrequestor
- the object requesting the serviceserviceClass
- class of the requested serviceserviceSelector
- the service dependent parameterbcsrl
- the BeanContextServiceRevokedListener
to notify if the service should later become revokednull
TooManyListenersException
- if there are too many listenersvoid 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
.
child
- the BeanContextChild
requestor
- the requestorservice
- the serviceIterator getCurrentServiceClasses()
Gets the currently available services for this context.
Iterator
consisting of the currently available servicesIterator getCurrentServiceSelectors(Class serviceClass)
Gets the list of service dependent service parameters (Service Selectors) for the specified service, by calling getCurrentServiceSelectors() on the underlying BeanContextServiceProvider.
serviceClass
- the specified servicevoid addBeanContextServicesListener(BeanContextServicesListener bcsl)
Adds a BeanContextServicesListener
to this BeanContext
bcsl
- the BeanContextServicesListener
to addvoid removeBeanContextServicesListener(BeanContextServicesListener bcsl)
Removes a BeanContextServicesListener
from this BeanContext
bcsl
- the BeanContextServicesListener
to remove from this context
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.