Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Merks2015-05-28 09:21:05 +0000
committerEd Merks2015-05-28 09:21:05 +0000
commit01f4d4dcaf49f62a70bc8272852638adb1dbc206 (patch)
tree20f0d3d932e056d4076aae486ad3f23b2d0e3b62
parentde910c3fdbeb4859dc1507f70add0fc55ed3fcac (diff)
downloadorg.eclipse.emf-R2_11_0.tar.gz
org.eclipse.emf-R2_11_0.tar.xz
org.eclipse.emf-R2_11_0.zip
[468579] Couldn't resolve reference to GenBase 'EDiagnositicChain'R2_11_0
-rw-r--r--plugins/org.eclipse.emf.ecore.xcore.ui/src/org/eclipse/emf/ecore/xcore/ui/contentassist/XcoreProposalProvider.java16
-rw-r--r--plugins/org.eclipse.emf.ecore.xcore/src/org/eclipse/emf/ecore/xcore/scoping/XcoreImportedNamespaceAwareScopeProvider.java39
2 files changed, 38 insertions, 17 deletions
diff --git a/plugins/org.eclipse.emf.ecore.xcore.ui/src/org/eclipse/emf/ecore/xcore/ui/contentassist/XcoreProposalProvider.java b/plugins/org.eclipse.emf.ecore.xcore.ui/src/org/eclipse/emf/ecore/xcore/ui/contentassist/XcoreProposalProvider.java
index a2453b657..30bad2f90 100644
--- a/plugins/org.eclipse.emf.ecore.xcore.ui/src/org/eclipse/emf/ecore/xcore/ui/contentassist/XcoreProposalProvider.java
+++ b/plugins/org.eclipse.emf.ecore.xcore.ui/src/org/eclipse/emf/ecore/xcore/ui/contentassist/XcoreProposalProvider.java
@@ -104,6 +104,18 @@ public class XcoreProposalProvider extends AbstractXcoreProposalProvider
public void completeXGenericType_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor)
{
IScope scope = xcoreScopeProvider.getScope(model, XcorePackage.Literals.XGENERIC_TYPE__TYPE);
+ super.completeXGenericType_Type(model, assignment, context, getImportingProposalAcceptor(scope, context, acceptor));
+ }
+
+ @Override
+ public void completeXAnnotation_Source(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor)
+ {
+ IScope scope = xcoreScopeProvider.getScope(model, XcorePackage.Literals.XANNOTATION__SOURCE);
+ super.completeXAnnotation_Source(model, assignment, context, getImportingProposalAcceptor(scope, context, acceptor));
+ }
+
+ private ICompletionProposalAcceptor getImportingProposalAcceptor(IScope scope, ContentAssistContext context, ICompletionProposalAcceptor acceptor)
+ {
final IReplacementTextApplier textApplier =
new ImportingTypesProposalProvider.FQNImporter
(context.getResource(),
@@ -112,7 +124,7 @@ public class XcoreProposalProvider extends AbstractXcoreProposalProvider
qualifiedNameConverter,
qualifiedNameValueConverter,
qualifiedNameValueConverter);
- ICompletionProposalAcceptor scopeAware =
+ ICompletionProposalAcceptor scopeAwareAcceptor =
new ICompletionProposalAcceptor.Delegate(acceptor)
{
@Override
@@ -125,7 +137,7 @@ public class XcoreProposalProvider extends AbstractXcoreProposalProvider
super.accept(proposal);
}
};
- super.completeXGenericType_Type(model, assignment, context, scopeAware);
+ return scopeAwareAcceptor;
}
@Override
diff --git a/plugins/org.eclipse.emf.ecore.xcore/src/org/eclipse/emf/ecore/xcore/scoping/XcoreImportedNamespaceAwareScopeProvider.java b/plugins/org.eclipse.emf.ecore.xcore/src/org/eclipse/emf/ecore/xcore/scoping/XcoreImportedNamespaceAwareScopeProvider.java
index 4a52494d4..f5619cca2 100644
--- a/plugins/org.eclipse.emf.ecore.xcore/src/org/eclipse/emf/ecore/xcore/scoping/XcoreImportedNamespaceAwareScopeProvider.java
+++ b/plugins/org.eclipse.emf.ecore.xcore/src/org/eclipse/emf/ecore/xcore/scoping/XcoreImportedNamespaceAwareScopeProvider.java
@@ -32,6 +32,7 @@ import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.xcore.XAnnotationDirective;
import org.eclipse.emf.ecore.xcore.XClass;
import org.eclipse.emf.ecore.xcore.XImportDirective;
@@ -181,7 +182,8 @@ public class XcoreImportedNamespaceAwareScopeProvider extends ImportedNamespaceA
private IScope getAnnotationScope(final EObject context)
{
- String cacheKey = (context instanceof XImportDirective) ? "import.annotation.scope" : "annotation.scope";
+ final boolean isImport = context instanceof XImportDirective;
+ String cacheKey = isImport ? "import.annotation.scope" : "annotation.scope";
final Resource resource = context.eResource();
return cache.get(cacheKey, resource, new Provider<IScope>()
{
@@ -190,7 +192,8 @@ public class XcoreImportedNamespaceAwareScopeProvider extends ImportedNamespaceA
IScope globalScope = getGlobalScope(resource, XcorePackage.Literals.XANNOTATION__SOURCE);
ImportNormalizer xcoreLang = new ImportNormalizer(nameConverter.toQualifiedName("xcore.lang"), true, false);
ImportScope xcoreLangScope = createImportScope(globalScope, singletonList(xcoreLang), null, XcorePackage.Literals.XANNOTATION_DIRECTIVE, false);
- ImportScope importScope = createImportScope(xcoreLangScope, getImportedNamespaceResolvers(context, false), null, XcorePackage.Literals.XANNOTATION_DIRECTIVE, false);
+ List<ImportNormalizer> importedNamespaceResolvers = isImport ? Collections.<ImportNormalizer>emptyList() : getImportedNamespaceResolvers(EcoreUtil.getRootContainer(context), false);
+ ImportScope importScope = createImportScope(xcoreLangScope, importedNamespaceResolvers, null, XcorePackage.Literals.XANNOTATION_DIRECTIVE, false);
IScope resourceScope = getLocalAnnotationsScope(resource, importScope);
return new CachingScope(resourceScope);
}
@@ -199,7 +202,8 @@ public class XcoreImportedNamespaceAwareScopeProvider extends ImportedNamespaceA
private IScope getClassifierScope(final EObject context)
{
- String cacheKey = (context instanceof XImportDirective) ? "import.classifier.scope" : "classifier.scope";
+ final boolean isImport = context instanceof XImportDirective;
+ String cacheKey = isImport ? "import.classifier.scope" : "classifier.scope";
final Resource resource = context.eResource();
return cache.get(cacheKey, resource, new Provider<IScope>()
{
@@ -214,22 +218,27 @@ public class XcoreImportedNamespaceAwareScopeProvider extends ImportedNamespaceA
}
});
EcoreDataTypeAliasingScope aliasingScope = new EcoreDataTypeAliasingScope(globalScope, nameConverter);
- List<ImportNormalizer> importedNamespaceResolvers = Lists.newArrayList(getImportedNamespaceResolvers(context, false));
- Set<String> names = new HashSet<String>();
- for (ImportNormalizer importNormalizer : importedNamespaceResolvers)
+
+ List<ImportNormalizer> importedNamespaceResolvers = Collections.emptyList();
+ if (!isImport)
{
- if (!importNormalizer.hasWildCard())
+ importedNamespaceResolvers = Lists.newArrayList(getImportedNamespaceResolvers(EcoreUtil.getRootContainer(context), false));
+ Set<String> names = new HashSet<String>();
+ for (ImportNormalizer importNormalizer : importedNamespaceResolvers)
{
- names.add(importNormalizer.getImportedNamespacePrefix().getLastSegment());
+ if (!importNormalizer.hasWildCard())
+ {
+ names.add(importNormalizer.getImportedNamespacePrefix().getLastSegment());
+ }
}
- }
-
- for (String implicitImport : IMPLICIT_IMPORTS)
- {
- ImportNormalizer importedNamespaceResolver = createImportedNamespaceResolver(implicitImport, false);
- if (!names.contains(importedNamespaceResolver.getImportedNamespacePrefix().getLastSegment()))
+
+ for (String implicitImport : IMPLICIT_IMPORTS)
{
- importedNamespaceResolvers.add(importedNamespaceResolver);
+ ImportNormalizer importedNamespaceResolver = createImportedNamespaceResolver(implicitImport, false);
+ if (!names.contains(importedNamespaceResolver.getImportedNamespacePrefix().getLastSegment()))
+ {
+ importedNamespaceResolvers.add(importedNamespaceResolver);
+ }
}
}

Back to the top