1
2
3
4
5
6 package pt.digitalis.dif.ioc;
7
8 import pt.digitalis.dif.startup.DIFStartupConfiguration;
9 import pt.digitalis.utils.ioc.IIoCRegistry;
10 import pt.digitalis.utils.ioc.IoCImplementations;
11 import pt.digitalis.utils.ioc.exception.IoCException;
12 import pt.digitalis.utils.ioc.guice.IoCRegistryGuiceImpl;
13
14
15
16
17
18
19
20
21
22 final public class DIFIoCRegistry {
23
24
25 private static IIoCRegistry instance;
26
27
28
29
30
31
32 static public IIoCRegistry getRegistry()
33 {
34 if (instance == null)
35 if (IoCImplementations.GUICE.equals(DIFStartupConfiguration.getIoCImplementation()))
36 {
37 try
38 {
39 instance = IoCRegistryGuiceImpl.getRegistry(DIFStartupConfiguration.getModuleParser());
40 }
41 catch (IoCException iocException)
42 {
43 throw new RuntimeException("Could not find a valid IoC registry! Unable to proceed...",
44 iocException);
45 }
46 }
47 else
48 throw new RuntimeException("Unsupported IoC: \"" + DIFStartupConfiguration.getIoCImplementation()
49 + "\"\n" + "Check DIF configuration.");
50
51 return instance;
52 }
53
54
55
56
57 private DIFIoCRegistry()
58 {}
59 }