BeanContextServicesSupport (Java SE 10 & JDK 10 )
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classBeanContextServicesSupport.BCSSChildprotected classBeanContextServicesSupport.BCSSProxyServiceProviderprotected static classBeanContextServicesSupport.BCSSServiceProvidersubclasses may subclass this nested class to add behaviors for each BeanContextServicesProvider.
-
Nested classes/interfaces declared in class java.beans.beancontext.BeanContextSupport
BeanContextSupport.BCSChild, BeanContextSupport.BCSIterator
-
-
Field Summary
Fields Modifier and Type Field Description protected ArrayList<BeanContextServicesListener>bcsListenersList of
BeanContextServicesListenerobjects.protected BeanContextServicesSupport.BCSSProxyServiceProviderproxyDelegate for the
BeanContextServiceProvider.protected intserializableThe number of instances of a serializable
BeanContextServceProvider.protected HashMap<Object,BeanContextServicesSupport.BCSSServiceProvider>servicesall accesses to the
protected transient HashMap servicesfield should be synchronized on that object-
Fields declared in interface java.beans.beancontext.BeanContext
globalHierarchyLock
-
Fields declared in class java.beans.beancontext.BeanContextChildSupport
beanContext, beanContextChildPeer, pcSupport, rejectedSetBCOnce, vcSupport
-
Fields declared in class java.beans.beancontext.BeanContextSupport
bcmListeners, children, designTime, locale, okToUseGui
-
Fields declared in interface java.beans.DesignMode
PROPERTYNAME
-
-
Constructor Summary
Constructors Constructor Description BeanContextServicesSupport()Create an instance that is not a delegate of another object
BeanContextServicesSupport(BeanContextServices peer)Create an instance with a peer
BeanContextServicesSupport(BeanContextServices peer, Locale lcle)Create an instance using the specified locale
BeanContextServicesSupport(BeanContextServices peer, Locale lcle, boolean dtime)Create an instance using the specified Locale and design mode.
BeanContextServicesSupport(BeanContextServices peer, Locale lcle, boolean dTime, boolean visible)Construct a BeanContextServicesSupport instance
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddBeanContextServicesListener(BeanContextServicesListener bcsl)add a BeanContextServicesListener
booleanaddService(Class<?> serviceClass, BeanContextServiceProvider bcsp)add a service
protected booleanaddService(Class<?> serviceClass, BeanContextServiceProvider bcsp, boolean fireEvent)add a service
protected voidbcsPreDeserializationHook(ObjectInputStream ois)called from BeanContextSupport readObject before it deserializes the children ...
protected voidbcsPreSerializationHook(ObjectOutputStream oos)called from BeanContextSupport writeObject before it serializes the children ...
protected voidchildJustRemovedHook(Object child, BeanContextSupport.BCSChild bcsc)called from superclass child removal operations after a child has been successfully removed. called with child synchronized.
protected BeanContextSupport.BCSChildcreateBCSChild(Object targetChild, Object peer)Subclasses can override this method to insert their own subclass of Child without having to override add() or the other Collection methods that add children to the set.
protected BeanContextServicesSupport.BCSSServiceProvidercreateBCSSServiceProvider(Class<?> sc, BeanContextServiceProvider bcsp)subclasses can override this method to create new subclasses of BCSSServiceProvider without having to override addService() in order to instantiate.
protected voidfireServiceAdded(BeanContextServiceAvailableEvent bcssae)Fires a
BeanContextServiceAvailableEventindicating that a new service has become available.protected voidfireServiceAdded(Class<?> serviceClass)Fires a
BeanContextServiceEventnotifying of a new service.protected voidfireServiceRevoked(BeanContextServiceRevokedEvent bcsre)Fires a
BeanContextServiceEventnotifying of a service being revoked.protected voidfireServiceRevoked(Class<?> serviceClass, boolean revokeNow)Fires a
BeanContextServiceRevokedEventindicating that a particular service is no longer available.BeanContextServicesgetBeanContextServicesPeer()Gets the
BeanContextServicesassociated with thisBeanContextServicesSupport.protected static BeanContextServicesListenergetChildBeanContextServicesListener(Object child)Gets the
BeanContextServicesListener(if any) of the specified child.Iterator<Object>getCurrentServiceClasses()Gets the currently available services for this context.
Iterator<?>getCurrentServiceSelectors(Class<?> serviceClass)Gets the list of service dependent service parameters (Service Selectors) for the specified service, by calling getCurrentServiceSelectors() on the underlying BeanContextServiceProvider.
ObjectgetService(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl)obtain a service which may be delegated
booleanhasService(Class<?> serviceClass)has a service, which may be delegated
voidinitialize()called by BeanContextSupport superclass during construction and deserialization to initialize subclass transient state.
protected voidinitializeBeanContextResources()called from setBeanContext to notify a BeanContextChild to allocate resources obtained from the nesting BeanContext.
protected voidreleaseBeanContextResources()called from setBeanContext to notify a BeanContextChild to release resources obtained from the nesting BeanContext.
voidreleaseService(BeanContextChild child, Object requestor, Object service)release a service
voidremoveBeanContextServicesListener(BeanContextServicesListener bcsl)remove a BeanContextServicesListener
voidrevokeService(Class<?> serviceClass, BeanContextServiceProvider bcsp, boolean revokeCurrentServicesNow)remove a service
voidserviceAvailable(BeanContextServiceAvailableEvent bcssae)BeanContextServicesListener callback, propagates event to all currently registered listeners and BeanContextServices children, if this BeanContextService does not already implement this service itself.
voidserviceRevoked(BeanContextServiceRevokedEvent bcssre)BeanContextServicesListener callback, propagates event to all currently registered listeners and BeanContextServices children, if this BeanContextService does not already implement this service itself.
-
Methods declared in interface java.beans.beancontext.BeanContext
addBeanContextMembershipListener, getResource, getResourceAsStream, instantiateChild, removeBeanContextMembershipListener
-
Methods declared in interface java.beans.beancontext.BeanContextChild
addPropertyChangeListener, addVetoableChangeListener, getBeanContext, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext
-
Methods declared in class java.beans.beancontext.BeanContextChildSupport
addPropertyChangeListener, addVetoableChangeListener, firePropertyChange, fireVetoableChange, getBeanContext, getBeanContextChildPeer, isDelegated, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext, validatePendingSetBeanContext
-
Methods declared in 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 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
-
Methods declared in interface java.beans.DesignMode
isDesignTime, setDesignTime
-
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods declared in interface java.beans.Visibility
avoidingGui, dontUseGui, needsGui, okToUseGui
-
-
-
-
Field Detail
-
services
protected transient HashMap<Object,BeanContextServicesSupport.BCSSServiceProvider> services
all accesses to the
protected transient HashMap servicesfield should be synchronized on that object
-
serializable
protected transient int serializable
The number of instances of a serializable
BeanContextServceProvider.
-
proxy
protected transient BeanContextServicesSupport.BCSSProxyServiceProvider proxy
Delegate for the
BeanContextServiceProvider.
-
bcsListeners
protected transient ArrayList<BeanContextServicesListener> bcsListeners
List of
BeanContextServicesListenerobjects.
-
-
Constructor Detail
-
BeanContextServicesSupport
public BeanContextServicesSupport(BeanContextServices peer, Locale lcle, boolean dTime, boolean visible)
Construct a BeanContextServicesSupport instance
- Parameters:
peer- The peer BeanContext we are supplying an implementation for, if null the this object is its own peerlcle- The current Locale for this BeanContext.dTime- The initial state, true if in design mode, false if runtime.visible- The initial visibility.
-
BeanContextServicesSupport
public BeanContextServicesSupport(BeanContextServices peer, Locale lcle, boolean dtime)
Create an instance using the specified Locale and design mode.
- Parameters:
peer- The peer BeanContext we are supplying an implementation for, if null the this object is its own peerlcle- The current Locale for this BeanContext.dtime- The initial state, true if in design mode, false if runtime.
-
BeanContextServicesSupport
public BeanContextServicesSupport(BeanContextServices peer, Locale lcle)
Create an instance using the specified locale
- Parameters:
peer- The peer BeanContext we are supplying an implementation for, if null the this object is its own peerlcle- The current Locale for this BeanContext.
-
BeanContextServicesSupport
public BeanContextServicesSupport(BeanContextServices peer)
Create an instance with a peer
- Parameters:
peer- The peer BeanContext we are supplying an implementation for, if null the this object is its own peer
-
BeanContextServicesSupport
public BeanContextServicesSupport()
Create an instance that is not a delegate of another object
-
-
Method Detail
-
initialize
public void initialize()
called by BeanContextSupport superclass during construction and deserialization to initialize subclass transient state. subclasses may envelope this method, but should not override it or call it directly.
- Overrides:
initializein classBeanContextSupport
-
getBeanContextServicesPeer
public BeanContextServices getBeanContextServicesPeer()
Gets the
BeanContextServicesassociated with thisBeanContextServicesSupport.- Returns:
- the instance of
BeanContextthis object is providing the implementation for.
-
createBCSChild
protected BeanContextSupport.BCSChild createBCSChild(Object targetChild, Object peer)
Subclasses can override this method to insert their own subclass of Child without having to override add() or the other Collection methods that add children to the set.
- Overrides:
createBCSChildin classBeanContextSupport- Parameters:
targetChild- the child to create the Child on behalf ofpeer- the peer if the targetChild and peer are related by BeanContextProxy- Returns:
- Subtype-specific subclass of Child without overriding collection methods
-
createBCSSServiceProvider
protected BeanContextServicesSupport.BCSSServiceProvider createBCSSServiceProvider(Class<?> sc, BeanContextServiceProvider bcsp)
subclasses can override this method to create new subclasses of BCSSServiceProvider without having to override addService() in order to instantiate.
- Parameters:
sc- the classbcsp- the service provider- Returns:
- a service provider without overriding addService()
-
addBeanContextServicesListener
public void addBeanContextServicesListener(BeanContextServicesListener bcsl)
add a BeanContextServicesListener
- Specified by:
addBeanContextServicesListenerin interfaceBeanContextServices- Parameters:
bcsl- theBeanContextServicesListenerto add- Throws:
NullPointerException- if the argument is null
-
removeBeanContextServicesListener
public void removeBeanContextServicesListener(BeanContextServicesListener bcsl)
remove a BeanContextServicesListener
- Specified by:
removeBeanContextServicesListenerin interfaceBeanContextServices- Parameters:
bcsl- theBeanContextServicesListenerto remove from this context
-
addService
public boolean addService(Class<?> serviceClass, BeanContextServiceProvider bcsp)
add a service
- Specified by:
addServicein interfaceBeanContextServices- Parameters:
serviceClass- the service classbcsp- the service provider- Returns:
- true if the service was successful added, false otherwise
-
addService
protected boolean addService(Class<?> serviceClass, BeanContextServiceProvider bcsp, boolean fireEvent)
add a service
- Parameters:
serviceClass- the service classbcsp- the service providerfireEvent- whether or not an event should be fired- Returns:
- true if the service was successfully added
-
revokeService
public void revokeService(Class<?> serviceClass, BeanContextServiceProvider bcsp, boolean revokeCurrentServicesNow)
remove a service
- Specified by:
revokeServicein interfaceBeanContextServices- Parameters:
serviceClass- the service classbcsp- the service providerrevokeCurrentServicesNow- whether or not to revoke the service
-
hasService
public boolean hasService(Class<?> serviceClass)
has a service, which may be delegated
- Specified by:
hasServicein interfaceBeanContextServices- Parameters:
serviceClass- the service in question- Returns:
- true if the service is available
-
getService
public Object getService(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl) throws TooManyListenersException
obtain a service which may be delegated
- Specified by:
getServicein interfaceBeanContextServices- Parameters:
child- theBeanContextChildassociated with this requestrequestor- the object requesting the serviceserviceClass- class of the requested serviceserviceSelector- the service dependent parameterbcsrl- theBeanContextServiceRevokedListenerto notify if the service should later become revoked- Returns:
- a reference to this context's named
Service as requested or
null - Throws:
TooManyListenersException- if there are too many listeners
-
releaseService
public void releaseService(BeanContextChild child, Object requestor, Object service)
release a service
- Specified by:
releaseServicein interfaceBeanContextServices- Parameters:
child- theBeanContextChildrequestor- the requestorservice- the service
-
getCurrentServiceClasses
public Iterator<Object> getCurrentServiceClasses()
Gets the currently available services for this context.
- Specified by:
getCurrentServiceClassesin interfaceBeanContextServices- Returns:
- an iterator for all the currently registered service classes.
-
getCurrentServiceSelectors
public Iterator<?> getCurrentServiceSelectors(Class<?> serviceClass)
Gets the list of service dependent service parameters (Service Selectors) for the specified service, by calling getCurrentServiceSelectors() on the underlying BeanContextServiceProvider.
- Specified by:
getCurrentServiceSelectorsin interfaceBeanContextServices- Parameters:
serviceClass- the specified service- Returns:
- an iterator for all the currently available service selectors (if any) available for the specified service.
-
serviceAvailable
public void serviceAvailable(BeanContextServiceAvailableEvent bcssae)
BeanContextServicesListener callback, propagates event to all currently registered listeners and BeanContextServices children, if this BeanContextService does not already implement this service itself. subclasses may override or envelope this method to implement their own propagation semantics.
- Specified by:
serviceAvailablein interfaceBeanContextServicesListener- Overrides:
serviceAvailablein classBeanContextChildSupport- Parameters:
bcssae- The BeanContextServiceAvailableEvent fired as a result of a service becoming available
-
serviceRevoked
public void serviceRevoked(BeanContextServiceRevokedEvent bcssre)
BeanContextServicesListener callback, propagates event to all currently registered listeners and BeanContextServices children, if this BeanContextService does not already implement this service itself. subclasses may override or envelope this method to implement their own propagation semantics.
- Specified by:
serviceRevokedin interfaceBeanContextServiceRevokedListener- Overrides:
serviceRevokedin classBeanContextChildSupport- Parameters:
bcssre- TheBeanContextServiceRevokedEventfired as a result of a service being revoked
-
getChildBeanContextServicesListener
protected static final BeanContextServicesListener getChildBeanContextServicesListener(Object child)
Gets the
BeanContextServicesListener(if any) of the specified child.- Parameters:
child- the specified child- Returns:
- the BeanContextServicesListener (if any) of the specified child
-
childJustRemovedHook
protected void childJustRemovedHook(Object child, BeanContextSupport.BCSChild bcsc)
called from superclass child removal operations after a child has been successfully removed. called with child synchronized. This subclass uses this hook to immediately revoke any services being used by this child if it is a BeanContextChild. subclasses may envelope this method in order to implement their own child removal side-effects.
- Overrides:
childJustRemovedHookin classBeanContextSupport- Parameters:
child- the childbcsc- the BCSChild
-
releaseBeanContextResources
protected void releaseBeanContextResources()
called from setBeanContext to notify a BeanContextChild to release resources obtained from the nesting BeanContext. This method revokes any services obtained from its parent. subclasses may envelope this method to implement their own semantics.
- Overrides:
releaseBeanContextResourcesin classBeanContextChildSupport
-
initializeBeanContextResources
protected void initializeBeanContextResources()
called from setBeanContext to notify a BeanContextChild to allocate resources obtained from the nesting BeanContext. subclasses may envelope this method to implement their own semantics.
- Overrides:
initializeBeanContextResourcesin classBeanContextChildSupport
-
fireServiceAdded
protected final void fireServiceAdded(Class<?> serviceClass)
Fires a
BeanContextServiceEventnotifying of a new service.- Parameters:
serviceClass- the service class
-
fireServiceAdded
protected final void fireServiceAdded(BeanContextServiceAvailableEvent bcssae)
Fires a
BeanContextServiceAvailableEventindicating that a new service has become available.- Parameters:
bcssae- theBeanContextServiceAvailableEvent
-
fireServiceRevoked
protected final void fireServiceRevoked(BeanContextServiceRevokedEvent bcsre)
Fires a
BeanContextServiceEventnotifying of a service being revoked.- Parameters:
bcsre- theBeanContextServiceRevokedEvent
-
fireServiceRevoked
protected final void fireServiceRevoked(Class<?> serviceClass, boolean revokeNow)
Fires a
BeanContextServiceRevokedEventindicating that a particular service is no longer available.- Parameters:
serviceClass- the service classrevokeNow- whether or not the event should be revoked now
-
bcsPreSerializationHook
protected void bcsPreSerializationHook(ObjectOutputStream oos) throws IOException
called from BeanContextSupport writeObject before it serializes the children ... This class will serialize any Serializable BeanContextServiceProviders herein. subclasses may envelope this method to insert their own serialization processing that has to occur prior to serialization of the children
- Overrides:
bcsPreSerializationHookin classBeanContextSupport- Parameters:
oos- theObjectOutputStreamto use during serialization- Throws:
IOException- if serialization failed
-
bcsPreDeserializationHook
protected void bcsPreDeserializationHook(ObjectInputStream ois) throws IOException, ClassNotFoundException
called from BeanContextSupport readObject before it deserializes the children ... This class will deserialize any Serializable BeanContextServiceProviders serialized earlier thus making them available to the children when they deserialized. subclasses may envelope this method to insert their own serialization processing that has to occur prior to serialization of the children
- Overrides:
bcsPreDeserializationHookin classBeanContextSupport- Parameters:
ois- theObjectInputStreamto use during deserialization- Throws:
IOException- if deserialization failedClassNotFoundException- if needed classes are not found
-
-