-
- 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 方法 描述 voidaddBeanContextServicesListener(BeanContextServicesListener bcsl)在此BeanContext中添加一个BeanContextServicesListenerbooleanaddService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider)向这个BeanContext添加一个服务。Iterator<?>getCurrentServiceClasses()获取此上下文的当前可用服务。Iterator<?>getCurrentServiceSelectors(Class<?> serviceClass)通过调用底层BeanContextServiceProvider上的getCurrentServiceSelectors(),获取指定服务的服务相关服务参数(服务选择器)列表。ObjectgetService(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl)ABeanContextChild或与BeanContextChild相关联的任何任意对象可以通过调用该方法从其嵌套BeanContextServices获得对当前注册服务的引用。booleanhasService(Class<?> serviceClass)报告当前是否可以从此上下文获得给定的服务。voidreleaseService(BeanContextChild child, Object requestor, Object service)通过在底层的BeanContextServiceProvider上调用releaseService(),释放一个BeanContextChild(或任何与BeanContextChild关联的任意对象)对指定服务的BeanContextServiceProvider。voidremoveBeanContextServicesListener(BeanContextServicesListener bcsl)删除一个BeanContextServicesListener从这个BeanContextvoidrevokeService(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
-
-