Class ValueInjectionService<T>

  • Type Parameters:
    T - the service type
    All Implemented Interfaces:
    Service<T>, Value<T>

    public final class ValueInjectionService<T>
    extends java.lang.Object
    implements Service<T>
    A service which propagates a value from a dependency.
    • Constructor Detail

      • ValueInjectionService

        public ValueInjectionService()
    • Method Detail

      • start

        public void start​(StartContext context)
                   throws StartException
        Start the service. Do not return until the service has been fully started, unless an asynchronous service start is performed. All injections will be complete before this method is called.

        If the service start involves any activities that may block, the asynchronous mechanism provided by the context should be used. See the class javadoc for details.

        Specified by:
        start in interface Service<T>
        Parameters:
        context - the context which can be used to trigger an asynchronous service start
        Throws:
        StartException - if the service could not be started for some reason
      • stop

        public void stop​(StopContext context)
        Stop the service. Do not return until the service has been fully stopped, unless an asynchronous service stop is performed. All injections will remain intact until the service is fully stopped. This method should not throw an exception.

        If the service start involves any activities that may block, the asynchronous mechanism provided by the context should be used. See the class javadoc for details.

        Specified by:
        stop in interface Service<T>
        Parameters:
        context - the context which can be used to trigger an asynchronous service stop
      • getValue

        public T getValue()
                   throws java.lang.IllegalStateException,
                          java.lang.IllegalArgumentException
        Get the actual value.
        Specified by:
        getValue in interface Value<T>
        Returns:
        the actual value
        Throws:
        java.lang.IllegalStateException - if the value is time-sensitive and the current state does not allow retrieval.
        java.lang.IllegalArgumentException - when the value cannot be read due to misconfiguration
      • getInjector

        public Injector<T> getInjector()
        Get the injector, which should be used to inject the dependency.
        Returns:
        the injector