Commit c7ebe9a7 authored by Martti Käärik's avatar Martti Käärik
Browse files

Scope for TimeLabelUse

parent ed424308
Loading
Loading
Loading
Loading
+16 −6
Original line number Diff line number Diff line
package org.etsi.mts.tdl.scoping;

import java.util.stream.Collectors;
import java.util.HashSet;
import java.util.Set;

import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.naming.QualifiedName;
@@ -20,15 +20,15 @@ import org.etsi.mts.tdl.ActionReference;
import org.etsi.mts.tdl.Assignment;
import org.etsi.mts.tdl.Behaviour;
import org.etsi.mts.tdl.Block;
import org.etsi.mts.tdl.CollectionDataType;
import org.etsi.mts.tdl.ComponentInstance;
import org.etsi.mts.tdl.ComponentInstanceBinding;
import org.etsi.mts.tdl.Connection;
import org.etsi.mts.tdl.DataElementMapping;
import org.etsi.mts.tdl.DataElementUse;
import org.etsi.mts.tdl.DataInstance;
import org.etsi.mts.tdl.DataInstanceUse;
import org.etsi.mts.tdl.DataType;
import org.etsi.mts.tdl.CollectionDataType;
import org.etsi.mts.tdl.CollectionDataInstance;
import org.etsi.mts.tdl.DataUse;
import org.etsi.mts.tdl.Element;
import org.etsi.mts.tdl.ElementImport;
@@ -45,7 +45,6 @@ import org.etsi.mts.tdl.MappableDataElement;
import org.etsi.mts.tdl.MemberAssignment;
import org.etsi.mts.tdl.MemberReference;
import org.etsi.mts.tdl.Message;
import org.etsi.mts.tdl.DataElementUse;
import org.etsi.mts.tdl.NamedElement;
import org.etsi.mts.tdl.Package;
import org.etsi.mts.tdl.PackageableElement;
@@ -55,13 +54,14 @@ import org.etsi.mts.tdl.ParameterMapping;
import org.etsi.mts.tdl.ProcedureCall;
import org.etsi.mts.tdl.ProcedureSignature;
import org.etsi.mts.tdl.SimpleDataInstance;
import org.etsi.mts.tdl.SimpleDataType;
import org.etsi.mts.tdl.StructuredDataInstance;
import org.etsi.mts.tdl.StructuredDataType;
import org.etsi.mts.tdl.Target;
import org.etsi.mts.tdl.TestConfiguration;
import org.etsi.mts.tdl.TestDescription;
import org.etsi.mts.tdl.TestDescriptionReference;
import org.etsi.mts.tdl.TimeLabel;
import org.etsi.mts.tdl.TimeLabelUse;
import org.etsi.mts.tdl.Timer;
import org.etsi.mts.tdl.TimerOperation;
import org.etsi.mts.tdl.ValueAssignment;
@@ -485,6 +485,16 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider {
				IScope scope = Scopes.scopeFor(((ProcedureCall)context.eContainer().eContainer()).getSignature().getParameter());
				return scope;
			}
		} else if (context instanceof TimeLabelUse) {
			TestDescription testDescription = ((Element) context).getParentTestDescription();
			Set<TimeLabel> labels = new HashSet<TimeLabel>();
			testDescription.eAllContents().forEachRemaining(e -> {
				if (e instanceof TimeLabel)
					labels.add((TimeLabel) e);
			});
			IScope scope = Scopes.scopeFor(labels);
			return scope;
			
		} else if (reference.getEType().getInstanceClass() == Variable.class) {
			//DONE: handle with new super class? -> no longer needed! (clean up)
//			if (context instanceof Assignment) {