Module java.desktop

Interface BeanContextServices

所有超级接口:
BeanContext, BeanContextChild, BeanContextServiceRevokedListener, BeanContextServicesListener, Collection, DesignMode, EventListener, Iterable, Visibility
所有已知实现类:
BeanContextServicesSupport

public interface BeanContextServices extends BeanContext, BeanContextServicesListener

BeanContextServices接口为BeanContext提供了一种机制,用于向其中的BeanContextChild对象公开通用的“服务”。

  • Method Details

    • addService

      boolean addService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider)
      向此BeanContext添加一个服务。 BeanContextServiceProvider调用此方法来向此上下文注册特定服务。如果服务尚未添加,则BeanContextServices将服务与BeanContextServiceProvider关联,并向所有当前注册的BeanContextServicesListeners触发BeanContextServiceAvailableEvent。然后该方法返回true,表示服务添加成功。如果给定服务已经添加,则此方法简单地返回false
      参数:
      serviceClass - 要添加的服务
      serviceProvider - 与服务关联的BeanContextServiceProvider
      返回:
      如果服务成功添加,则返回true,否则返回false
    • revokeService

      void revokeService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider, boolean revokeCurrentServicesNow)
      希望从此上下文中移除当前注册服务的BeanContextServiceProviders可以通过调用此方法来实现。在撤销服务时,BeanContextServices向其当前注册的BeanContextServiceRevokedListenersBeanContextServicesListeners列表触发BeanContextServiceRevokedEvent
      参数:
      serviceClass - 要从此BeanContextServices中撤销的服务
      serviceProvider - 与正在撤销的特定服务关联的BeanContextServiceProvider
      revokeCurrentServicesNow - 值为true表示特殊情况,其中BeanContextServiceProviderBeanContextServices希望立即终止对指定服务的所有当前未完成引用的服务。
    • hasService

      boolean hasService(Class<?> serviceClass)
      报告给定服务当前是否在此上下文中可用。
      参数:
      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

      void releaseService(BeanContextChild child, Object requestor, Object service)
      通过调用基础BeanContextServiceProvider上的releaseService()方法,释放BeanContextChild(或与BeanContextChild关联的任意对象)对指定服务的引用。
      参数:
      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)
      从此BeanContext中移除一个BeanContextServicesListener
      参数:
      bcsl - 要从此上下文中移除的BeanContextServicesListener