Commit 3a97b2de authored by Daniel Honsel's avatar Daniel Honsel
Browse files

removed unused files and some clean up

parent 7321d289
Loading
Loading
Loading
Loading
+168 −96
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.resource.XtextResourceSet;
import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider;
import org.eclipse.xtext.validation.FeatureBasedDiagnostic;

import com.google.common.base.Stopwatch;
@@ -49,7 +48,8 @@ public class TTCN3ResourceProvider {

	private final Stopwatch stopwatch = Stopwatch.createUnstarted();

	public TTCN3ResourceProvider(final ArrayList<String> paths, LoggingInterface logger, QualityCheckProfile activeProfile) {
	public TTCN3ResourceProvider(final ArrayList<String> paths,
			LoggingInterface logger, QualityCheckProfile activeProfile) {
		super();
		this.paths = paths;
		this.logger = logger;
@@ -58,10 +58,11 @@ public class TTCN3ResourceProvider {

	public void loadResources() {
		// new org.eclipse.emf.mwe.utils.StandaloneSetup().setPlatformUri(path);
		Injector injector = new TTCN3StandaloneSetup().createInjectorAndDoEMFRegistration();
		Injector injector = new TTCN3StandaloneSetup()
				.createInjectorAndDoEMFRegistration();
		injector.injectMembers(this);
		resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE);
		//resourceSet.addLoadOption(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS, Boolean.TRUE);
		resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL,
				Boolean.TRUE);

		for (String path : paths) {
			File file = new File(path);
@@ -69,7 +70,8 @@ public class TTCN3ResourceProvider {
			if (file.isFile()) {
				parseFile(file);
			} else if (file.isDirectory()) {
				Collection<File> files = FileUtils.listFiles(file, new RegexFileFilter("^.*ttcn3$|^.*ttcn$|^.*3mp$"),
				Collection<File> files = FileUtils.listFiles(file,
						new RegexFileFilter("^.*ttcn3$|^.*ttcn$|^.*3mp$"),
						DirectoryFileFilter.DIRECTORY);

				for (File f : files) {
@@ -79,8 +81,9 @@ public class TTCN3ResourceProvider {
		}

		TTCN3StatisticsProvider.getInstance().setParsingCompleted(true);
		System.out.println("Test suite parsed in " + MiscTools.secondsToString(TTCN3StatisticsProvider.getInstance().getParseTime())
				+ " minutes.");
		System.out.println("Test suite parsed in "
				+ MiscTools.secondsToString(TTCN3StatisticsProvider
						.getInstance().getParseTime()) + " minutes.");
	}

	private void parseFile(File f) {
@@ -92,100 +95,140 @@ public class TTCN3ResourceProvider {
		}
		TTCN3StatisticsProvider.getInstance().addParedLines(lines);

		System.out.println("Parsing file: " + f.getPath() + " (LOC: " + lines + ") ...");
		System.out.println("Parsing file: " + f.getPath() + " (LOC: " + lines
				+ ") ...");
		stopwatch.start();
		String path = f.getAbsolutePath();
		resourceSet.getResource(URI.createURI("file:///" + path), true);
		stopwatch.stop();

		System.out.println("      ...done in " + stopwatch.elapsed(TimeUnit.MILLISECONDS) + "ms ("
				+ MiscTools.secondsToString(stopwatch.elapsed(TimeUnit.SECONDS)) + " minutes).");
		System.out
				.println("      ...done in "
						+ stopwatch.elapsed(TimeUnit.MILLISECONDS)
						+ "ms ("
						+ MiscTools.secondsToString(stopwatch
								.elapsed(TimeUnit.SECONDS)) + " minutes).");

		TTCN3StatisticsProvider.getInstance().addParseTime(stopwatch.elapsed(TimeUnit.SECONDS));
		TTCN3StatisticsProvider.getInstance().addParseTime(
				stopwatch.elapsed(TimeUnit.SECONDS));
		stopwatch.reset();
	}

	public void analyzeResources() {
		for (Resource r : resourceSet.getResources()) {
			System.out.println("Analyzing  file: " + r.getURI().devicePath().replaceFirst("///", "") + " ...");
			System.out.println("Analyzing  file: "
					+ r.getURI().devicePath().replaceFirst("///", "") + " ...");

			stopwatch.start();
			EcoreUtil.resolveAll(r);
			validate(r);
			for (Diagnostic d : r.getErrors()) {
				TTCN3StatisticsProvider.getInstance().incrementCountUniversal();
				logger.logInformation(r.getURI(), d.getLine(), d.getLine(), MessageClass.UNIVERSAL, d.getMessage());
				logger.logInformation(r.getURI(), d.getLine(), d.getLine(),
						MessageClass.UNIVERSAL, d.getMessage());
			}
			for (Diagnostic d : r.getWarnings()) {
				TTCN3StatisticsProvider.getInstance().incrementCountUniversal();
				logger.logInformation(r.getURI(), d.getLine(), d.getLine(), MessageClass.UNIVERSAL, d.getMessage());
				logger.logInformation(r.getURI(), d.getLine(), d.getLine(),
						MessageClass.UNIVERSAL, d.getMessage());
			}

			stopwatch.stop();

			System.out.println("  ...  Analyzing took: " + stopwatch.elapsed(TimeUnit.MILLISECONDS) + " ms ("
					+ MiscTools.secondsToString(stopwatch.elapsed(TimeUnit.SECONDS)) + " minutes).");
			System.out.println("  ...  Analyzing took: "
					+ stopwatch.elapsed(TimeUnit.MILLISECONDS)
					+ " ms ("
					+ MiscTools.secondsToString(stopwatch
							.elapsed(TimeUnit.SECONDS)) + " minutes).");

			TTCN3StatisticsProvider.getInstance().addAnalyzeTime(stopwatch.elapsed(TimeUnit.SECONDS));
			TTCN3StatisticsProvider.getInstance().addAnalyzeTime(
					stopwatch.elapsed(TimeUnit.SECONDS));
			stopwatch.reset();
		}

		if (activeProfile.isFeatureListImportedModuleNames()) {
			TTCN3StatisticsProvider.getInstance().printListImportedModuleNames(false, logger);
			TTCN3StatisticsProvider.getInstance().printListImportedModuleNames(
					false, logger);
		}

		if (activeProfile.isFeatureListImportedModuleFileNames()) {
			TTCN3StatisticsProvider.getInstance().printListImportedModuleNames(true, logger);
			TTCN3StatisticsProvider.getInstance().printListImportedModuleNames(
					true, logger);
		}

		if (activeProfile.isFeatureListImportingModuleNames()) {
			TTCN3StatisticsProvider.getInstance().printListImportingModuleNames(false, logger);
			TTCN3StatisticsProvider.getInstance()
					.printListImportingModuleNames(false, logger);
		}

		if (activeProfile.isFeatureListImportingModuleFileNames()) {
			TTCN3StatisticsProvider.getInstance().printListImportingModuleNames(true, logger);
			TTCN3StatisticsProvider.getInstance()
					.printListImportingModuleNames(true, logger);
		}

		System.out.println("Test suite analyzed  in " + MiscTools.secondsToString(TTCN3StatisticsProvider.getInstance().getAnalyzeTime())
				+ " minutes.");	
		System.out.println("Test suite analyzed  in "
				+ MiscTools.secondsToString(TTCN3StatisticsProvider
						.getInstance().getAnalyzeTime()) + " minutes.");
	}

	private void validate(Resource resource) {
		EObject model = resource.getContents().get(0);
		org.eclipse.emf.common.util.Diagnostic diagnostic = Diagnostician.INSTANCE.validate(model);
		org.eclipse.emf.common.util.Diagnostic diagnostic = Diagnostician.INSTANCE
				.validate(model);
		FeatureBasedDiagnostic featureDiagnostic = null;

		for (org.eclipse.emf.common.util.Diagnostic d : diagnostic.getChildren()) {
		for (org.eclipse.emf.common.util.Diagnostic d : diagnostic
				.getChildren()) {
			switch (d.getSeverity()) {
			case org.eclipse.emf.common.util.Diagnostic.ERROR:
				featureDiagnostic = (FeatureBasedDiagnostic) d;
				logger.logError(resource.getURI(), Integer.parseInt(featureDiagnostic.getIssueData()[0]),
						Integer.parseInt(featureDiagnostic.getIssueData()[1]), MessageClass.valueOf(featureDiagnostic.getIssueCode()),
				logger.logError(resource.getURI(),
						Integer.parseInt(featureDiagnostic.getIssueData()[0]),
						Integer.parseInt(featureDiagnostic.getIssueData()[1]),
						MessageClass.valueOf(featureDiagnostic.getIssueCode()),
						featureDiagnostic.getMessage());
				break;
			case org.eclipse.emf.common.util.Diagnostic.WARNING:
				featureDiagnostic = (FeatureBasedDiagnostic) d;
				logger.logWarning(resource.getURI(), Integer.parseInt(featureDiagnostic.getIssueData()[0]),
						Integer.parseInt(featureDiagnostic.getIssueData()[1]), MessageClass.valueOf(featureDiagnostic.getIssueCode()),
						featureDiagnostic.getMessage(), featureDiagnostic.getIssueData()[2]);
				logger.logWarning(resource.getURI(),
						Integer.parseInt(featureDiagnostic.getIssueData()[0]),
						Integer.parseInt(featureDiagnostic.getIssueData()[1]),
						MessageClass.valueOf(featureDiagnostic.getIssueCode()),
						featureDiagnostic.getMessage(),
						featureDiagnostic.getIssueData()[2]);
				break;
			case org.eclipse.emf.common.util.Diagnostic.INFO:
				featureDiagnostic = (FeatureBasedDiagnostic) d;
				switch (LogLevel.valueOf(featureDiagnostic.getIssueData()[3])) {
				case INFORMATION:
					logger.logInformation(resource.getURI(), Integer.parseInt(featureDiagnostic.getIssueData()[0]),
							Integer.parseInt(featureDiagnostic.getIssueData()[1]), MessageClass.valueOf(featureDiagnostic.getIssueCode()),
							featureDiagnostic.getMessage(), featureDiagnostic.getIssueData()[2]);
					logger.logInformation(
							resource.getURI(),
							Integer.parseInt(featureDiagnostic.getIssueData()[0]),
							Integer.parseInt(featureDiagnostic.getIssueData()[1]),
							MessageClass.valueOf(featureDiagnostic
									.getIssueCode()), featureDiagnostic
									.getMessage(), featureDiagnostic
									.getIssueData()[2]);
					break;
				case FIXME:
					logger.logFix(resource.getURI(), Integer.parseInt(featureDiagnostic.getIssueData()[0]),
							Integer.parseInt(featureDiagnostic.getIssueData()[1]), MessageClass.valueOf(featureDiagnostic.getIssueCode()),
							featureDiagnostic.getMessage(), featureDiagnostic.getIssueData()[2]);
					logger.logFix(
							resource.getURI(),
							Integer.parseInt(featureDiagnostic.getIssueData()[0]),
							Integer.parseInt(featureDiagnostic.getIssueData()[1]),
							MessageClass.valueOf(featureDiagnostic
									.getIssueCode()), featureDiagnostic
									.getMessage(), featureDiagnostic
									.getIssueData()[2]);
					break;
				case DEBUG:
					logger.logDebug(resource.getURI(), Integer.parseInt(featureDiagnostic.getIssueData()[0]),
							Integer.parseInt(featureDiagnostic.getIssueData()[1]), MessageClass.valueOf(featureDiagnostic.getIssueCode()),
							featureDiagnostic.getMessage(), featureDiagnostic.getIssueData()[2]);
					logger.logDebug(
							resource.getURI(),
							Integer.parseInt(featureDiagnostic.getIssueData()[0]),
							Integer.parseInt(featureDiagnostic.getIssueData()[1]),
							MessageClass.valueOf(featureDiagnostic
									.getIssueCode()), featureDiagnostic
									.getMessage(), featureDiagnostic
									.getIssueData()[2]);
					break;
				default:
					break;
@@ -200,42 +243,68 @@ public class TTCN3ResourceProvider {

	public void printStatistics() {
		if (activeProfile.isStatShowLOC())
			System.out.println("Total lines of code processed: " + TTCN3StatisticsProvider.getInstance().getParsedLines());
			System.out.println("Total lines of code processed: "
					+ TTCN3StatisticsProvider.getInstance().getParsedLines());

		if (activeProfile.isStatShowSummary()) {
			System.out.println("Brief statistics summary of occurences in message classes:");
			System.out.println('\t' + "Universal: " + TTCN3StatisticsProvider.getInstance().getCountUniversal());
			System.out.println('\t' + "General: " + TTCN3StatisticsProvider.getInstance().getCountGeneral());
			System.out.println('\t' + "Naming Conventions: " + TTCN3StatisticsProvider.getInstance().getCountNaming());
			System.out.println('\t' + "Code Documentation: " + TTCN3StatisticsProvider.getInstance().getCountDocumentation());
			System.out.println('\t' + "Log Statements: " + TTCN3StatisticsProvider.getInstance().getCountLog());
			System.out.println('\t' + "Structure of Data: " + TTCN3StatisticsProvider.getInstance().getCountStructure());
			System.out.println('\t' + "Code Style: " + TTCN3StatisticsProvider.getInstance().getCountStyle());
			System.out.println('\t' + "Test Suite Modularization: " + TTCN3StatisticsProvider.getInstance().getCountModularization());
			System.out
					.println("Brief statistics summary of occurences in message classes:");
			System.out
					.println('\t'
							+ "Universal: "
							+ TTCN3StatisticsProvider.getInstance()
									.getCountUniversal());
			System.out.println('\t' + "General: "
					+ TTCN3StatisticsProvider.getInstance().getCountGeneral());
			System.out.println('\t' + "Naming Conventions: "
					+ TTCN3StatisticsProvider.getInstance().getCountNaming());
			System.out.println('\t'
					+ "Code Documentation: "
					+ TTCN3StatisticsProvider.getInstance()
							.getCountDocumentation());
			System.out.println('\t' + "Log Statements: "
					+ TTCN3StatisticsProvider.getInstance().getCountLog());
			System.out
					.println('\t'
							+ "Structure of Data: "
							+ TTCN3StatisticsProvider.getInstance()
									.getCountStructure());
			System.out.println('\t' + "Code Style: "
					+ TTCN3StatisticsProvider.getInstance().getCountStyle());
			System.out.println('\t'
					+ "Test Suite Modularization: "
					+ TTCN3StatisticsProvider.getInstance()
							.getCountModularization());
		}
	}

	public void createXMI() {
		for (Resource r : resourceSet.getResources()) {
			String extension = fileExtensionOrPath(r.getURI().devicePath(), true) + "m";
			storeResourceContents(r.getContents(), r.getURI().devicePath() + "m", extension);	
			String extension = fileExtensionOrPath(r.getURI().devicePath(),
					true) + "m";
			storeResourceContents(r.getContents(), r.getURI().devicePath()
					+ "m", extension);
		}
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	private void storeResourceContents(EList<EObject> contents, String outputPath, String extension) {
		//TODO: duplicated from loadResourceFromXMI => move to a more appropriate location
	private void storeResourceContents(EList<EObject> contents,
			String outputPath, String extension) {
		// TODO: duplicated from loadResourceFromXMI => move to a more
		// appropriate location
		Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
		Map<String, Object> m = reg.getExtensionToFactoryMap();
		m.put(extension, new XMIResourceFactoryImpl());

		ResourceSet resSet = new ResourceSetImpl();
		Resource outputResource = resSet.createResource(URI.createURI(outputPath));
		Resource outputResource = resSet.createResource(URI
				.createURI(outputPath));
		outputResource.getContents().addAll(contents);
		try {
			Map options = new HashMap<>();
			options.put(XMIResourceImpl.OPTION_ENCODING, "UTF-8");
//	      options.put(XMIResourceImpl.OPTION_PROCESS_DANGLING_HREF, XMIResourceImpl.OPTION_PROCESS_DANGLING_HREF_DISCARD);
			// options.put(XMIResourceImpl.OPTION_PROCESS_DANGLING_HREF,
			// XMIResourceImpl.OPTION_PROCESS_DANGLING_HREF_DISCARD);
			outputResource.save(options);
		} catch (IOException e) {
			e.printStackTrace();
@@ -243,16 +312,19 @@ public class TTCN3ResourceProvider {
	}

	// @SuppressWarnings({ "rawtypes", "unchecked" })
//	private Resource loadResourceFromXMI(String inputPath, String extension) {
	// private Resource loadResourceFromXMI(String inputPath, String extension)
	// {
	// Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
	// Map<String, Object> m = reg.getExtensionToFactoryMap();
	// m.put(extension, new XMIResourceFactoryImpl());
	// ResourceSet resSetIn = new ResourceSetImpl();
//	    Resource inputResource = resSetIn.createResource(URI.createURI(inputPath));
	// Resource inputResource =
	// resSetIn.createResource(URI.createURI(inputPath));
	// try {
	// Map options = new HashMap<>();
	// options.put(XMIResourceImpl.OPTION_DEFER_IDREF_RESOLUTION, Boolean.TRUE);
////	    	options.put(XMIResourceImpl.OPTION_PROCESS_DANGLING_HREF, XMIResourceImpl.OPTION_PROCESS_DANGLING_HREF_DISCARD);
	// // options.put(XMIResourceImpl.OPTION_PROCESS_DANGLING_HREF,
	// XMIResourceImpl.OPTION_PROCESS_DANGLING_HREF_DISCARD);
	// inputResource.load(options);
	// } catch (IOException e) {
	// e.printStackTrace();
+0 −13
Original line number Diff line number Diff line
@@ -3,23 +3,10 @@
 */
package de.ugoe.cs.swe;

import org.eclipse.xtext.naming.IQualifiedNameProvider;
import org.eclipse.xtext.resource.IDefaultResourceDescriptionStrategy;

import de.ugoe.cs.swe.common.TTCN3DeclarativeQualifiedNameProvider;
import de.ugoe.cs.swe.common.TTCN3ResourceDescriptionStrategy;

/**
 * Use this class to register components to be used at runtime / without the Equinox extension registry.
 */
public class TTCN3RuntimeModule extends AbstractTTCN3RuntimeModule {
	
//	@Override
//	public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
//		return TTCN3DeclarativeQualifiedNameProvider.class;
//	}
//
//	public Class<? extends IDefaultResourceDescriptionStrategy> bindIDefaultResourceDescriptionStrategy() {
//		return TTCN3ResourceDescriptionStrategy.class;
//	}
}
+0 −61
Original line number Diff line number Diff line
package de.ugoe.cs.swe.common;

import java.util.Collections;
import java.util.List;

import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider;
import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.naming.QualifiedName;

import com.google.common.collect.Lists;
import com.google.inject.Inject;

import de.ugoe.cs.swe.tTCN3.FormalPortPar;
import de.ugoe.cs.swe.tTCN3.FormalTemplatePar;
import de.ugoe.cs.swe.tTCN3.FormalTimerPar;
import de.ugoe.cs.swe.tTCN3.FormalValuePar;
import de.ugoe.cs.swe.tTCN3.GroupDef;
import de.ugoe.cs.swe.tTCN3.RefValue;
import de.ugoe.cs.swe.tTCN3.TTCN3Module;

/**
 * 
 * @author Daniel Honsel
 *
 */
public class TTCN3DeclarativeQualifiedNameProvider extends DefaultDeclarativeQualifiedNameProvider {

	@Inject
	private IQualifiedNameConverter converter = new IQualifiedNameConverter.DefaultImpl();

	protected QualifiedName qualifiedName(FormalValuePar ele) {
		return converter.toQualifiedName(ele.getName());
	}

	protected QualifiedName qualifiedName(FormalTemplatePar ele) {
		return converter.toQualifiedName(ele.getName());
	}

	protected QualifiedName qualifiedName(FormalTimerPar ele) {
		return converter.toQualifiedName(ele.getName());
	}

	protected QualifiedName qualifiedName(FormalPortPar ele) {
		return converter.toQualifiedName(ele.getName());
	}

	protected QualifiedName qualifiedName(RefValue ele) {
		List<String> groupNames = Lists.newArrayList();
		GroupDef group = EcoreUtil2.getContainerOfType(ele, GroupDef.class);
		groupNames.add(ele.getName());
		while (group != null) {
			groupNames.add(group.getName());
			group = EcoreUtil2.getContainerOfType(group.eContainer(), GroupDef.class);
		}
		TTCN3Module module = EcoreUtil2.getContainerOfType(ele, TTCN3Module.class);
		groupNames.add(module.getName());
		Collections.reverse(groupNames);
		return QualifiedName.create(groupNames);
	}
}
+0 −54
Original line number Diff line number Diff line
package de.ugoe.cs.swe.common

import org.eclipse.emf.ecore.EObject
import org.eclipse.xtext.resource.IEObjectDescription
import org.eclipse.xtext.resource.impl.DefaultResourceDescriptionStrategy
import org.eclipse.xtext.util.IAcceptor
import org.eclipse.xtext.naming.QualifiedName
import org.apache.log4j.Logger
import com.google.inject.Inject
import org.eclipse.xtext.naming.IQualifiedNameProvider
import org.eclipse.xtext.resource.EObjectDescription
import java.util.List
import de.ugoe.cs.swe.tTCN3.GroupDef
import static extension org.eclipse.xtext.EcoreUtil2.*
import java.util.Collections
import de.ugoe.cs.swe.tTCN3.RefValue

class TTCN3ResourceDescriptionStrategy extends DefaultResourceDescriptionStrategy {

	private final static Logger LOG = Logger.getLogger(DefaultResourceDescriptionStrategy);

	@Inject
	private IQualifiedNameProvider qualifiedNameProvider;

	override createEObjectDescriptions(EObject eObject, IAcceptor<IEObjectDescription> acceptor) {
		if (getQualifiedNameProvider() == null)
			return false
		try {
			val QualifiedName qualifiedName = qualifiedNameProvider.getFullyQualifiedName(eObject)
			if (qualifiedName != null) {
				acceptor.accept(EObjectDescription.create(qualifiedName, eObject))
				alternativeEObjectDescriptions(eObject, acceptor)
			}
		} catch (Exception exc) {
			LOG.error(exc.getMessage(), exc)
		}
		return true;
	}

	private def alternativeEObjectDescriptions(EObject eObject, IAcceptor<IEObjectDescription> acceptor) {
		if (eObject instanceof RefValue) {
			val List<String> groupNames = newArrayList
			var GroupDef group = eObject.getContainerOfType(GroupDef)
			groupNames.add(eObject.name)
			while (group != null) {
				groupNames.add(group.name)
				group = group.eContainer.getContainerOfType(GroupDef)
			}
			Collections.reverse(groupNames)
			acceptor.accept(EObjectDescription.create(QualifiedName.create(groupNames), eObject))
		}
	}

}
+10 −15
Original line number Diff line number Diff line
@@ -12,12 +12,13 @@ import de.ugoe.cs.swe.tTCN3.EnumDef
import de.ugoe.cs.swe.tTCN3.EnumDefNamed
import de.ugoe.cs.swe.tTCN3.Enumeration
import de.ugoe.cs.swe.tTCN3.EnumerationList
import de.ugoe.cs.swe.tTCN3.FormalTemplatePar
import de.ugoe.cs.swe.tTCN3.FormalValuePar
import de.ugoe.cs.swe.tTCN3.FunctionDef
import de.ugoe.cs.swe.tTCN3.FunctionDefList
import de.ugoe.cs.swe.tTCN3.FunctionFormalPar
import de.ugoe.cs.swe.tTCN3.FunctionFormalParList
import de.ugoe.cs.swe.tTCN3.GroupDef
import de.ugoe.cs.swe.tTCN3.InLineTemplate
import de.ugoe.cs.swe.tTCN3.Initial
import de.ugoe.cs.swe.tTCN3.ModuleControlPart
import de.ugoe.cs.swe.tTCN3.ModuleDefinition
@@ -25,12 +26,17 @@ import de.ugoe.cs.swe.tTCN3.ModuleDefinitionsList
import de.ugoe.cs.swe.tTCN3.ModulePar
import de.ugoe.cs.swe.tTCN3.ModuleParDef
import de.ugoe.cs.swe.tTCN3.ModuleParameter
import de.ugoe.cs.swe.tTCN3.NestedRecordOfDef
import de.ugoe.cs.swe.tTCN3.NestedSetOfDef
import de.ugoe.cs.swe.tTCN3.NestedTypeDef
import de.ugoe.cs.swe.tTCN3.PortElement
import de.ugoe.cs.swe.tTCN3.RecordDefNamed
import de.ugoe.cs.swe.tTCN3.RecordOfDefNamed
import de.ugoe.cs.swe.tTCN3.RefValue
import de.ugoe.cs.swe.tTCN3.RefValueElement
import de.ugoe.cs.swe.tTCN3.RefValueTail
import de.ugoe.cs.swe.tTCN3.ReferencedType
import de.ugoe.cs.swe.tTCN3.ReferencedValue
import de.ugoe.cs.swe.tTCN3.SetDefNamed
import de.ugoe.cs.swe.tTCN3.SetOfDefNamed
import de.ugoe.cs.swe.tTCN3.SignatureDef
@@ -49,6 +55,7 @@ import de.ugoe.cs.swe.tTCN3.TestcaseDef
import de.ugoe.cs.swe.tTCN3.TypeDef
import de.ugoe.cs.swe.tTCN3.TypeReference
import de.ugoe.cs.swe.tTCN3.UnionDefNamed
import de.ugoe.cs.swe.tTCN3.VarInstance
import de.ugoe.cs.swe.tTCN3.VarList
import java.util.ArrayList
import java.util.List
@@ -56,17 +63,6 @@ import org.eclipse.emf.ecore.EObject
import org.eclipse.xtext.scoping.IScope

import static org.eclipse.xtext.scoping.Scopes.*
import de.ugoe.cs.swe.tTCN3.NestedTypeDef
import de.ugoe.cs.swe.tTCN3.NestedRecordOfDef
import de.ugoe.cs.swe.tTCN3.NestedSetOfDef
import org.eclipse.emf.ecore.resource.Resource
import de.ugoe.cs.swe.tTCN3.PortInstance
import de.ugoe.cs.swe.tTCN3.ReferencedValue
import de.ugoe.cs.swe.tTCN3.RefValueTail
import de.ugoe.cs.swe.tTCN3.VarInstance
import de.ugoe.cs.swe.tTCN3.FormalValuePar
import de.ugoe.cs.swe.tTCN3.TimerVarInstance
import de.ugoe.cs.swe.tTCN3.FormalTemplatePar

class TTCN3ScopeHelper {

@@ -432,7 +428,6 @@ class TTCN3ScopeHelper {
		list
	}


	// TODO: consider nested types
	private def static ReferencedType findOriginalType(ReferencedType type) {
		if (type != null && typeof(SubTypeDefNamed).isAssignableFrom(type.class)) {
Loading