summaryrefslogtreecommitdiff
path: root/org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandExecutableExtensionFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandExecutableExtensionFactory.java')
-rw-r--r--org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandExecutableExtensionFactory.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandExecutableExtensionFactory.java b/org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandExecutableExtensionFactory.java
new file mode 100644
index 0000000..768c1ab
--- /dev/null
+++ b/org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandExecutableExtensionFactory.java
@@ -0,0 +1,51 @@
+/* Copyright (C) 2013 BMW Group
+ * Author: Manfred Bathelt (manfred.bathelt@bmw.de)
+ * Author: Juergen Gehring (juergen.gehring@bmw.de)
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+package org.genivi.commonapi.core.cli;
+
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.xtext.generator.IGenerator;
+import org.eclipse.xtext.ui.ecore.ExecutableExtensionFactory;
+import org.genivi.commonapi.core.generator.FrancaGenerator;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Binder;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+public class CommandExecutableExtensionFactory extends ExecutableExtensionFactory
+{
+ private Injector injector;
+
+ @Override
+ protected Bundle getBundle()
+ {
+ return Activator.getDefault().getBundle();
+ }
+
+ @Override
+ protected Injector getInjector()
+ {
+ if (injector == null)
+ injector = super.getInjector().createChildInjector(new Module()
+ {
+ @Override
+ public void configure(final Binder binder)
+ {
+ binder.bind(ResourceSet.class).to(ResourceSetImpl.class);
+ bindGeneratorClass(binder);
+ }
+ });
+
+ return injector;
+ }
+
+ protected void bindGeneratorClass(final Binder binder)
+ {
+ binder.bind(IGenerator.class).to(FrancaGenerator.class);
+ }
+}