- java.lang.Object
-
- java.beans.beancontext.BeanContextChildSupport
-
- java.beans.beancontext.BeanContextSupport
-
- java.beans.beancontext.BeanContextServicesSupport
-
- All Implemented Interfaces:
-
BeanContext
,BeanContextChild
,BeanContextServiceRevokedListener
,BeanContextServices
,BeanContextServicesListener
,DesignMode
,PropertyChangeListener
,VetoableChangeListener
,Visibility
,Serializable
,Iterable<E>
,Collection
,EventListener
public class BeanContextServicesSupport extends BeanContextSupport implements BeanContextServices
这个助手类提供java.beans.beancontext.BeanContextServices接口的实用程序实现。
由于此类直接实现了BeanContextServices接口,所以该类可以通过对该实现进行子类化,也可以通过BeanContextProxy接口从另一个实例委派这个类来实现。
- 从以下版本开始:
- 1.2
- 另请参见:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 protected class
BeanContextServicesSupport.BCSSChild
protected class
BeanContextServicesSupport.BCSSProxyServiceProvider
protected static class
BeanContextServicesSupport.BCSSServiceProvider
子类可以将此嵌套类子类化为每个BeanContextServicesProvider添加行为。-
Nested classes/interfaces inherited from class java.beans.beancontext.BeanContextSupport
BeanContextSupport.BCSChild, BeanContextSupport.BCSIterator
-
-
Field Summary
Fields Modifier and Type Field 描述 protected ArrayList<BeanContextServicesListener>
bcsListeners
BeanContextServicesListener
对象列表。protected BeanContextServicesSupport.BCSSProxyServiceProvider
proxy
代表BeanContextServiceProvider
。protected int
serializable
可序列化的实例数BeanContextServceProvider
。protected HashMap<Object,BeanContextServicesSupport.BCSSServiceProvider>
services
对protected transient HashMap services
字段的所有访问应该在该对象上同步-
Fields inherited from interface java.beans.beancontext.BeanContext
globalHierarchyLock
-
Fields inherited from class java.beans.beancontext.BeanContextChildSupport
beanContext, beanContextChildPeer, pcSupport, rejectedSetBCOnce, vcSupport
-
Fields inherited from class java.beans.beancontext.BeanContextSupport
bcmListeners, children, designTime, locale, okToUseGui
-
Fields inherited from interface java.beans.DesignMode
PROPERTYNAME
-
-
构造方法摘要
构造方法 Constructor 描述 BeanContextServicesSupport()
创建一个不是另一个对象的委托的实例BeanContextServicesSupport(BeanContextServices peer)
与对等体创建一个实例BeanContextServicesSupport(BeanContextServices peer, Locale lcle)
使用指定的区域设置创建一个实例BeanContextServicesSupport(BeanContextServices peer, Locale lcle, boolean dtime)
使用指定的区域设置和设计模式创建一个实例。BeanContextServicesSupport(BeanContextServices peer, Locale lcle, boolean dTime, boolean visible)
构造一个BeanContextServicesSupport实例
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
addBeanContextServicesListener(BeanContextServicesListener bcsl)
添加一个BeanContextServicesListenerboolean
addService(Class<?> serviceClass, BeanContextServiceProvider bcsp)
添加服务protected boolean
addService(Class<?> serviceClass, BeanContextServiceProvider bcsp, boolean fireEvent)
添加服务protected void
bcsPreDeserializationHook(ObjectInputStream ois)
从BeanContextSupport readObject中调用它反序列化子对象...protected void
bcsPreSerializationHook(ObjectOutputStream oos)
从BeanContextSupport中调用writeObject,然后序列化子对象...protected void
childJustRemovedHook(Object child, BeanContextSupport.BCSChild bcsc)
在孩子被成功删除之后从超类儿童删除操作中调用。 调用与子同步。protected BeanContextSupport.BCSChild
createBCSChild(Object targetChild, Object peer)
子类可以覆盖这个方法来插入他们自己的Child子类,而不必重写add()或者添加子集的其他Collection方法。protected BeanContextServicesSupport.BCSSServiceProvider
createBCSSServiceProvider(Class<?> sc, BeanContextServiceProvider bcsp)
子类可以覆盖此方法来创建BCSSServiceProvider的新子类,而不必重写addService()以便实例化。protected void
fireServiceAdded(BeanContextServiceAvailableEvent bcssae)
触发BeanContextServiceAvailableEvent
表示新服务已经可用。protected void
fireServiceAdded(Class<?> serviceClass)
发出BeanContextServiceEvent
通知新服务。protected void
fireServiceRevoked(BeanContextServiceRevokedEvent bcsre)
发出BeanContextServiceEvent
通知正在撤销的服务。protected void
fireServiceRevoked(Class<?> serviceClass, boolean revokeNow)
触发BeanContextServiceRevokedEvent
表示特定服务不再可用。BeanContextServices
getBeanContextServicesPeer()
获取BeanContextServices
与此BeanContextServicesSupport
相关联。protected static BeanContextServicesListener
getChildBeanContextServicesListener(Object child)
获取指定小孩的BeanContextServicesListener
(如果有)。Iterator<Object>
getCurrentServiceClasses()
获取此上下文的当前可用服务。Iterator<?>
getCurrentServiceSelectors(Class<?> serviceClass)
通过调用底层BeanContextServiceProvider上的getCurrentServiceSelectors(),获取指定服务的服务相关服务参数(服务选择器)列表。Object
getService(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl)
获得可能委托的服务boolean
hasService(Class<?> serviceClass)
有一个可以委派的服务void
initialize()
在构造和反序列化期间由BeanContextSupport超类调用以初始化子类暂态。protected void
initializeBeanContextResources()
从setBeanContext调用通知一个BeanContextChild来分配从嵌套BeanContext获取的资源。protected void
releaseBeanContextResources()
从setBeanContext调用,以通知BeanContextChild释放从嵌套BeanContext获取的资源。void
releaseService(BeanContextChild child, Object requestor, Object service)
发布服务void
removeBeanContextServicesListener(BeanContextServicesListener bcsl)
删除一个BeanContextServicesListenervoid
revokeService(Class<?> serviceClass, BeanContextServiceProvider bcsp, boolean revokeCurrentServicesNow)
删除服务void
serviceAvailable(BeanContextServiceAvailableEvent bcssae)
BeanContextServicesListener回调,将事件传播到所有当前注册的监听器和BeanContextServices子节点,如果此BeanContextService尚未实现此服务本身。void
serviceRevoked(BeanContextServiceRevokedEvent bcssre)
BeanContextServicesListener回调,将事件传播到所有当前注册的监听器和BeanContextServices子节点,如果此BeanContextService尚未实现此服务本身。-
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 class java.beans.beancontext.BeanContextChildSupport
addPropertyChangeListener, addVetoableChangeListener, firePropertyChange, fireVetoableChange, getBeanContext, getBeanContextChildPeer, isDelegated, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext, validatePendingSetBeanContext
-
Methods inherited from class java.beans.beancontext.BeanContextSupport
add, addAll, addBeanContextMembershipListener, avoidingGui, bcsChildren, childDeserializedHook, childJustAddedHook, classEquals, clear, contains, containsAll, containsKey, copyChildren, deserialize, dontUseGui, fireChildrenAdded, fireChildrenRemoved, getBeanContextPeer, getChildBeanContextChild, getChildBeanContextMembershipListener, getChildPropertyChangeListener, getChildSerializable, getChildVetoableChangeListener, getChildVisibility, getLocale, getResource, getResourceAsStream, instantiateChild, isDesignTime, isEmpty, isSerializing, iterator, needsGui, okToUseGui, propertyChange, readChildren, remove, remove, removeAll, removeBeanContextMembershipListener, retainAll, serialize, setDesignTime, setLocale, size, toArray, toArray, validatePendingAdd, validatePendingRemove, vetoableChange, writeChildren
-
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 class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.beans.Visibility
avoidingGui, dontUseGui, needsGui, okToUseGui
-
-
-
-
字段详细信息
-
services
protected transient HashMap<Object,BeanContextServicesSupport.BCSSServiceProvider> services
对protected transient HashMap services
字段的所有访问应该在该对象上同步
-
serializable
protected transient int serializable
可序列化的实例数BeanContextServceProvider
。
-
proxy
protected transient BeanContextServicesSupport.BCSSProxyServiceProvider proxy
代表BeanContextServiceProvider
。
-
bcsListeners
protected transient ArrayList<BeanContextServicesListener> bcsListeners
BeanContextServicesListener
对象列表。
-
-
构造方法详细信息
-
BeanContextServicesSupport
public BeanContextServicesSupport(BeanContextServices peer, Locale lcle, boolean dTime, boolean visible)
构造一个BeanContextServicesSupport实例
- 参数
-
peer
- 对等BeanContext我们提供了一个实现,如果null这个对象是它自己的对等 -
lcle
- 此BeanContext的当前区域设置。 -
dTime
- 初始状态,如果在设计模式下为真,如果运行时为false。 -
visible
- 初始可见度。
-
BeanContextServicesSupport
public BeanContextServicesSupport(BeanContextServices peer, Locale lcle, boolean dtime)
使用指定的区域设置和设计模式创建一个实例。- 参数
-
peer
- 对等BeanContext我们提供了一个实现,如果null,则该对象是其自己的对等体 -
lcle
- 此BeanContext的当前区域设置。 -
dtime
- 初始状态,如果在设计模式下为真,如果运行时为false。
-
BeanContextServicesSupport
public BeanContextServicesSupport(BeanContextServices peer, Locale lcle)
使用指定的区域设置创建一个实例- 参数
-
peer
- 对等BeanContext我们提供了一个实现,如果null,这个对象是它自己的对等体 -
lcle
- 此BeanContext的当前区域设置。
-
BeanContextServicesSupport
public BeanContextServicesSupport(BeanContextServices peer)
与对等体创建一个实例- 参数
-
peer
- 对等体BeanContext我们提供了一个实现,如果null这个对象是它自己的对等体
-
BeanContextServicesSupport
public BeanContextServicesSupport()
创建一个不是另一个对象的委托的实例
-
-
方法详细信息
-
initialize
public void initialize()
在构造和反序列化期间由BeanContextSupport超类调用以初始化子类暂态。 子类可以包含此方法,但不应该覆盖它或直接调用它。
-
getBeanContextServicesPeer
public BeanContextServices getBeanContextServicesPeer()
获取BeanContextServices
与此BeanContextServicesSupport
相关联。- 结果
-
该实例为
BeanContext
这个对象提供了实现。
-
createBCSChild
protected BeanContextSupport.BCSChild createBCSChild(Object targetChild, Object peer)
子类可以覆盖这个方法来插入他们自己的Child子类,而不必重写add()或者添加子集的其他Collection方法。
- 重写:
-
createBCSChild
在BeanContextSupport
- 参数
-
targetChild
- 孩子代表孩子创建 -
peer
- 如果targetChild和peer由BeanContextProxy关联,则该对等体 - 结果
- 子类别的子类别,而不用覆盖收集方法
-
createBCSSServiceProvider
protected BeanContextServicesSupport.BCSSServiceProvider createBCSSServiceProvider(Class<?> sc, BeanContextServiceProvider bcsp)
子类可以覆盖此方法来创建BCSSServiceProvider的新子类,而不必重写addService()以便实例化。- 参数
-
sc
- 班 -
bcsp
- 服务提供商 - 结果
- 一个服务提供商,无需覆盖addService()
-
addBeanContextServicesListener
public void addBeanContextServicesListener(BeanContextServicesListener bcsl)
添加一个BeanContextServicesListener- Specified by:
-
addBeanContextServicesListener
在接口BeanContextServices
- 参数
-
bcsl
- 添加BeanContextServicesListener
- 异常
-
NullPointerException
- 如果参数为空
-
removeBeanContextServicesListener
public void removeBeanContextServicesListener(BeanContextServicesListener bcsl)
删除一个BeanContextServicesListener- Specified by:
-
removeBeanContextServicesListener
在接口BeanContextServices
- 参数
-
bcsl
- 要从此上下文中删除的BeanContextServicesListener
-
addService
public boolean addService(Class<?> serviceClass, BeanContextServiceProvider bcsp)
添加服务- Specified by:
-
addService
在接口BeanContextServices
- 参数
-
serviceClass
- 服务类 -
bcsp
- 服务提供商 - 结果
- 如果服务成功添加,则为true,否则为false
-
addService
protected boolean addService(Class<?> serviceClass, BeanContextServiceProvider bcsp, boolean fireEvent)
添加服务- 参数
-
serviceClass
- 服务类 -
bcsp
- 服务提供商 -
fireEvent
- 是否应触发事件 - 结果
- 如果服务成功添加,则为true
-
revokeService
public void revokeService(Class<?> serviceClass, BeanContextServiceProvider bcsp, boolean revokeCurrentServicesNow)
删除服务- Specified by:
-
revokeService
在接口BeanContextServices
- 参数
-
serviceClass
- 服务类 -
bcsp
- 服务提供商 -
revokeCurrentServicesNow
- 是否撤销服务
-
hasService
public boolean hasService(Class<?> serviceClass)
有一个可以委派的服务- Specified by:
-
hasService
在接口BeanContextServices
- 参数
-
serviceClass
- 有关服务 - 结果
- 如果服务可用,则为true
-
getService
public Object getService(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl) throws TooManyListenersException
获得可能委托的服务- Specified by:
-
getService
在接口BeanContextServices
- 参数
-
child
- 与此请求相关联的BeanContextChild
-
requestor
- 请求服务的对象 -
serviceClass
- 所请求的服务的类 -
serviceSelector
- 服务相关参数 -
bcsrl
-BeanContextServiceRevokedListener
通知服务是否应该在以后被撤销 - 结果
-
根据请求引用此上下文的命名服务或
null
- 异常
-
TooManyListenersException
- 如果听众太多了
-
releaseService
public void releaseService(BeanContextChild child, Object requestor, Object service)
发布服务- Specified by:
-
releaseService
在接口BeanContextServices
- 参数
-
child
-BeanContextChild
-
requestor
- 请求者 -
service
- 服务
-
getCurrentServiceClasses
public Iterator<Object> getCurrentServiceClasses()
说明从接口BeanContextServices
复制获取此上下文的当前可用服务。- Specified by:
-
getCurrentServiceClasses
在接口BeanContextServices
- 结果
- 所有当前注册的服务类的迭代器。
-
getCurrentServiceSelectors
public Iterator<?> getCurrentServiceSelectors(Class<?> serviceClass)
描述从接口BeanContextServices
复制通过调用底层BeanContextServiceProvider上的getCurrentServiceSelectors(),获取指定服务的服务相关服务参数(服务选择器)列表。- Specified by:
-
getCurrentServiceSelectors
在接口BeanContextServices
- 参数
-
serviceClass
- 指定的服务 - 结果
- 所有当前可用的服务选择器(如果有)可用于指定服务的迭代器。
-
serviceAvailable
public void serviceAvailable(BeanContextServiceAvailableEvent bcssae)
BeanContextServicesListener回调,将事件传播到所有当前注册的监听器和BeanContextServices子节点,如果此BeanContextService尚未实现此服务本身。 子类可以覆盖或包围该方法来实现自己的传播语义。- Specified by:
-
serviceAvailable
在接口BeanContextServicesListener
- 重写:
-
serviceAvailable
在BeanContextChildSupport
- 参数
-
bcssae
- 由于服务变得可用,BeanContextServiceAvailableEvent被触发
-
serviceRevoked
public void serviceRevoked(BeanContextServiceRevokedEvent bcssre)
BeanContextServicesListener回调,将事件传播到所有当前注册的监听器和BeanContextServices子节点,如果此BeanContextService尚未实现此服务本身。 子类可以覆盖或包围该方法来实现自己的传播语义。- Specified by:
-
serviceRevoked
在接口BeanContextServiceRevokedListener
- 重写:
-
serviceRevoked
在BeanContextChildSupport
- 参数
-
bcssre
- 由于服务被撤销,BeanContextServiceRevokedEvent
被触发
-
getChildBeanContextServicesListener
protected static final BeanContextServicesListener getChildBeanContextServicesListener(Object child)
获取指定小孩的BeanContextServicesListener
(如果有)。- 参数
-
child
- 指定的孩子 - 结果
- 指定子对象的BeanContextServicesListener(如果有)
-
childJustRemovedHook
protected void childJustRemovedHook(Object child, BeanContextSupport.BCSChild bcsc)
在孩子被成功删除之后从超类儿童删除操作中调用。 调用与子同步。 如果该子类是BeanContextChild,则此子类将使用此钩子立即撤销该子级正在使用的任何服务。 子类可以包含这种方法,以便实现他们自己的小孩删除副作用。- 重写:
-
childJustRemovedHook
在BeanContextSupport
- 参数
-
child
- 小孩 -
bcsc
- BCSChild
-
releaseBeanContextResources
protected void releaseBeanContextResources()
从setBeanContext调用,以通知BeanContextChild释放从嵌套BeanContext获取的资源。 此方法撤销从其父级获取的任何服务。 子类可以包含这个方法来实现自己的语义。
-
initializeBeanContextResources
protected void initializeBeanContextResources()
从setBeanContext调用通知一个BeanContextChild来分配从嵌套BeanContext获取的资源。 子类可以包含这个方法来实现自己的语义。
-
fireServiceAdded
protected final void fireServiceAdded(Class<?> serviceClass)
通知一个新的服务BeanContextServiceEvent
。- 参数
-
serviceClass
- 服务类
-
fireServiceAdded
protected final void fireServiceAdded(BeanContextServiceAvailableEvent bcssae)
触发BeanContextServiceAvailableEvent
表示新服务已经可用。- 参数
-
bcssae
-BeanContextServiceAvailableEvent
-
fireServiceRevoked
protected final void fireServiceRevoked(BeanContextServiceRevokedEvent bcsre)
发出BeanContextServiceEvent
通知正在撤销的服务。- 参数
-
bcsre
-BeanContextServiceRevokedEvent
-
fireServiceRevoked
protected final void fireServiceRevoked(Class<?> serviceClass, boolean revokeNow)
触发BeanContextServiceRevokedEvent
表示特定服务不再可用。- 参数
-
serviceClass
- 服务类 -
revokeNow
- 现在是否应该撤销事件
-
bcsPreSerializationHook
protected void bcsPreSerializationHook(ObjectOutputStream oos) throws IOException
从BeanContextSupport writeObject中调用它,然后序列化子...这个类将序列化任何Serializable BeanContextServiceProviders。 子类可以包含这个方法来插入自己的序列化处理,这个序列化处理必须在子系统序列化之前发生- 重写:
-
bcsPreSerializationHook
在BeanContextSupport
- 参数
-
oos
- 序列化期间使用的ObjectOutputStream
- 异常
-
IOException
- 如果序列化失败
-
bcsPreDeserializationHook
protected void bcsPreDeserializationHook(ObjectInputStream ois) throws IOException, ClassNotFoundException
从BeanContextSupport readObject调用它反序列化子类之前...这个类将反序列化任何Serializable BeanContextServiceProviders序列化,从而使它们可用于孩子们反序列化时。 子类可以包含这个方法来插入自己的序列化处理,这个序列化处理必须在子系统序列化之前发生- 重写:
-
bcsPreDeserializationHook
在BeanContextSupport
- 参数
-
ois
- 反序列化期间使用的ObjectInputStream
- 异常
-
IOException
- 如果反序列化失败 -
ClassNotFoundException
- 如果没有找到需要的类
-
-