From 8a7b9b436b31e6d2f5a0521a077c960ebdeb4cbe Mon Sep 17 00:00:00 2001 From: Oszkar Semerath Date: Tue, 28 Apr 2020 20:43:04 +0200 Subject: initial commit --- .../tests/SolverLanguageInjectorProvider.java | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Application/org.eclipse.viatra.solver.language.tests/src-gen/org/eclipse/viatra/solver/language/tests/SolverLanguageInjectorProvider.java (limited to 'Application/org.eclipse.viatra.solver.language.tests/src-gen/org/eclipse/viatra/solver/language') diff --git a/Application/org.eclipse.viatra.solver.language.tests/src-gen/org/eclipse/viatra/solver/language/tests/SolverLanguageInjectorProvider.java b/Application/org.eclipse.viatra.solver.language.tests/src-gen/org/eclipse/viatra/solver/language/tests/SolverLanguageInjectorProvider.java new file mode 100644 index 00000000..f6f7cc26 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language.tests/src-gen/org/eclipse/viatra/solver/language/tests/SolverLanguageInjectorProvider.java @@ -0,0 +1,69 @@ +/* + * generated by Xtext 2.18.0.M3 + */ +package org.eclipse.viatra.solver.language.tests; + +import com.google.inject.Guice; +import com.google.inject.Injector; +import org.eclipse.viatra.solver.language.SolverLanguageRuntimeModule; +import org.eclipse.viatra.solver.language.SolverLanguageStandaloneSetup; +import org.eclipse.xtext.testing.GlobalRegistries; +import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento; +import org.eclipse.xtext.testing.IInjectorProvider; +import org.eclipse.xtext.testing.IRegistryConfigurator; + +public class SolverLanguageInjectorProvider implements IInjectorProvider, IRegistryConfigurator { + + protected GlobalStateMemento stateBeforeInjectorCreation; + protected GlobalStateMemento stateAfterInjectorCreation; + protected Injector injector; + + static { + GlobalRegistries.initializeDefaults(); + } + + @Override + public Injector getInjector() { + if (injector == null) { + this.injector = internalCreateInjector(); + stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState(); + } + return injector; + } + + protected Injector internalCreateInjector() { + return new SolverLanguageStandaloneSetup() { + @Override + public Injector createInjector() { + return Guice.createInjector(createRuntimeModule()); + } + }.createInjectorAndDoEMFRegistration(); + } + + protected SolverLanguageRuntimeModule createRuntimeModule() { + // make it work also with Maven/Tycho and OSGI + // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=493672 + return new SolverLanguageRuntimeModule() { + @Override + public ClassLoader bindClassLoaderToInstance() { + return SolverLanguageInjectorProvider.class + .getClassLoader(); + } + }; + } + + @Override + public void restoreRegistry() { + stateBeforeInjectorCreation.restoreGlobalState(); + stateBeforeInjectorCreation = null; + } + + @Override + public void setupRegistry() { + stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState(); + if (injector == null) { + getInjector(); + } + stateAfterInjectorCreation.restoreGlobalState(); + } +} -- cgit v1.2.3-54-g00ecf