- 所有超级接口:
-
BeanContext,BeanContextChild,BeanContextServiceRevokedListener,BeanContextServicesListener,Collection,DesignMode,EventListener,Iterable,Visibility
- 所有已知实现类:
-
BeanContextServicesSupport
BeanContextServices接口为BeanContext提供了一种机制,用于向其中的BeanContextChild对象公开通用的“服务”。
-
Field Summary
Fields declared in interface java.beans.beancontext.BeanContext
globalHierarchyLockFields declared in interface java.beans.DesignMode
PROPERTYNAME -
Method Summary
Modifier and TypeMethodDescriptionvoid向此BeanContext添加一个BeanContextServicesListenerbooleanaddService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider) 向此BeanContext添加一个服务。Iterator<?> 获取此上下文的当前可用服务。Iterator<?> getCurrentServiceSelectors(Class<?> serviceClass) 通过调用基础BeanContextServiceProvider上的getCurrentServiceSelectors()方法,获取指定服务的服务相关服务参数(服务选择器)列表。getService(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl) 一个BeanContextChild,或与BeanContextChild关联的任意对象,可以通过调用此方法从其嵌套的BeanContextServices获取对当前注册服务的引用。booleanhasService(Class<?> serviceClass) 报告给定服务当前是否在此上下文中可用。voidreleaseService(BeanContextChild child, Object requestor, Object service) 通过调用基础BeanContextServiceProvider上的releaseService()方法,释放BeanContextChild(或与BeanContextChild关联的任意对象)对指定服务的引用。void从此BeanContext中移除一个BeanContextServicesListenervoidrevokeService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider, boolean revokeCurrentServicesNow) 希望从此上下文中移除当前注册服务的BeanContextServiceProviders可以通过调用此方法来实现。Methods declared in interface java.beans.beancontext.BeanContext
addBeanContextMembershipListener, getResource, getResourceAsStream, instantiateChild, removeBeanContextMembershipListenerMethods declared in interface java.beans.beancontext.BeanContextChild
addPropertyChangeListener, addVetoableChangeListener, getBeanContext, removePropertyChangeListener, removeVetoableChangeListener, setBeanContextMethods declared in interface java.beans.beancontext.BeanContextServiceRevokedListener
serviceRevokedMethods declared in interface java.beans.beancontext.BeanContextServicesListener
serviceAvailableMethods 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, toArrayMethods declared in interface java.beans.DesignMode
isDesignTime, setDesignTimeMethods declared in interface java.beans.Visibility
avoidingGui, dontUseGui, needsGui, okToUseGui
-
Method Details
-
addService
向此BeanContext添加一个服务。BeanContextServiceProvider调用此方法来向此上下文注册特定服务。如果服务尚未添加,则BeanContextServices将服务与BeanContextServiceProvider关联,并向所有当前注册的BeanContextServicesListeners触发BeanContextServiceAvailableEvent。然后该方法返回true,表示服务添加成功。如果给定服务已经添加,则此方法简单地返回false。- 参数:
-
serviceClass- 要添加的服务 -
serviceProvider- 与服务关联的BeanContextServiceProvider - 返回:
- 如果服务成功添加,则返回true,否则返回false
-
revokeService
void revokeService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider, boolean revokeCurrentServicesNow) 希望从此上下文中移除当前注册服务的BeanContextServiceProviders可以通过调用此方法来实现。在撤销服务时,BeanContextServices向其当前注册的BeanContextServiceRevokedListeners和BeanContextServicesListeners列表触发BeanContextServiceRevokedEvent。- 参数:
-
serviceClass- 要从此BeanContextServices中撤销的服务 -
serviceProvider- 与正在撤销的特定服务关联的BeanContextServiceProvider -
revokeCurrentServicesNow- 值为true表示特殊情况,其中BeanContextServiceProvider或BeanContextServices希望立即终止对指定服务的所有当前未完成引用的服务。
-
hasService
报告给定服务当前是否在此上下文中可用。- 参数:
-
serviceClass- 要查询的服务 - 返回:
- 如果服务可用,则返回true
-
getService
Object getService(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl) throws TooManyListenersException 一个BeanContextChild,或与BeanContextChild关联的任意对象,可以通过调用此方法从其嵌套的BeanContextServices获取对当前注册服务的引用。调用此方法时,该方法通过在基础BeanContextServiceProvider上调用getService()方法来获取服务。- 参数:
-
child- 与此请求相关联的BeanContextChild -
requestor- 请求服务的对象 -
serviceClass- 请求的服务类 -
serviceSelector- 服务相关参数 -
bcsrl- 如果服务稍后应撤销,则通知的BeanContextServiceRevokedListener - 返回:
-
请求的服务的引用,如果未找到则返回
null - 抛出:
-
TooManyListenersException- 如果监听器过多
-
releaseService
通过调用基础BeanContextServiceProvider上的releaseService()方法,释放BeanContextChild(或与BeanContextChild关联的任意对象)对指定服务的引用。- 参数:
-
child-BeanContextChild -
requestor- 请求者 -
service- 服务
-
getCurrentServiceClasses
Iterator<?> getCurrentServiceClasses()获取此上下文的当前可用服务。- 返回:
-
由当前可用服务组成的
Iterator
-
getCurrentServiceSelectors
通过调用基础BeanContextServiceProvider上的getCurrentServiceSelectors()方法,获取指定服务的服务相关服务参数(服务选择器)列表。- 参数:
-
serviceClass- 指定的服务 - 返回:
- 指定serviceClass的当前可用服务选择器
-
addBeanContextServicesListener
向此BeanContext添加一个BeanContextServicesListener- 参数:
-
bcsl- 要添加的BeanContextServicesListener
-
removeBeanContextServicesListener
从此BeanContext中移除一个BeanContextServicesListener- 参数:
-
bcsl- 要从此上下文中移除的BeanContextServicesListener
-