Loading plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java +65 −3 Original line number Diff line number Diff line Loading @@ -34,20 +34,25 @@ import org.etsi.mts.tdl.Element; import org.etsi.mts.tdl.ElementImport; import org.etsi.mts.tdl.EnumDataType; import org.etsi.mts.tdl.Extension; import org.etsi.mts.tdl.FormalParameter; import org.etsi.mts.tdl.FormalParameterUse; import org.etsi.mts.tdl.FunctionCall; import org.etsi.mts.tdl.GateInstance; import org.etsi.mts.tdl.GateReference; import org.etsi.mts.tdl.LocalExpression; 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; import org.etsi.mts.tdl.Parameter; import org.etsi.mts.tdl.ParameterBinding; 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; Loading Loading @@ -245,6 +250,9 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { } else if (((DataElementMapping)context.eContainer()).getMappableDataElement() instanceof Action) { IScope scope = Scopes.scopeFor(((Action)((DataElementMapping)context.eContainer()).getMappableDataElement()).getFormalParameter()); return scope; } else if (((DataElementMapping)context.eContainer()).getMappableDataElement() instanceof ProcedureSignature) { IScope scope = Scopes.scopeFor(((ProcedureSignature)((DataElementMapping)context.eContainer()).getMappableDataElement()).getParameter()); return scope; } } } else if (context instanceof ParameterBinding) { Loading Loading @@ -298,6 +306,25 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { IScope scope = Scopes.scopeFor(((ProcedureCall)context.eContainer()).getSignature().getParameter()); return scope; // } } else if (context.eContainer() instanceof DataElementUse) { //TODO: extract and simplify NamedElement dataElement = ((DataElementUse)context.eContainer()).getDataElement(); if (dataElement instanceof org.etsi.mts.tdl.Function) { IScope scope = Scopes.scopeFor(((org.etsi.mts.tdl.Function)dataElement).getFormalParameter()); return scope; } else if (dataElement instanceof FormalParameter) { IScope scope = Scopes.scopeFor(((StructuredDataType)((FormalParameter) dataElement).getDataType()).allMembers()); return scope; } else if (dataElement instanceof StructuredDataInstance) { IScope scope = Scopes.scopeFor(((StructuredDataType)((StructuredDataInstance) dataElement).getDataType()).allMembers()); return scope; } else if (dataElement instanceof StructuredDataType) { IScope scope = Scopes.scopeFor(((StructuredDataType)dataElement).allMembers()); return scope; } // IScope scope = Scopes.scopeFor(dataElement.eContents()); // return scope; } } else if (context instanceof MemberReference) { if (((DataUse)context.eContainer()).getReduction().indexOf(context)>0) { Loading Loading @@ -349,6 +376,23 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { IScope scope = Scopes.scopeFor(((StructuredDataType)((VariableUse)context.eContainer()).getVariable().getDataType()).allMembers()); return scope; } } else if (context.eContainer() instanceof DataElementUse) { NamedElement dataElement = ((DataElementUse) context.eContainer()).getDataElement(); //TODO: duplicated from above ->extract if (dataElement instanceof org.etsi.mts.tdl.Function) { IScope scope = Scopes.scopeFor(((org.etsi.mts.tdl.Function)dataElement).getFormalParameter()); return scope; } else if (dataElement instanceof FormalParameter) { IScope scope = Scopes.scopeFor(((StructuredDataType)((FormalParameter) dataElement).getDataType()).allMembers()); return scope; } else if (dataElement instanceof StructuredDataInstance) { IScope scope = Scopes.scopeFor(((StructuredDataType)((StructuredDataInstance) dataElement).getDataType()).allMembers()); return scope; } else if (dataElement instanceof StructuredDataType) { IScope scope = Scopes.scopeFor(((StructuredDataType)dataElement).allMembers()); return scope; } } else { } } else if (context instanceof ValueAssignment) { Loading Loading @@ -385,6 +429,21 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { } else { } if (context instanceof DataElementUse) { EList<EObject> elements = new BasicEList<>(); elements.addAll(getScopedElementsOfType(context, MappableDataElement.class)); TestDescription testDescription = ((DataElementUse) context).getParentTestDescription(); if (testDescription!=null) { elements.addAll(testDescription.getFormalParameter()); } // elements.addAll(getScopedElementsOfType(context, FormalParameter.class)); // elements.addAll(getScopedElementsOfType(context, StructuredDataType.class)); return Scopes.scopeFor(elements); // NamedElement dataElement = ((NamedDataElementUse)context).getDataElement(); //EList<EObject> elements = ; //return Scopes.scopeFor(dataElement.eContents()); } if (context instanceof Block) { TestDescription testDescription = getTestDescription((Element) context); Loading Loading @@ -450,7 +509,8 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { for (PackageableElement e : p.getPackagedElement()) { if (c.isInstance(e)) { elements.add(e); } else if (e instanceof EnumDataType) { } if (e instanceof EnumDataType) { //TODO: naive enum handling (also below for (SimpleDataInstance ev : ((EnumDataType) e).getValue()) { elements.add(ev); Loading @@ -467,7 +527,8 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { for (PackageableElement e : ip.getPackagedElement()) { if (c.isInstance(e)) { elements.add(e); } else if (e instanceof EnumDataType) { } if (e instanceof EnumDataType) { //enums for (SimpleDataInstance ev : ((EnumDataType) e).getValue()) { elements.add(ev); Loading @@ -479,7 +540,8 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { for (PackageableElement e : i.getImportedElement()) { if (c.isInstance(e)) { elements.add(e); } else if (e instanceof EnumDataType) { } if (e instanceof EnumDataType) { //enums for (SimpleDataInstance ev : ((EnumDataType) e).getValue()) { elements.add(ev); Loading Loading
plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java +65 −3 Original line number Diff line number Diff line Loading @@ -34,20 +34,25 @@ import org.etsi.mts.tdl.Element; import org.etsi.mts.tdl.ElementImport; import org.etsi.mts.tdl.EnumDataType; import org.etsi.mts.tdl.Extension; import org.etsi.mts.tdl.FormalParameter; import org.etsi.mts.tdl.FormalParameterUse; import org.etsi.mts.tdl.FunctionCall; import org.etsi.mts.tdl.GateInstance; import org.etsi.mts.tdl.GateReference; import org.etsi.mts.tdl.LocalExpression; 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; import org.etsi.mts.tdl.Parameter; import org.etsi.mts.tdl.ParameterBinding; 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; Loading Loading @@ -245,6 +250,9 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { } else if (((DataElementMapping)context.eContainer()).getMappableDataElement() instanceof Action) { IScope scope = Scopes.scopeFor(((Action)((DataElementMapping)context.eContainer()).getMappableDataElement()).getFormalParameter()); return scope; } else if (((DataElementMapping)context.eContainer()).getMappableDataElement() instanceof ProcedureSignature) { IScope scope = Scopes.scopeFor(((ProcedureSignature)((DataElementMapping)context.eContainer()).getMappableDataElement()).getParameter()); return scope; } } } else if (context instanceof ParameterBinding) { Loading Loading @@ -298,6 +306,25 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { IScope scope = Scopes.scopeFor(((ProcedureCall)context.eContainer()).getSignature().getParameter()); return scope; // } } else if (context.eContainer() instanceof DataElementUse) { //TODO: extract and simplify NamedElement dataElement = ((DataElementUse)context.eContainer()).getDataElement(); if (dataElement instanceof org.etsi.mts.tdl.Function) { IScope scope = Scopes.scopeFor(((org.etsi.mts.tdl.Function)dataElement).getFormalParameter()); return scope; } else if (dataElement instanceof FormalParameter) { IScope scope = Scopes.scopeFor(((StructuredDataType)((FormalParameter) dataElement).getDataType()).allMembers()); return scope; } else if (dataElement instanceof StructuredDataInstance) { IScope scope = Scopes.scopeFor(((StructuredDataType)((StructuredDataInstance) dataElement).getDataType()).allMembers()); return scope; } else if (dataElement instanceof StructuredDataType) { IScope scope = Scopes.scopeFor(((StructuredDataType)dataElement).allMembers()); return scope; } // IScope scope = Scopes.scopeFor(dataElement.eContents()); // return scope; } } else if (context instanceof MemberReference) { if (((DataUse)context.eContainer()).getReduction().indexOf(context)>0) { Loading Loading @@ -349,6 +376,23 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { IScope scope = Scopes.scopeFor(((StructuredDataType)((VariableUse)context.eContainer()).getVariable().getDataType()).allMembers()); return scope; } } else if (context.eContainer() instanceof DataElementUse) { NamedElement dataElement = ((DataElementUse) context.eContainer()).getDataElement(); //TODO: duplicated from above ->extract if (dataElement instanceof org.etsi.mts.tdl.Function) { IScope scope = Scopes.scopeFor(((org.etsi.mts.tdl.Function)dataElement).getFormalParameter()); return scope; } else if (dataElement instanceof FormalParameter) { IScope scope = Scopes.scopeFor(((StructuredDataType)((FormalParameter) dataElement).getDataType()).allMembers()); return scope; } else if (dataElement instanceof StructuredDataInstance) { IScope scope = Scopes.scopeFor(((StructuredDataType)((StructuredDataInstance) dataElement).getDataType()).allMembers()); return scope; } else if (dataElement instanceof StructuredDataType) { IScope scope = Scopes.scopeFor(((StructuredDataType)dataElement).allMembers()); return scope; } } else { } } else if (context instanceof ValueAssignment) { Loading Loading @@ -385,6 +429,21 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { } else { } if (context instanceof DataElementUse) { EList<EObject> elements = new BasicEList<>(); elements.addAll(getScopedElementsOfType(context, MappableDataElement.class)); TestDescription testDescription = ((DataElementUse) context).getParentTestDescription(); if (testDescription!=null) { elements.addAll(testDescription.getFormalParameter()); } // elements.addAll(getScopedElementsOfType(context, FormalParameter.class)); // elements.addAll(getScopedElementsOfType(context, StructuredDataType.class)); return Scopes.scopeFor(elements); // NamedElement dataElement = ((NamedDataElementUse)context).getDataElement(); //EList<EObject> elements = ; //return Scopes.scopeFor(dataElement.eContents()); } if (context instanceof Block) { TestDescription testDescription = getTestDescription((Element) context); Loading Loading @@ -450,7 +509,8 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { for (PackageableElement e : p.getPackagedElement()) { if (c.isInstance(e)) { elements.add(e); } else if (e instanceof EnumDataType) { } if (e instanceof EnumDataType) { //TODO: naive enum handling (also below for (SimpleDataInstance ev : ((EnumDataType) e).getValue()) { elements.add(ev); Loading @@ -467,7 +527,8 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { for (PackageableElement e : ip.getPackagedElement()) { if (c.isInstance(e)) { elements.add(e); } else if (e instanceof EnumDataType) { } if (e instanceof EnumDataType) { //enums for (SimpleDataInstance ev : ((EnumDataType) e).getValue()) { elements.add(ev); Loading @@ -479,7 +540,8 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { for (PackageableElement e : i.getImportedElement()) { if (c.isInstance(e)) { elements.add(e); } else if (e instanceof EnumDataType) { } if (e instanceof EnumDataType) { //enums for (SimpleDataInstance ev : ((EnumDataType) e).getValue()) { elements.add(ev); Loading