Browse Source

Explicitly added TypeSystem resource to resource set when generating
state machines.

Axel Terfloth 9 years ago
parent
commit
01747e3450

+ 14 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/GeneratorExecutor.java

@@ -18,7 +18,11 @@ import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.yakindu.base.types.typesystem.AbstractTypeSystem;
+import org.yakindu.base.types.typesystem.ITypeSystem;
 import org.yakindu.sct.domain.extension.DomainRegistry;
 import org.yakindu.sct.domain.extension.IDomainDescriptor;
 import org.yakindu.sct.generator.core.extensions.GeneratorExtensions;
@@ -44,6 +48,7 @@ public class GeneratorExecutor {
 			return;
 		final GeneratorModel model = (GeneratorModel) resource.getContents().get(0);
 
+
 		Job generatorJob = new Job("Execute SCT Genmodel " + file.getName()) {
 			@Override
 			protected IStatus run(IProgressMonitor monitor) {
@@ -81,6 +86,15 @@ public class GeneratorExecutor {
 		Injector injector = domainDescriptor.getDomainInjectorProvider().getGeneratorInjector(model.getGeneratorId(),
 				overridesModule);
 		injector.injectMembers(generator);
+		
+		// TODO: refactor location for adding type system resource.
+//		ITypeSystem typeSystem = injector.getInstance(ITypeSystem.class);
+//		if (typeSystem instanceof AbstractTypeSystem) {
+//			ResourceSet set = entry.getElementRef().eResource().getResourceSet();
+//			set.getResources().add(((AbstractTypeSystem) typeSystem).getResource());
+//			EcoreUtil.resolveAll(set);
+//		}
+
 		return generator;
 	}