瀏覽代碼

Merge pull request #2140 from Yakindu/unloading_typesystem

types are addded via scope, no need to add them explicit
Thomas Kutz 7 年之前
父節點
當前提交
a3435c1f92

+ 0 - 21
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/execution/GeneratorExecutorLookup.java

@@ -11,11 +11,6 @@
 package org.yakindu.sct.generator.core.execution;
 
 import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-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.IDomain;
 import org.yakindu.sct.domain.extension.IModuleConfigurator;
@@ -66,22 +61,6 @@ public class GeneratorExecutorLookup {
 			throw new RuntimeException("Failed to create generator instance for ID:" + generatorId);
 		Injector injector = createInjector(entry, description, generatorId);
 		injector.injectMembers(executor);
-		ITypeSystem typeSystem = injector.getInstance(ITypeSystem.class);
-		if (typeSystem instanceof AbstractTypeSystem) {
-			ResourceSet set = entry.getElementRef().eResource().getResourceSet();
-			Resource typeSystemResource = ((AbstractTypeSystem) typeSystem).getResource();
-			if (set != null && typeSystemResource != null && !set.getResources().contains(typeSystemResource)) {
-				set.getResources().add(typeSystemResource);
-
-				// XXX: avoid resolving the whole resource set, because there might
-				// be models with different domains, we have to ensure that just the
-				// models related to the current entry are resolved
-				EcoreUtil.resolveAll(entry);
-				EcoreUtil.resolveAll(entry.getElementRef());
-				EcoreUtil.resolveAll(typeSystemResource);
-			}
-		}
-
 		return executor;
 	}
 

+ 4 - 1
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/scoping/ImportedResourceCache.java

@@ -79,7 +79,10 @@ public class ImportedResourceCache {
 	 * Editing Domain runexclusive
 	 */
 	protected void refreshFile(final URI uri) {
-		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(uri.toPlatformString(true)));
+		String platformString = uri.toPlatformString(true);
+		if (platformString == null)
+			return;
+		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(platformString));
 		if (file.isAccessible() && !file.isSynchronized(IResource.DEPTH_INFINITE)) {
 			try {
 				file.refreshLocal(IResource.DEPTH_INFINITE, null);