Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/common/TTCN3DeclarativeQualifiedNameProvider.java +0 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,6 @@ package de.ugoe.cs.swe.common; import java.util.Collections; import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.EcoreUtil2; import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider; import org.eclipse.xtext.naming.IQualifiedNameConverter; Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ImportedNamespaceAwareLocalScopeProvider.java +8 −21 Original line number Diff line number Diff line Loading @@ -5,21 +5,15 @@ import static java.util.Collections.singletonList; import java.util.List; import org.eclipse.emf.common.notify.Notifier; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.xtext.EcoreUtil2; import org.eclipse.xtext.naming.IQualifiedNameConverter; import org.eclipse.xtext.naming.IQualifiedNameProvider; import org.eclipse.xtext.naming.QualifiedName; import org.eclipse.xtext.resource.IEObjectDescription; import org.eclipse.xtext.resource.IResourceDescription; import org.eclipse.xtext.resource.IResourceDescriptions; import org.eclipse.xtext.resource.ISelectable; import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider; import org.eclipse.xtext.scoping.IGlobalScopeProvider; import org.eclipse.xtext.scoping.IScope; import org.eclipse.xtext.scoping.impl.ImportNormalizer; import org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider; Loading @@ -29,17 +23,11 @@ import org.eclipse.xtext.util.Tuples; import com.google.common.collect.Lists; import com.google.inject.Inject; import de.ugoe.cs.swe.tTCN3.AltstepDef; import de.ugoe.cs.swe.tTCN3.EnumDef; import de.ugoe.cs.swe.tTCN3.EnumDefNamed; import de.ugoe.cs.swe.tTCN3.FunctionDef; import de.ugoe.cs.swe.tTCN3.Enumeration; import de.ugoe.cs.swe.tTCN3.GroupDef; import de.ugoe.cs.swe.tTCN3.ImportDef; import de.ugoe.cs.swe.tTCN3.PortElement; import de.ugoe.cs.swe.tTCN3.SingleVarInstance; import de.ugoe.cs.swe.tTCN3.TTCN3Module; import de.ugoe.cs.swe.tTCN3.TTCN3Package; import de.ugoe.cs.swe.tTCN3.TestcaseDef; /** * A local scope provider that understands module imports. Loading @@ -65,10 +53,9 @@ public class TTCN3ImportedNamespaceAwareLocalScopeProvider extends ImportedNames if (TTCN3Module.class.isAssignableFrom(context.getClass())) { namespaceResolvers.addAll(getImportedNamespaceResolvers(context, ignoreCase)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, GroupDef.class)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, EnumDef.class)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, EnumDefNamed.class)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, TTCN3Module.class)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, GroupDef.class, true)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, Enumeration.class, false)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, TTCN3Module.class, true)); namespaceResolvers.addAll(namespaceResolverForImportedType((TTCN3Module) context, parent, ignoreCase)); if (!namespaceResolvers.isEmpty()) { if (isRelativeImport() && name != null) { Loading Loading @@ -125,19 +112,19 @@ public class TTCN3ImportedNamespaceAwareLocalScopeProvider extends ImportedNames return Tuples.create(TTCN3ImportedNamespaceAwareLocalScopeProvider.class, context, reference); } protected ImportNormalizer createImportedNamespaceResolver(QualifiedName namespace, boolean ignoreCase) { protected ImportNormalizer createImportedNamespaceResolver(QualifiedName namespace, boolean ignoreCase, boolean wildcard) { if (namespace.isEmpty() || namespace.getSegmentCount() < 1) return null; return doCreateImportNormalizer(namespace, true, ignoreCase); return doCreateImportNormalizer(namespace, wildcard, ignoreCase); } protected <T extends EObject> List<ImportNormalizer> namespaceResolverForType(EObject context, boolean ignoreCase, Class<T> type) { protected <T extends EObject> List<ImportNormalizer> namespaceResolverForType(EObject context, boolean ignoreCase, Class<T> type, boolean wildcard) { List<ImportNormalizer> normalizers = Lists.newArrayList(); List<T> eContents = EcoreUtil2.getAllContentsOfType(context, type); for (EObject imp : eContents) { QualifiedName qn = qualifiedNameProvider.getFullyQualifiedName(imp); ImportNormalizer resolver = createImportedNamespaceResolver(qn, ignoreCase); ImportNormalizer resolver = createImportedNamespaceResolver(qn, ignoreCase, wildcard); if (resolver != null) normalizers.add(resolver); } Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +1 −19 Original line number Diff line number Diff line package de.ugoe.cs.swe.scoping import de.ugoe.cs.swe.tTCN3.AltstepDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDef import de.ugoe.cs.swe.tTCN3.BaseTemplate import de.ugoe.cs.swe.tTCN3.ComponentDef import de.ugoe.cs.swe.tTCN3.ComponentDefList import de.ugoe.cs.swe.tTCN3.ControlStatementOrDefList import de.ugoe.cs.swe.tTCN3.ExtendedFieldReference import de.ugoe.cs.swe.tTCN3.FieldExpressionSpec import de.ugoe.cs.swe.tTCN3.FieldSpec import de.ugoe.cs.swe.tTCN3.ForStatement import de.ugoe.cs.swe.tTCN3.FormalTimerPar import de.ugoe.cs.swe.tTCN3.FormalValuePar import de.ugoe.cs.swe.tTCN3.FunctionDef import de.ugoe.cs.swe.tTCN3.GroupDef import de.ugoe.cs.swe.tTCN3.Initial import de.ugoe.cs.swe.tTCN3.ModuleControlBody import de.ugoe.cs.swe.tTCN3.ModuleControlPart import de.ugoe.cs.swe.tTCN3.ModuleDefinition import de.ugoe.cs.swe.tTCN3.ModuleDefinitionsList import de.ugoe.cs.swe.tTCN3.ModuleParDef import de.ugoe.cs.swe.tTCN3.PortInstance import de.ugoe.cs.swe.tTCN3.PortOrAny import de.ugoe.cs.swe.tTCN3.PortRef import de.ugoe.cs.swe.tTCN3.ReferencedType import de.ugoe.cs.swe.tTCN3.ReferencedValue import de.ugoe.cs.swe.tTCN3.SendStatement import de.ugoe.cs.swe.tTCN3.SingleTempVarInstance import de.ugoe.cs.swe.tTCN3.SingleVarInstance import de.ugoe.cs.swe.tTCN3.StatementBlock import de.ugoe.cs.swe.tTCN3.StructFieldDef import de.ugoe.cs.swe.tTCN3.TTCN3Module import de.ugoe.cs.swe.tTCN3.TemplateDef import de.ugoe.cs.swe.tTCN3.TestcaseDef import de.ugoe.cs.swe.tTCN3.TimerRefOrAny import de.ugoe.cs.swe.tTCN3.Type import de.ugoe.cs.swe.tTCN3.TypeDef import de.ugoe.cs.swe.tTCN3.VarInstance import org.eclipse.emf.ecore.EReference import org.eclipse.xtext.scoping.IScope Loading @@ -45,7 +28,6 @@ import static org.eclipse.xtext.scoping.Scopes.* import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.* import static extension org.eclipse.xtext.EcoreUtil2.* import de.ugoe.cs.swe.tTCN3.FormalTimerPar class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { Loading Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/common/TTCN3DeclarativeQualifiedNameProvider.java +0 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,6 @@ package de.ugoe.cs.swe.common; import java.util.Collections; import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.EcoreUtil2; import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider; import org.eclipse.xtext.naming.IQualifiedNameConverter; Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ImportedNamespaceAwareLocalScopeProvider.java +8 −21 Original line number Diff line number Diff line Loading @@ -5,21 +5,15 @@ import static java.util.Collections.singletonList; import java.util.List; import org.eclipse.emf.common.notify.Notifier; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.xtext.EcoreUtil2; import org.eclipse.xtext.naming.IQualifiedNameConverter; import org.eclipse.xtext.naming.IQualifiedNameProvider; import org.eclipse.xtext.naming.QualifiedName; import org.eclipse.xtext.resource.IEObjectDescription; import org.eclipse.xtext.resource.IResourceDescription; import org.eclipse.xtext.resource.IResourceDescriptions; import org.eclipse.xtext.resource.ISelectable; import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider; import org.eclipse.xtext.scoping.IGlobalScopeProvider; import org.eclipse.xtext.scoping.IScope; import org.eclipse.xtext.scoping.impl.ImportNormalizer; import org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider; Loading @@ -29,17 +23,11 @@ import org.eclipse.xtext.util.Tuples; import com.google.common.collect.Lists; import com.google.inject.Inject; import de.ugoe.cs.swe.tTCN3.AltstepDef; import de.ugoe.cs.swe.tTCN3.EnumDef; import de.ugoe.cs.swe.tTCN3.EnumDefNamed; import de.ugoe.cs.swe.tTCN3.FunctionDef; import de.ugoe.cs.swe.tTCN3.Enumeration; import de.ugoe.cs.swe.tTCN3.GroupDef; import de.ugoe.cs.swe.tTCN3.ImportDef; import de.ugoe.cs.swe.tTCN3.PortElement; import de.ugoe.cs.swe.tTCN3.SingleVarInstance; import de.ugoe.cs.swe.tTCN3.TTCN3Module; import de.ugoe.cs.swe.tTCN3.TTCN3Package; import de.ugoe.cs.swe.tTCN3.TestcaseDef; /** * A local scope provider that understands module imports. Loading @@ -65,10 +53,9 @@ public class TTCN3ImportedNamespaceAwareLocalScopeProvider extends ImportedNames if (TTCN3Module.class.isAssignableFrom(context.getClass())) { namespaceResolvers.addAll(getImportedNamespaceResolvers(context, ignoreCase)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, GroupDef.class)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, EnumDef.class)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, EnumDefNamed.class)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, TTCN3Module.class)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, GroupDef.class, true)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, Enumeration.class, false)); namespaceResolvers.addAll(namespaceResolverForType(context, ignoreCase, TTCN3Module.class, true)); namespaceResolvers.addAll(namespaceResolverForImportedType((TTCN3Module) context, parent, ignoreCase)); if (!namespaceResolvers.isEmpty()) { if (isRelativeImport() && name != null) { Loading Loading @@ -125,19 +112,19 @@ public class TTCN3ImportedNamespaceAwareLocalScopeProvider extends ImportedNames return Tuples.create(TTCN3ImportedNamespaceAwareLocalScopeProvider.class, context, reference); } protected ImportNormalizer createImportedNamespaceResolver(QualifiedName namespace, boolean ignoreCase) { protected ImportNormalizer createImportedNamespaceResolver(QualifiedName namespace, boolean ignoreCase, boolean wildcard) { if (namespace.isEmpty() || namespace.getSegmentCount() < 1) return null; return doCreateImportNormalizer(namespace, true, ignoreCase); return doCreateImportNormalizer(namespace, wildcard, ignoreCase); } protected <T extends EObject> List<ImportNormalizer> namespaceResolverForType(EObject context, boolean ignoreCase, Class<T> type) { protected <T extends EObject> List<ImportNormalizer> namespaceResolverForType(EObject context, boolean ignoreCase, Class<T> type, boolean wildcard) { List<ImportNormalizer> normalizers = Lists.newArrayList(); List<T> eContents = EcoreUtil2.getAllContentsOfType(context, type); for (EObject imp : eContents) { QualifiedName qn = qualifiedNameProvider.getFullyQualifiedName(imp); ImportNormalizer resolver = createImportedNamespaceResolver(qn, ignoreCase); ImportNormalizer resolver = createImportedNamespaceResolver(qn, ignoreCase, wildcard); if (resolver != null) normalizers.add(resolver); } Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +1 −19 Original line number Diff line number Diff line package de.ugoe.cs.swe.scoping import de.ugoe.cs.swe.tTCN3.AltstepDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDef import de.ugoe.cs.swe.tTCN3.BaseTemplate import de.ugoe.cs.swe.tTCN3.ComponentDef import de.ugoe.cs.swe.tTCN3.ComponentDefList import de.ugoe.cs.swe.tTCN3.ControlStatementOrDefList import de.ugoe.cs.swe.tTCN3.ExtendedFieldReference import de.ugoe.cs.swe.tTCN3.FieldExpressionSpec import de.ugoe.cs.swe.tTCN3.FieldSpec import de.ugoe.cs.swe.tTCN3.ForStatement import de.ugoe.cs.swe.tTCN3.FormalTimerPar import de.ugoe.cs.swe.tTCN3.FormalValuePar import de.ugoe.cs.swe.tTCN3.FunctionDef import de.ugoe.cs.swe.tTCN3.GroupDef import de.ugoe.cs.swe.tTCN3.Initial import de.ugoe.cs.swe.tTCN3.ModuleControlBody import de.ugoe.cs.swe.tTCN3.ModuleControlPart import de.ugoe.cs.swe.tTCN3.ModuleDefinition import de.ugoe.cs.swe.tTCN3.ModuleDefinitionsList import de.ugoe.cs.swe.tTCN3.ModuleParDef import de.ugoe.cs.swe.tTCN3.PortInstance import de.ugoe.cs.swe.tTCN3.PortOrAny import de.ugoe.cs.swe.tTCN3.PortRef import de.ugoe.cs.swe.tTCN3.ReferencedType import de.ugoe.cs.swe.tTCN3.ReferencedValue import de.ugoe.cs.swe.tTCN3.SendStatement import de.ugoe.cs.swe.tTCN3.SingleTempVarInstance import de.ugoe.cs.swe.tTCN3.SingleVarInstance import de.ugoe.cs.swe.tTCN3.StatementBlock import de.ugoe.cs.swe.tTCN3.StructFieldDef import de.ugoe.cs.swe.tTCN3.TTCN3Module import de.ugoe.cs.swe.tTCN3.TemplateDef import de.ugoe.cs.swe.tTCN3.TestcaseDef import de.ugoe.cs.swe.tTCN3.TimerRefOrAny import de.ugoe.cs.swe.tTCN3.Type import de.ugoe.cs.swe.tTCN3.TypeDef import de.ugoe.cs.swe.tTCN3.VarInstance import org.eclipse.emf.ecore.EReference import org.eclipse.xtext.scoping.IScope Loading @@ -45,7 +28,6 @@ import static org.eclipse.xtext.scoping.Scopes.* import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.* import static extension org.eclipse.xtext.EcoreUtil2.* import de.ugoe.cs.swe.tTCN3.FormalTimerPar class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { Loading