Class DelegatingServiceTarget

  • All Implemented Interfaces:
    ServiceTarget

    public final class DelegatingServiceTarget
    extends java.lang.Object
    implements ServiceTarget
    An "insulated" view of a service target which prevents access to other public methods on the delegate target object.
    • Constructor Detail

      • DelegatingServiceTarget

        public DelegatingServiceTarget​(ServiceTarget delegate)
        Construct a new instance.
        Parameters:
        delegate - the delegate service target
    • Method Detail

      • addServiceValue

        public <T> ServiceBuilder<T> addServiceValue​(ServiceName name,
                                                     Value<? extends Service<T>> value)
                                              throws java.lang.IllegalArgumentException
        Get a builder which can be used to add a service to this target.
        Specified by:
        addServiceValue in interface ServiceTarget
        Parameters:
        name - the service name
        value - the service value
        Returns:
        the builder for the service
        Throws:
        java.lang.IllegalArgumentException
      • addService

        public <T> ServiceBuilder<T> addService​(ServiceName name,
                                                Service<T> service)
                                         throws java.lang.IllegalArgumentException
        Get a builder which can be used to add a service to this target.
        Specified by:
        addService in interface ServiceTarget
        Parameters:
        name - the service name
        service - the service
        Returns:
        the builder for the service
        Throws:
        java.lang.IllegalArgumentException
      • addListener

        public ServiceTarget addListener​(ServiceListener<java.lang.Object> listener)
        Add a service listener that will be added to all the ServiceBuilders installed in this target.
        Specified by:
        addListener in interface ServiceTarget
        Parameters:
        listener - the listener to add to the target
        Returns:
        this target
      • addListener

        public ServiceTarget addListener​(ServiceListener<java.lang.Object>... listeners)
        Add a list of service listener that will be added to all ServiceBuilders installed in this target.
        Specified by:
        addListener in interface ServiceTarget
        Parameters:
        listeners - a list of listeners to add to the target
        Returns:
        this target
      • addListener

        public ServiceTarget addListener​(java.util.Collection<ServiceListener<java.lang.Object>> listeners)
        Add a collection of service listener that will be added to all ServiceBuilders installed in this target.
        Specified by:
        addListener in interface ServiceTarget
        Parameters:
        listeners - a collection of listeners to add to the target
        Returns:
        this target
      • removeListener

        public ServiceTarget removeListener​(ServiceListener<java.lang.Object> listener)
        Remove a listener from this target, if it exists.
        Specified by:
        removeListener in interface ServiceTarget
        Parameters:
        listener - the listener to remove
        Returns:
        this target
      • getListeners

        public java.util.Set<ServiceListener<java.lang.Object>> getListeners()
        Returns a set of the listeners added to this target.
        Specified by:
        getListeners in interface ServiceTarget
        Returns:
        the listeners added to this target
      • addDependency

        public ServiceTarget addDependency​(ServiceName dependency)
        Add a dependency that will be added to the all ServiceBuilders installed in this target.
        Specified by:
        addDependency in interface ServiceTarget
        Parameters:
        dependency - the dependency to add to the target
        Returns:
        this target
      • addDependency

        public ServiceTarget addDependency​(ServiceName... dependencies)
        Add a list of dependencies that will be added to the all ServiceBuilders installed in this target.
        Specified by:
        addDependency in interface ServiceTarget
        Parameters:
        dependencies - a list of dependencies to add to the target
        Returns:
        this target
      • addDependency

        public ServiceTarget addDependency​(java.util.Collection<ServiceName> dependencies)
        Add a collection of dependencies that will be added to the all ServiceBuilders installed in this target
        Specified by:
        addDependency in interface ServiceTarget
        Parameters:
        dependencies - a collection of dependencies to add to this target
        Returns:
        this target
      • removeDependency

        public ServiceTarget removeDependency​(ServiceName dependency)
        Remove a dependency from this target. Subsequently defined services will not have this dependency.
        Specified by:
        removeDependency in interface ServiceTarget
        Parameters:
        dependency - the dependency
        Returns:
        this target
      • getDependencies

        public java.util.Set<ServiceName> getDependencies()
        Returns a set of all dependencies added to this target.
        Specified by:
        getDependencies in interface ServiceTarget
        Returns:
        all dependencies of this target
      • subTarget

        public ServiceTarget subTarget()
        Create a sub-target using this as the parent target.
        Specified by:
        subTarget in interface ServiceTarget
        Returns:
        the new service target
      • batchTarget

        public BatchServiceTarget batchTarget()
        Create a new batch service target, which is used to install described services in this target.
        Specified by:
        batchTarget in interface ServiceTarget
        Returns:
        the new batch service target
      • addMonitor

        public ServiceTarget addMonitor​(StabilityMonitor monitor)
        Add a stability monitor that will be added to all the ServiceBuilders installed in this target.
        Specified by:
        addMonitor in interface ServiceTarget
        Parameters:
        monitor - the monitor to add to the target
        Returns:
        this target
      • addMonitors

        public ServiceTarget addMonitors​(StabilityMonitor... monitors)
        Add a stability monitors that will be added to all the ServiceBuilders installed in this target.
        Specified by:
        addMonitors in interface ServiceTarget
        Parameters:
        monitors - the monitors to add to the target
        Returns:
        this target
      • getMonitors

        public java.util.Set<StabilityMonitor> getMonitors()
        Returns a set of the monitors added to this target.
        Specified by:
        getMonitors in interface ServiceTarget
        Returns:
        the monitors added to this target