(no commit message)
[utils] / support / inject / src / main / java / org / wamblee / inject / Injectable.java
index 4f55cc35e2db8cc05da4766bde0424c794629810..7cfdc3d1b56945cbfc54fcfe6044f1b5207dd09c 100644 (file)
  */
 package org.wamblee.inject;
 
-
-
 /**
  * This abstract base class performs injection at construction. Be sure not to
  * initialize fields of derived classes to null as these will override the
  * initializations of this base class.
  * 
- * This class uses {@link InjectorFactoryBuilder} to obtain an implementation of 
- * a {@link InjectorFactory} to use. 
+ * This class uses {@link InjectorBuilder} to obtain an implementation of a
+ * {@link InjectorFactory} to use.
  * 
  * @author Erik Brakkee
  */
 public abstract class Injectable {
 
-    private static final SimpleInjector INJECTOR = new SimpleInjector(
-        InjectorFactoryBuilder.getInjectorFactory());
+    private final Injector injector = InjectorBuilder.getInjector();
 
     /**
      * Inheritance style constructor.
      */
     protected Injectable() {
-        INJECTOR.inject(this);
-    }    
+        inject();
+    }
+
+    /**
+     * Inject references. This can be useful when injection is to be done again
+     * after construction to obtain new references or after zeroing out of the
+     * references.
+     */
+    public void inject() {
+        injector.inject(this);
+    }
+
+    /**
+     * Gets the default injector.
+     * 
+     * @return Injector.
+     */
+    public Injector getInjector() {
+        return injector;
+    }
 }