*/
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;
+ }
}