public class BeanContextSupport extends BeanContextChildSupport implements BeanContext, Serializable, PropertyChangeListener, VetoableChangeListener
由于该类直接实现了BeanContext接口,所以该类可以通过将此实现进行子类化,也可以通过对另一个类的实例进行临时委派来使用。
Modifier and Type | Class and Description |
---|---|
protected class |
BeanContextSupport.BCSChild |
protected static class |
BeanContextSupport.BCSIterator
受保护的final子类封装了一个迭代器,但实现了一个noop remove()方法。
|
Modifier and Type | Field and Description |
---|---|
protected ArrayList |
bcmListeners
protected ArrayList bcmListeners 字段的所有访问应在该对象上同步。
|
protected HashMap |
children
protected HashMap children 字段的所有访问应在该对象上同步。
|
protected boolean |
designTime
A
boolean指示该对象当前是否处于设计时间模式。
|
protected Locale |
locale
此BeanContext的当前区域设置。
|
protected boolean |
okToUseGui
A
boolean指示该实例现在是否可以呈现GUI。
|
beanContext, beanContextChildPeer, pcSupport, rejectedSetBCOnce, vcSupport
globalHierarchyLock
PROPERTYNAME
Constructor and Description |
---|
BeanContextSupport()
创建一个不是另一个对象的委托的实例
|
BeanContextSupport(BeanContext peer)
使用默认语言环境创建实例
|
BeanContextSupport(BeanContext peer, Locale lcle)
使用指定的区域设置创建一个实例
|
BeanContextSupport(BeanContext peer, Locale lcle, boolean dtime)
使用指定的区域设置和设计模式创建一个实例。
|
BeanContextSupport(BeanContext peer, Locale lcle, boolean dTime, boolean visible)
构造一个BeanContextSupport实例
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(Object targetChild)
在这个
BeanContext中添加/嵌套一个孩子。
|
boolean |
addAll(Collection c)
将集合添加到子集(不支持)的集合实现必须在层次结构锁和“children”保护字段上同步
|
void |
addBeanContextMembershipListener(BeanContextMembershipListener bcml)
添加一个BeanContextMembershipListener
|
boolean |
avoidingGui()
用于确定
BeanContext孩子是否避免使用其GUI。
|
protected Iterator |
bcsChildren()
返回此
BeanContext的所有子代的迭代器。
|
protected void |
bcsPreDeserializationHook(ObjectInputStream ois)
通过readObject在defaultReadObject()之后调用,但在任何孩子反序列化之前。
|
protected void |
bcsPreSerializationHook(ObjectOutputStream oos)
在writeWriteObject()之后但在序列化当前可序列化的孩子之前调用writeObject。
|
protected void |
childDeserializedHook(Object child, BeanContextSupport.BCSChild bcsc)
由readObject与新反序列化的小孩和BCSChild调用。
|
protected void |
childJustAddedHook(Object child, BeanContextSupport.BCSChild bcsc)
子类可以覆盖此方法,以便在添加子项之后和事件通知发生之前简单地扩展add()语义。
|
protected void |
childJustRemovedHook(Object child, BeanContextSupport.BCSChild bcsc)
子类可以覆盖此方法,以便在子进程已被删除之后和事件通知发生之前简单地扩展remove()语义。
|
protected static boolean |
classEquals(类 first, 类 second)
测试两个类对象或其名称是否相等。
|
void |
clear()
清除子层(不支持)实现必须在层次结构锁和“children”保护字段上同步
|
boolean |
contains(Object o)
确定指定的对象当前是否是此BeanContext的子
项 。
|
boolean |
containsAll(Collection c)
测试以查看指定的Collection中的所有对象
是否是此
BeanContext的子项 。
|
boolean |
containsKey(Object o)
确定指定对象当前是否为此BeanContext的子
项 。
|
protected Object[] |
copyChildren()
获取这个BeanContext的孩子的副本。
|
protected BeanContextSupport.BCSChild |
createBCSChild(Object targetChild, Object peer)
子类可以覆盖这个方法来插入他们自己的Child子类,而不必重写add()或者添加子集的其他Collection方法。
|
protected void |
deserialize(ObjectInputStream ois, Collection coll)
由readObject用于反序列化集合。
|
void |
dontUseGui()
通知此实例可能不再呈现GUI。
|
protected void |
fireChildrenAdded(BeanContextMembershipEvent bcme)
在BeanContextMembershipListener接口上激活BeanContextshipEvent
|
protected void |
fireChildrenRemoved(BeanContextMembershipEvent bcme)
在BeanContextMembershipListener接口上激活BeanContextshipEvent
|
BeanContext |
getBeanContextPeer()
获取
BeanContext的实例,该对象正在为其提供实现。
|
protected static BeanContextChild |
getChildBeanContextChild(Object child)
获取指定子节点的BeanContextChild(如果有的话)
|
protected static BeanContextMembershipListener |
getChildBeanContextMembershipListener(Object child)
获取指定子节点的BeanContextMembershipListener(如果有)
|
protected static PropertyChangeListener |
getChildPropertyChangeListener(Object child)
获取指定子对象的PropertyChangeListener(如果有)
|
protected static Serializable |
getChildSerializable(Object child)
获取与指定的Child相关联的Serializable(如果有)
|
protected static VetoableChangeListener |
getChildVetoableChangeListener(Object child)
获取指定子节点的VetoableChangeListener(如果有)
|
protected static Visibility |
getChildVisibility(Object child)
获取与指定子项关联的组件(如果有)。
|
Locale |
getLocale()
获取这个
BeanContext的地区 。
|
URL |
getResource(String name, BeanContextChild bcc)
对于
java.lang.ClassLoader.getResource() ,这种方法允许一个
BeanContext 实现介入孩子
Component 和底层
ClassLoader 之间的行为。
|
InputStream |
getResourceAsStream(String name, BeanContextChild bcc)
Analagous到
java.lang.ClassLoader.getResourceAsStream() ,该方法允许
BeanContext 实现孩子之间的干预行为
Component 和基本
ClassLoader 。
|
protected void |
initialize()
protected方法从构造函数和readObject调用,初始化BeanContextSupport实例的暂态。
|
Object |
instantiateChild(String beanName)
instantiateChild方法是BeanContext中的一个方便的钩子,用于简化将Bean实例化的任务嵌套到一个
BeanContext中 。
|
boolean |
isDesignTime()
报告此对象是否在当前处于设计时模式。
|
boolean |
isEmpty()
报告此
BeanContext是否为空。
|
boolean |
isSerializing()
这是
BeanContext正在序列化的过程吗?
|
Iterator |
iterator()
获取当前嵌套在此
BeanContext中的所有JavaBean或
BeanContext
实例 。
|
boolean |
needsGui()
通常从环境中调用此方法,以确定实现者是否“需要”GUI。
|
void |
okToUseGui()
通知此实例,它现在可以呈现GUI
|
void |
propertyChange(PropertyChangeEvent pce)
子类可以包围以监视子属性更改。
|
void |
readChildren(ObjectInputStream ois)
当这个类的实例被用作实现BeanContext协议(及其子协议)的委托时,在反序列化期间存在一个'鸡和蛋'问题
|
boolean |
remove(Object targetChild)
从此BeanContext中删除一个小孩。
|
protected boolean |
remove(Object targetChild, boolean callChildSetBC)
内部删除使用时,由意外
setBeanContext或
remove()调用引起的删除。
|
boolean |
removeAll(Collection c)
删除所有指定的子(不支持)实现必须在层次结构锁和“children”保护字段上同步
|
void |
removeBeanContextMembershipListener(BeanContextMembershipListener bcml)
删除一个BeanContextMembershipListener
|
boolean |
retainAll(Collection c)
只保留指定的子级(不支持)实现必须在层次结构锁和“children”保护字段上同步
|
protected void |
serialize(ObjectOutputStream oos, Collection coll)
由writeObject用于序列化集合。
|
void |
setDesignTime(boolean dTime)
设置这个
BeanContext的新设计时间值。
|
void |
setLocale(Locale newLocale)
设置此BeanContext的区域设置。
|
int |
size()
获取当前嵌套在此BeanContext中的子节点数。
|
Object[] |
toArray()
获取当前嵌套在此BeanContext中的所有JavaBean或
BeanContext实例。
|
Object[] |
toArray(Object[] arry)
获取一个包含此BeanContext的所有子项的数组,该
数组与arry中包含的类型相匹配。
|
protected boolean |
validatePendingAdd(Object targetChild)
此类的子类可以覆盖或包络此方法,以便为BeanContext添加验证行为,以便在添加到BeanContext之前立即检查子对象。
|
protected boolean |
validatePendingRemove(Object targetChild)
此类的子类可以覆盖或包络此方法,以便为BeanContext添加验证行为,以便在BeanContext从BeanContext中删除之前立即检查子对象。
|
void |
vetoableChange(PropertyChangeEvent pce)
子类可以包围以监视否决权子变化。
|
void |
writeChildren(ObjectOutputStream oos)
用于序列化这个
BeanContext的所有孩子。
|
addPropertyChangeListener, addVetoableChangeListener, firePropertyChange, fireVetoableChange, getBeanContext, getBeanContextChildPeer, initializeBeanContextResources, isDelegated, releaseBeanContextResources, removePropertyChangeListener, removeVetoableChangeListener, serviceAvailable, serviceRevoked, setBeanContext, validatePendingSetBeanContext
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addPropertyChangeListener, addVetoableChangeListener, getBeanContext, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext
equals, hashCode, parallelStream, removeIf, spliterator, stream
protected transient HashMap children
protected HashMap children
字段的所有访问应在该对象上同步。
protected transient ArrayList bcmListeners
protected ArrayList bcmListeners
字段的所有访问应在该对象上同步。
protected Locale locale
protected boolean okToUseGui
protected boolean designTime
public BeanContextSupport(BeanContext peer, Locale lcle, boolean dTime, boolean visible)
peer
- 对等
BeanContext我们提供一个实现,或
null如果这个对象是自己的对等
lcle
- 此BeanContext的当前区域设置。
如果lcle为null ,则默认语言环境将分配给BeanContext实例。
dTime
- 初始状态,
true如果在设计模式下,
false如果运行时。
visible
- 初始可见性。
Locale.getDefault()
,
Locale.setDefault(java.util.Locale)
public BeanContextSupport(BeanContext peer, Locale lcle, boolean dtime)
peer
- 对等
BeanContext我们提供的一个实现,或
null如果这个对象是它自己的对等
lcle
- 此BeanContext的当前语言环境。
如果lcle为null ,则默认语言环境将分配给BeanContext实例。
dtime
- 初始状态,
true如果在设计模式下,
false如果运行时。
Locale.getDefault()
,
Locale.setDefault(java.util.Locale)
public BeanContextSupport(BeanContext peer, Locale lcle)
peer
- 对等BeanContext我们提供一个实现,或
null如果这个对象是它自己的对等
lcle
- 此BeanContext的当前语言环境。
如果lcle为null ,则默认语言环境将分配给BeanContext实例。
Locale.getDefault()
,
Locale.setDefault(java.util.Locale)
public BeanContextSupport(BeanContext peer)
peer
- 对等
BeanContext我们正在提供一个实现,或
null如果这个对象是它自己的对等
public BeanContextSupport()
public BeanContext getBeanContextPeer()
public Object instantiateChild(String beanName) throws IOException, ClassNotFoundException
instantiateChild方法是BeanContext中的一个方便的钩子,用于简化将Bean实例化的任务嵌套到一个BeanContext中 。
beanName参数的语义由java.beans.Beans.instantiate定义。
instantiateChild
在界面
BeanContext
beanName
- 要在此BeanContext内实例化的Bean的名称
IOException
- 如果bean被反序列化时存在I / O错误
ClassNotFoundException
- 如果没有找到由beanName参数标识的类
public int size()
size
在界面
Collection
public boolean isEmpty()
isEmpty
在界面
Collection
public boolean contains(Object o)
contains
在界面
Collection
o
- 有问题的对象
public boolean containsKey(Object o)
o
- 有问题的对象
public Iterator iterator()
iterator
在界面
Iterable
iterator
在界面
Collection
public Object[] toArray()
toArray
在界面
Collection
public Object[] toArray(Object[] arry)
toArray
在界面
Collection
arry
- 感兴趣的对象类型的数组。
protected BeanContextSupport.BCSChild createBCSChild(Object targetChild, Object peer)
子类可以覆盖这个方法来插入他们自己的Child子类,而不必重写add()或者添加子集的其他Collection方法。
targetChild
- 代表孩子创建的孩子
peer
- 对等体,如果tragetChild和对等体通过BeanContextProxy * @return的实现相关联的Child的子类型的子类,而不覆盖收集方法
public boolean add(Object targetChild)
作为java.beans.Beans.instantiate()的副作用调用。 如果子对象无法添加,则此方法将抛出IllegalStateException异常。
add
在界面
Collection
targetChild
- 孩子的对象嵌套在这个
BeanContext
validatePendingAdd(java.lang.Object)
public boolean remove(Object targetChild)
remove
在界面
Collection
targetChild
- 要删除的子对象
validatePendingRemove(java.lang.Object)
protected boolean remove(Object targetChild, boolean callChildSetBC)
targetChild
- 要删除的JavaBean,BeanContext或Object
callChildSetBC
- 用于表示应该通知孩子它不再嵌套在这个
BeanContext中 。
public boolean containsAll(Collection c)
containsAll
在界面
Collection
c
- 指定的
Collection
Collection.contains(Object)
public boolean addAll(Collection c)
addAll
在界面
Collection
c
- 包含要添加到此集合的元素的集合
UnsupportedOperationException
UnsupportedOperationException
-
UnsupportedOperationException
抛出此实现
Collection.add(Object)
public boolean removeAll(Collection c)
removeAll
在界面
Collection
c
- 包含要从此集合中删除的元素的集合
UnsupportedOperationException
UnsupportedOperationException
-
UnsupportedOperationException
抛出此实现
Collection.remove(Object)
,
Collection.contains(Object)
public boolean retainAll(Collection c)
retainAll
在界面
Collection
c
- 包含要保留在此集合中的元素的集合
UnsupportedOperationException
UnsupportedOperationException
-
UnsupportedOperationException
抛出此实现
Collection.remove(Object)
,
Collection.contains(Object)
public void clear()
clear
在界面
Collection
UnsupportedOperationException
-
UnsupportedOperationException
抛出此实现
public void addBeanContextMembershipListener(BeanContextMembershipListener bcml)
addBeanContextMembershipListener
在界面
BeanContext
bcml
- 要添加的BeanContextMembershipListener
NullPointerException
- 如果参数为空
public void removeBeanContextMembershipListener(BeanContextMembershipListener bcml)
removeBeanContextMembershipListener
在界面
BeanContext
bcml
- 要删除的BeanContextMembershipListener
NullPointerException
- 如果参数为空
public InputStream getResourceAsStream(String name, BeanContextChild bcc)
BeanContext
复制
java.lang.ClassLoader.getResourceAsStream()
,该方法允许
BeanContext
实现孩子之间的干预行为
Component
和基本
ClassLoader
。
getResourceAsStream
在接口
BeanContext
name
-
name
的资源的名称。
bcc
- 发出请求的子对象。
NullPointerException
- 如果参数为空
public URL getResource(String name, BeanContextChild bcc)
BeanContext
复制
java.lang.ClassLoader.getResource()
,这种方法允许一个
BeanContext
实现介入孩子
Component
和底层
ClassLoader
之间的行为。
getResource
在界面
BeanContext
name
-
name
的资源的名称。
bcc
- 发出请求的子对象。
public void setDesignTime(boolean dTime)
setDesignTime
在界面
DesignMode
dTime
- 新的designTime值
BeanContext
, BeanContextMembershipListener
, PropertyChangeEvent
public boolean isDesignTime()
isDesignTime
在界面
DesignMode
public void setLocale(Locale newLocale) throws PropertyVetoException
newLocale
- 新的地区。
如果newLocale为null
则此方法调用将null
。
PropertyVetoException
- 如果新值被拒绝
public Locale getLocale()
public boolean needsGui()
通常从环境中调用此方法,以确定实现者是否“需要”GUI。
本文使用的算法测试BeanContextPeer及其当前的子节点,以确定它们是容器,组件,还是实现可见性并返回needsGui()== true。
needsGui
在界面
Visibility
public void dontUseGui()
dontUseGui
在界面
Visibility
public void okToUseGui()
okToUseGui
在界面
Visibility
public boolean avoidingGui()
avoidingGui
在界面
Visibility
Visibility
public boolean isSerializing()
protected Iterator bcsChildren()
protected void bcsPreSerializationHook(ObjectOutputStream oos) throws IOException
oos
-
ObjectOutputStream
期间使用的ObjectOutputStream
IOException
- 如果序列化失败
protected void bcsPreDeserializationHook(ObjectInputStream ois) throws IOException, ClassNotFoundException
ois
- 反
ObjectInputStream
期间使用的ObjectInputStream
IOException
- 如果反序列化失败
ClassNotFoundException
- 如果没有找到需要的类
protected void childDeserializedHook(Object child, BeanContextSupport.BCSChild bcsc)
child
- 新反序列化的孩子
bcsc
- 新反序列化的BCSChild
protected final void serialize(ObjectOutputStream oos, Collection coll) throws IOException
oos
-
序列化期间使用的ObjectOutputStream
coll
-
Collection要序列化
IOException
- 如果序列化失败
protected final void deserialize(ObjectInputStream ois, Collection coll) throws IOException, ClassNotFoundException
ois
- 要使用的ObjectInputStream
coll
- 集合
IOException
- 如果反序列化失败
ClassNotFoundException
- 如果没有找到需要的类
public final void writeChildren(ObjectOutputStream oos) throws IOException
oos
-
序列化期间使用的ObjectOutputStream
IOException
- 如果序列化失败
public final void readChildren(ObjectInputStream ois) throws IOException, ClassNotFoundException
ois
- 要使用的ObjectInputStream
IOException
- 如果反序列化失败
ClassNotFoundException
- 如果没有找到需要的类
public void vetoableChange(PropertyChangeEvent pce) throws PropertyVetoException
vetoableChange
在界面
VetoableChangeListener
pce
- 一个
PropertyChangeEvent
事件源和已更改属性的对象。
PropertyVetoException
- 如果收件人希望回滚属性更改。
public void propertyChange(PropertyChangeEvent pce)
propertyChange
在界面
PropertyChangeListener
pce
- 描述事件源和已更改属性的PropertyChangeEvent对象。
protected boolean validatePendingAdd(Object targetChild)
此类的子类可以覆盖或包络此方法,以便为BeanContext添加验证行为,以便在添加到BeanContext之前立即检查子对象。
targetChild
- 代表孩子创建的孩子
protected boolean validatePendingRemove(Object targetChild)
此类的子类可以覆盖或包络此方法,以便为BeanContext添加验证行为,以便在BeanContext从BeanContext中删除之前立即检查子对象。
targetChild
- 代表孩子创建孩子
protected void childJustAddedHook(Object child, BeanContextSupport.BCSChild bcsc)
child
- 孩子
bcsc
- BCSChild
protected void childJustRemovedHook(Object child, BeanContextSupport.BCSChild bcsc)
child
- 孩子
bcsc
- BCSChild
protected static final Visibility getChildVisibility(Object child)
child
- 指定的孩子
protected static final Serializable getChildSerializable(Object child)
child
- 指定的孩子
protected static final PropertyChangeListener getChildPropertyChangeListener(Object child)
child
- 指定的孩子
protected static final VetoableChangeListener getChildVetoableChangeListener(Object child)
child
- 指定的孩子
protected static final BeanContextMembershipListener getChildBeanContextMembershipListener(Object child)
child
- 指定的孩子
protected static final BeanContextChild getChildBeanContextChild(Object child)
child
- 指定的孩子
IllegalArgumentException
- 如果子实现了两个BeanContextChild和BeanContextProxy
protected final void fireChildrenAdded(BeanContextMembershipEvent bcme)
bcme
- 事件发生
protected final void fireChildrenRemoved(BeanContextMembershipEvent bcme)
bcme
- 事件发生
protected void initialize()
protected final Object[] copyChildren()