-
- All Superinterfaces:
-
BeanContext
,BeanContextChild
,BeanContextServiceRevokedListener
,BeanContextServicesListener
,Collection
,DesignMode
,EventListener
,Iterable<E>
,Visibility
- 所有已知实现类:
-
BeanContextServicesSupport
public interface BeanContextServices extends BeanContext, BeanContextServicesListener
BeanContextServices接口提供了一个机制,让BeanContext将通用的“服务”公开给它的BeanContextChild对象。
-
-
Field Summary
-
Fields inherited from interface java.beans.beancontext.BeanContext
globalHierarchyLock
-
Fields inherited from interface java.beans.DesignMode
PROPERTYNAME
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 void
addBeanContextServicesListener(BeanContextServicesListener bcsl)
在此BeanContext中添加一个BeanContextServicesListener
boolean
addService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider)
向这个BeanContext添加一个服务。Iterator<?>
getCurrentServiceClasses()
获取此上下文的当前可用服务。Iterator<?>
getCurrentServiceSelectors(Class<?> serviceClass)
通过调用底层BeanContextServiceProvider上的getCurrentServiceSelectors(),获取指定服务的服务相关服务参数(服务选择器)列表。Object
getService(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl)
ABeanContextChild
或与BeanContextChild
相关联的任何任意对象可以通过调用该方法从其嵌套BeanContextServices
获得对当前注册服务的引用。boolean
hasService(Class<?> serviceClass)
报告当前是否可以从此上下文获得给定的服务。void
releaseService(BeanContextChild child, Object requestor, Object service)
通过在底层的BeanContextServiceProvider
上调用releaseService(),释放一个BeanContextChild
(或任何与BeanContextChild关联的任意对象)对指定服务的BeanContextServiceProvider
。void
removeBeanContextServicesListener(BeanContextServicesListener bcsl)
删除一个BeanContextServicesListener
从这个BeanContext
void
revokeService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider, boolean revokeCurrentServicesNow)
希望从此上下文中删除当前注册的服务的BeanContextServiceProviders可以通过调用此方法来实现。-
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.beans.beancontext.BeanContextServiceRevokedListener
serviceRevoked
-
Methods inherited from interface java.beans.beancontext.BeanContextServicesListener
serviceAvailable
-
Methods inherited from interface java.util.Collection
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray
-
Methods inherited from interface java.beans.DesignMode
isDesignTime, setDesignTime
-
Methods inherited from interface java.beans.Visibility
avoidingGui, dontUseGui, needsGui, okToUseGui
-
-
-
-
方法详细信息
-
addService
boolean addService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider)
向这个BeanContext添加一个服务。BeanContextServiceProvider
调用这种方法来注册一个特定的服务与这个上下文。 如果服务先前没有被添加,该BeanContextServices
关联与服务BeanContextServiceProvider
并触发一个BeanContextServiceAvailableEvent
到所有当前已注册BeanContextServicesListeners
。 然后该方法返回true
,表示添加服务成功。 如果给定的服务已经被添加,这个方法只需返回false
。- 参数
-
serviceClass
- 要添加的服务 -
serviceProvider
- 与服务相关联的BeanContextServiceProvider
- 结果
- 如果服务成功添加,则为true,否则为false
-
revokeService
void revokeService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider, boolean revokeCurrentServicesNow)
希望从此上下文中删除当前注册的服务的BeanContextServiceProviders可以通过调用此方法来实现。 在服务的撤销,该BeanContextServices
触发一个BeanContextServiceRevokedEvent
其目前注册文件列表BeanContextServiceRevokedListeners
和BeanContextServicesListeners
。- 参数
-
serviceClass
- 从这个BeanContextServices撤销的服务 -
serviceProvider
- 与正在撤销的特定服务相关联的BeanContextServiceProvider -
revokeCurrentServicesNow
-值true
表示特殊情况,其中BeanContextServiceProvider
或者BeanContextServices
希望立即终止服务,指定服务当前所有未完成的引用。
-
hasService
boolean hasService(Class<?> serviceClass)
报告当前是否可以从此上下文获得给定的服务。- 参数
-
serviceClass
- 有问题的服务 - 结果
- 如果服务可用,则为true
-
getService
Object getService(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl) throws TooManyListenersException
ABeanContextChild
或与BeanContextChild
相关联的任何任意对象可以通过调用该方法从其嵌套BeanContextServices
获得对当前注册服务的引用。 调用时,此方法通过调用基础BeanContextServiceProvider
上的getService()方法获取服务。- 参数
-
child
- 与此请求相关联的BeanContextChild
-
requestor
- 请求服务的对象 -
serviceClass
- 所请求的服务的类 -
serviceSelector
- 服务相关参数 -
bcsrl
-BeanContextServiceRevokedListener
通知服务是否应该以后被撤销 - 结果
-
根据请求引用此上下文的命名服务或
null
- 异常
-
TooManyListenersException
- 如果听众太多了
-
releaseService
void releaseService(BeanContextChild child, Object requestor, Object service)
通过在底层的BeanContextServiceProvider
上调用releaseService(),释放一个BeanContextChild
(或任何与BeanContextChild关联的任意对象)对指定服务的BeanContextServiceProvider
。- 参数
-
child
-BeanContextChild
-
requestor
- 请求者 -
service
- 服务
-
getCurrentServiceClasses
Iterator<?> getCurrentServiceClasses()
获取此上下文的当前可用服务。- 结果
-
一个由目前可用的服务组成的
Iterator
-
getCurrentServiceSelectors
Iterator<?> getCurrentServiceSelectors(Class<?> serviceClass)
通过调用底层BeanContextServiceProvider上的getCurrentServiceSelectors(),获取指定服务的服务相关服务参数(服务选择器)列表。- 参数
-
serviceClass
- 指定的服务 - 结果
- 名为serviceClass的当前可用的服务选择器
-
addBeanContextServicesListener
void addBeanContextServicesListener(BeanContextServicesListener bcsl)
在此BeanContext中添加一个BeanContextServicesListener
- 参数
-
bcsl
- 要添加的BeanContextServicesListener
-
removeBeanContextServicesListener
void removeBeanContextServicesListener(BeanContextServicesListener bcsl)
删除一个BeanContextServicesListener
从这个BeanContext
- 参数
-
bcsl
- 从这个上下文中删除的BeanContextServicesListener
-
-