Module java.desktop

Class BeanContextServicesSupport

    • 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 peer
        lcle - 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 peer
        lcle - 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 peer
        lcle - 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:
        initialize in class BeanContextSupport
      • getBeanContextServicesPeer

        public BeanContextServices getBeanContextServicesPeer​()
        Gets the BeanContextServices associated with this BeanContextServicesSupport.
        Returns:
        the instance of BeanContext this 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:
        createBCSChild in class BeanContextSupport
        Parameters:
        targetChild - the child to create the Child on behalf of
        peer - 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 class
        bcsp - the service provider
        Returns:
        a service provider without overriding addService()
      • addService

        public boolean addService​(Class<?> serviceClass,
                                  BeanContextServiceProvider bcsp)
        add a service
        Specified by:
        addService in interface BeanContextServices
        Parameters:
        serviceClass - the service class
        bcsp - 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 class
        bcsp - the service provider
        fireEvent - 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:
        revokeService in interface BeanContextServices
        Parameters:
        serviceClass - the service class
        bcsp - the service provider
        revokeCurrentServicesNow - whether or not to revoke the service
      • hasService

        public boolean hasService​(Class<?> serviceClass)
        has a service, which may be delegated
        Specified by:
        hasService in interface BeanContextServices
        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:
        getService in interface BeanContextServices
        Parameters:
        child - the BeanContextChild associated with this request
        requestor - the object requesting the service
        serviceClass - class of the requested service
        serviceSelector - the service dependent parameter
        bcsrl - the BeanContextServiceRevokedListener to 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
      • getCurrentServiceSelectors

        public Iterator<?> getCurrentServiceSelectors​(Class<?> serviceClass)
        Description copied from interface: BeanContextServices
        Gets the list of service dependent service parameters (Service Selectors) for the specified service, by calling getCurrentServiceSelectors() on the underlying BeanContextServiceProvider.
        Specified by:
        getCurrentServiceSelectors in interface BeanContextServices
        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:
        serviceAvailable in interface BeanContextServicesListener
        Overrides:
        serviceAvailable in class BeanContextChildSupport
        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:
        serviceRevoked in interface BeanContextServiceRevokedListener
        Overrides:
        serviceRevoked in class BeanContextChildSupport
        Parameters:
        bcssre - The BeanContextServiceRevokedEvent fired 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:
        childJustRemovedHook in class BeanContextSupport
        Parameters:
        child - the child
        bcsc - 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:
        releaseBeanContextResources in class BeanContextChildSupport
      • 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:
        initializeBeanContextResources in class BeanContextChildSupport
      • fireServiceAdded

        protected final void fireServiceAdded​(Class<?> serviceClass)
        Fires a BeanContextServiceEvent notifying of a new service.
        Parameters:
        serviceClass - the service class
      • fireServiceAdded

        protected final void fireServiceAdded​(BeanContextServiceAvailableEvent bcssae)
        Fires a BeanContextServiceAvailableEvent indicating that a new service has become available.
        Parameters:
        bcssae - the BeanContextServiceAvailableEvent
      • fireServiceRevoked

        protected final void fireServiceRevoked​(BeanContextServiceRevokedEvent bcsre)
        Fires a BeanContextServiceEvent notifying of a service being revoked.
        Parameters:
        bcsre - the BeanContextServiceRevokedEvent
      • fireServiceRevoked

        protected final void fireServiceRevoked​(Class<?> serviceClass,
                                                boolean revokeNow)
        Fires a BeanContextServiceRevokedEvent indicating that a particular service is no longer available.
        Parameters:
        serviceClass - the service class
        revokeNow - 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:
        bcsPreSerializationHook in class BeanContextSupport
        Parameters:
        oos - the ObjectOutputStream to 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:
        bcsPreDeserializationHook in class BeanContextSupport
        Parameters:
        ois - the ObjectInputStream to use during deserialization
        Throws:
        IOException - if deserialization failed
        ClassNotFoundException - if needed classes are not found