Class AddMethodInjector<T>

  • Type Parameters:
    T - the value type
    All Implemented Interfaces:
    Injector<T>

    public final class AddMethodInjector<T>
    extends RetainingInjector<T>
    implements Injector<T>
    An injector which calls an add/remove method pair on inject/uninject. Note that this class still adheres to the contract of Injector - namely, the same injector cannot be used to inject multiple instances into a collection.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.reflect.Method addMethod  
      private java.lang.reflect.Method removeMethod  
      private Value<?> target  
    • Constructor Summary

      Constructors 
      Constructor Description
      AddMethodInjector​(Value<?> target, java.lang.reflect.Method addMethod, java.lang.reflect.Method removeMethod)
      Construct a new instance.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void inject​(T value)
      Inject the given value.
      void uninject()
      Uninject the given value (in other words, cancel or undo a previous injection).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • target

        private final Value<?> target
      • addMethod

        private final java.lang.reflect.Method addMethod
      • removeMethod

        private final java.lang.reflect.Method removeMethod
    • Constructor Detail

      • AddMethodInjector

        public AddMethodInjector​(Value<?> target,
                                 java.lang.reflect.Method addMethod,
                                 java.lang.reflect.Method removeMethod)
        Construct a new instance.
        Parameters:
        target - the target upon which the add/remove methods should be invoked
        addMethod - the add method
        removeMethod - the remove method
    • Method Detail

      • uninject

        public void uninject()
        Uninject the given value (in other words, cancel or undo a previous injection). Only called after inject() has been called.
        Specified by:
        uninject in interface Injector<T>
        Overrides:
        uninject in class RetainingInjector<T>