diff options
Diffstat (limited to 'Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageInjectorProvider.java')
-rw-r--r-- | Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageInjectorProvider.java | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageInjectorProvider.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageInjectorProvider.java new file mode 100644 index 00000000..f3c1588b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageInjectorProvider.java | |||
@@ -0,0 +1,66 @@ | |||
1 | /* | ||
2 | * generated by Xtext 2.12.0 | ||
3 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.tests; | ||
5 | |||
6 | import ca.mcgill.ecse.dslreasoner.VampireLanguageRuntimeModule; | ||
7 | import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup; | ||
8 | import com.google.inject.Guice; | ||
9 | import com.google.inject.Injector; | ||
10 | import org.eclipse.xtext.testing.GlobalRegistries; | ||
11 | import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento; | ||
12 | import org.eclipse.xtext.testing.IInjectorProvider; | ||
13 | import org.eclipse.xtext.testing.IRegistryConfigurator; | ||
14 | |||
15 | public class VampireLanguageInjectorProvider implements IInjectorProvider, IRegistryConfigurator { | ||
16 | |||
17 | protected GlobalStateMemento stateBeforeInjectorCreation; | ||
18 | protected GlobalStateMemento stateAfterInjectorCreation; | ||
19 | protected Injector injector; | ||
20 | |||
21 | static { | ||
22 | GlobalRegistries.initializeDefaults(); | ||
23 | } | ||
24 | |||
25 | @Override | ||
26 | public Injector getInjector() { | ||
27 | if (injector == null) { | ||
28 | stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState(); | ||
29 | this.injector = internalCreateInjector(); | ||
30 | stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState(); | ||
31 | } | ||
32 | return injector; | ||
33 | } | ||
34 | |||
35 | protected Injector internalCreateInjector() { | ||
36 | return new VampireLanguageStandaloneSetup() { | ||
37 | @Override | ||
38 | public Injector createInjector() { | ||
39 | return Guice.createInjector(createRuntimeModule()); | ||
40 | } | ||
41 | }.createInjectorAndDoEMFRegistration(); | ||
42 | } | ||
43 | |||
44 | protected VampireLanguageRuntimeModule createRuntimeModule() { | ||
45 | // make it work also with Maven/Tycho and OSGI | ||
46 | // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=493672 | ||
47 | return new VampireLanguageRuntimeModule() { | ||
48 | @Override | ||
49 | public ClassLoader bindClassLoaderToInstance() { | ||
50 | return VampireLanguageInjectorProvider.class | ||
51 | .getClassLoader(); | ||
52 | } | ||
53 | }; | ||
54 | } | ||
55 | |||
56 | @Override | ||
57 | public void restoreRegistry() { | ||
58 | stateBeforeInjectorCreation.restoreGlobalState(); | ||
59 | } | ||
60 | |||
61 | @Override | ||
62 | public void setupRegistry() { | ||
63 | getInjector(); | ||
64 | stateAfterInjectorCreation.restoreGlobalState(); | ||
65 | } | ||
66 | } | ||