-
- All Superinterfaces:
BeanContext
,BeanContextChild
,BeanContextServiceRevokedListener
,BeanContextServicesListener
,Collection
,DesignMode
,EventListener
,Iterable
,Visibility
- All Known Implementing Classes:
BeanContextServicesSupport
public interface BeanContextServices extends BeanContext, BeanContextServicesListener
The BeanContextServices interface provides a mechanism for a BeanContext to expose generic "services" to the BeanContextChild objects within.
-
-
Field Summary
-
Fields declared in interface java.beans.beancontext.BeanContext
globalHierarchyLock
-
Fields declared in interface java.beans.DesignMode
PROPERTYNAME
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addBeanContextServicesListener(BeanContextServicesListener bcsl)
Adds aBeanContextServicesListener
to this BeanContextboolean
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)
ABeanContextChild
, or any arbitrary object associated with aBeanContextChild
, may obtain a reference to a currently registered service from its nestingBeanContextServices
via invocation of this method.boolean
hasService(Class<?> serviceClass)
Reports whether or not a given service is currently available from this context.void
releaseService(BeanContextChild child, Object requestor, Object service)
Releases aBeanContextChild
's (or any arbitrary object associated with a BeanContextChild) reference to the specified service by calling releaseService() on the underlyingBeanContextServiceProvider
.void
removeBeanContextServicesListener(BeanContextServicesListener bcsl)
Removes aBeanContextServicesListener
from thisBeanContext
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 declared in interface java.beans.beancontext.BeanContext
addBeanContextMembershipListener, getResource, getResourceAsStream, instantiateChild, removeBeanContextMembershipListener
-
Methods declared in interface java.beans.beancontext.BeanContextChild
addPropertyChangeListener, addVetoableChangeListener, getBeanContext, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext
-
Methods declared in interface java.beans.beancontext.BeanContextServiceRevokedListener
serviceRevoked
-
Methods declared in interface java.beans.beancontext.BeanContextServicesListener
serviceAvailable
-
Methods declared in interface java.util.Collection
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray
-
Methods declared in interface java.beans.DesignMode
isDesignTime, setDesignTime
-
Methods declared in interface java.beans.Visibility
avoidingGui, dontUseGui, needsGui, okToUseGui
-
-
-
-
Method Detail
-
addService
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, theBeanContextServices
associates the service with theBeanContextServiceProvider
and fires aBeanContextServiceAvailableEvent
to all currently registeredBeanContextServicesListeners
. The method then returnstrue
, indicating that the addition of the service was successful. If the given service has already been added, this method simply returnsfalse
.- Parameters:
serviceClass
- the service to addserviceProvider
- theBeanContextServiceProvider
associated with the service- Returns:
- true if the service was successful added, false otherwise
-
revokeService
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, theBeanContextServices
fires aBeanContextServiceRevokedEvent
to its list of currently registeredBeanContextServiceRevokedListeners
andBeanContextServicesListeners
.- Parameters:
serviceClass
- the service to revoke from this BeanContextServicesserviceProvider
- the BeanContextServiceProvider associated with this particular service that is being revokedrevokeCurrentServicesNow
- a value oftrue
indicates an exceptional circumstance where theBeanContextServiceProvider
orBeanContextServices
wishes to immediately terminate service to all currently outstanding references to the specified service.
-
hasService
boolean hasService(Class<?> serviceClass)
Reports whether or not a given service is currently available from this context.- Parameters:
serviceClass
- the service in question- Returns:
- true if the service is available
-
getService
Object getService(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl) throws TooManyListenersException
ABeanContextChild
, or any arbitrary object associated with aBeanContextChild
, may obtain a reference to a currently registered service from its nestingBeanContextServices
via invocation of this method. When invoked, this method gets the service by calling the getService() method on the underlyingBeanContextServiceProvider
.- Parameters:
child
- theBeanContextChild
associated with this requestrequestor
- the object requesting the serviceserviceClass
- class of the requested serviceserviceSelector
- the service dependent parameterbcsrl
- theBeanContextServiceRevokedListener
to notify if the service should later become revoked- Returns:
- a reference to this context's named
Service as requested or
null
- Throws:
TooManyListenersException
- if there are too many listeners
-
releaseService
void releaseService(BeanContextChild child, Object requestor, Object service)
Releases aBeanContextChild
's (or any arbitrary object associated with a BeanContextChild) reference to the specified service by calling releaseService() on the underlyingBeanContextServiceProvider
.- Parameters:
child
- theBeanContextChild
requestor
- the requestorservice
- the service
-
getCurrentServiceClasses
Iterator<?> getCurrentServiceClasses()
Gets the currently available services for this context.- Returns:
- an
Iterator
consisting of the currently available services
-
getCurrentServiceSelectors
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:
- the currently available service selectors for the named serviceClass
-
addBeanContextServicesListener
void addBeanContextServicesListener(BeanContextServicesListener bcsl)
Adds aBeanContextServicesListener
to this BeanContext- Parameters:
bcsl
- theBeanContextServicesListener
to add
-
removeBeanContextServicesListener
void removeBeanContextServicesListener(BeanContextServicesListener bcsl)
Removes aBeanContextServicesListener
from thisBeanContext
- Parameters:
bcsl
- theBeanContextServicesListener
to remove from this context
-
-