]> git.somenet.org - pub/jan/dst18.git/blob - ass2-di/src/main/java/dst/ass2/di/InjectionControllerFactory.java
[2.2.1] Standalone DI works now.
[pub/jan/dst18.git] / ass2-di / src / main / java / dst / ass2 / di / InjectionControllerFactory.java
1 package dst.ass2.di;
2
3 import dst.ass2.di.impl.InjectionControllerImpl;
4
5 /**
6  * Creates and provides {@link IInjectionController} instances.
7  */
8 public class InjectionControllerFactory {
9     private static IInjectionController standalone = null;
10
11     /**
12      * Returns the singleton {@link IInjectionController} instance.<br/>
13      * If none is available, a new one is created.
14      *
15      * @return the instance
16      */
17     public static synchronized IInjectionController getStandAloneInstance() {
18         if (standalone == null) {
19             standalone = getNewStandaloneInstance();
20         }
21         return standalone;
22     }
23
24     /**
25      * Returns the singleton {@link IInjectionController} instance for processing objects modified by an
26      * {@link dst.ass2.di.agent.InjectorAgent InjectorAgent}.<br/>
27      * If none is available, a new one is created.
28      *
29      * @return the instance
30      */
31     public static synchronized IInjectionController getTransparentInstance() {
32         // TODO
33         return null;
34     }
35
36     /**
37      * Creates and returns a new {@link IInjectionController} instance.
38      *
39      * @return the newly created instance
40      */
41     public static IInjectionController getNewStandaloneInstance() {
42         return new InjectionControllerImpl();
43     }
44
45     /**
46      * Creates and returns a new {@link IInjectionController} instance for processing objects modified by an
47      * {@link dst.ass2.di.agent.InjectorAgent InjectorAgent}.<br/>
48      *
49      * @return the instance
50      */
51     public static IInjectionController getNewTransparentInstance() {
52         // TODO
53         return null;
54     }
55 }