Search in sources :

Example 1 with Entity

use of org.eclipse.xtext.index.indexTestLanguage.Entity in project xtext-core by eclipse.

the class ImportedNamespaceAwareLocalScopeProviderTest method getEntityByName.

protected Entity getEntityByName(final Resource res2, String name) {
    Iterable<EObject> allContents = new Iterable<EObject>() {

        @Override
        public Iterator<EObject> iterator() {
            return res2.getAllContents();
        }
    };
    Iterable<Entity> iterator = Iterables.filter(allContents, Entity.class);
    for (Entity entity : iterator) {
        if (entity.getName().equals(name))
            return entity;
    }
    return null;
}
Also used : Entity(org.eclipse.xtext.index.indexTestLanguage.Entity) EObject(org.eclipse.emf.ecore.EObject)

Example 2 with Entity

use of org.eclipse.xtext.index.indexTestLanguage.Entity in project xtext-core by eclipse.

the class ImportedNamespaceAwareLocalScopeProviderTest method testUnambiguousImportAreShadowed_01.

@Test
public void testUnambiguousImportAreShadowed_01() throws Exception {
    final XtextResource resource = getResource(new StringInputStream("foo { " + "  entity Foo {}" + "  entity Bar {}" + "}" + "bar {" + "  entity Foo {}" + "}" + "baz {" + "  import foo.*" + "  import bar.Foo" + "  entity Baz{}" + "}"), URI.createURI("withoutwildcard.indextestlanguage"));
    Iterable<EObject> allContents = new Iterable<EObject>() {

        @Override
        public Iterator<EObject> iterator() {
            return resource.getAllContents();
        }
    };
    Entity foo = find(Iterables.filter(allContents, Entity.class), new Predicate<Entity>() {

        @Override
        public boolean apply(Entity input) {
            return input.getName().equals("Baz");
        }
    });
    IScope scope = scopeProvider.getScope(foo, IndexTestLanguagePackage.eINSTANCE.getProperty_Type());
    assertNotNull(scope.getSingleElement(nameConverter.toQualifiedName("Bar")));
    assertNull(scope.getSingleElement(nameConverter.toQualifiedName("Foo")));
    ArrayList<IEObjectDescription> list = newArrayList(scope.getAllElements());
    assertEquals(6, list.size());
    assertFalse(any(list, new Predicate<IEObjectDescription>() {

        @Override
        public boolean apply(IEObjectDescription input) {
            return input.getName().equals(QualifiedName.create("Foo"));
        }
    }));
}
Also used : Entity(org.eclipse.xtext.index.indexTestLanguage.Entity) StringInputStream(org.eclipse.xtext.util.StringInputStream) EObject(org.eclipse.emf.ecore.EObject) IScope(org.eclipse.xtext.scoping.IScope) XtextResource(org.eclipse.xtext.resource.XtextResource) IEObjectDescription(org.eclipse.xtext.resource.IEObjectDescription) Predicate(com.google.common.base.Predicate) Test(org.junit.Test)

Example 3 with Entity

use of org.eclipse.xtext.index.indexTestLanguage.Entity in project xtext-core by eclipse.

the class ImportedNamespaceAwareLocalScopeProviderTest method testRelativePath.

@Test
public void testRelativePath() throws Exception {
    final XtextResource resource = getResource(new StringInputStream("stuff { " + "  import baz.*" + "  baz { " + "    datatype String " + "  } " + "  entity Person {" + "  }" + "}"), URI.createURI("relative.indextestlanguage"));
    Iterable<EObject> allContents = new Iterable<EObject>() {

        @Override
        public Iterator<EObject> iterator() {
            return resource.getAllContents();
        }
    };
    Entity entity = filter(allContents, Entity.class).iterator().next();
    IScope scope = scopeProvider.getScope(entity, IndexTestLanguagePackage.eINSTANCE.getProperty_Type());
    assertNotNull(scope.getSingleElement(nameConverter.toQualifiedName("String")));
    assertNotNull(scope.getSingleElement(nameConverter.toQualifiedName("baz.String")));
    assertNotNull(scope.getSingleElement(nameConverter.toQualifiedName("stuff.baz.String")));
}
Also used : Entity(org.eclipse.xtext.index.indexTestLanguage.Entity) StringInputStream(org.eclipse.xtext.util.StringInputStream) EObject(org.eclipse.emf.ecore.EObject) IScope(org.eclipse.xtext.scoping.IScope) XtextResource(org.eclipse.xtext.resource.XtextResource) Test(org.junit.Test)

Example 4 with Entity

use of org.eclipse.xtext.index.indexTestLanguage.Entity in project xtext-core by eclipse.

the class ImportedNamespaceAwareLocalScopeProviderTest method testUnambiguousImportAreShadowed_00.

@Test
public void testUnambiguousImportAreShadowed_00() throws Exception {
    final XtextResource resource = getResource(new StringInputStream("foo { " + "  entity Foo {}" + "  entity Bar {}" + "}" + "bar {" + "  entity Foo {}" + "}" + "baz {" + "  import foo.*" + "  import bar.*" + "  entity Baz{}" + "}"), URI.createURI("withoutwildcard.indextestlanguage"));
    Iterable<EObject> allContents = new Iterable<EObject>() {

        @Override
        public Iterator<EObject> iterator() {
            return resource.getAllContents();
        }
    };
    Entity foo = find(Iterables.filter(allContents, Entity.class), new Predicate<Entity>() {

        @Override
        public boolean apply(Entity input) {
            return input.getName().equals("Baz");
        }
    });
    IScope scope = scopeProvider.getScope(foo, IndexTestLanguagePackage.eINSTANCE.getProperty_Type());
    assertNotNull(scope.getSingleElement(nameConverter.toQualifiedName("Bar")));
    assertNull(scope.getSingleElement(nameConverter.toQualifiedName("Foo")));
    ArrayList<IEObjectDescription> list = newArrayList(scope.getAllElements());
    assertEquals(6, list.size());
    assertFalse(any(list, new Predicate<IEObjectDescription>() {

        @Override
        public boolean apply(IEObjectDescription input) {
            return input.getName().equals(QualifiedName.create("Foo"));
        }
    }));
}
Also used : Entity(org.eclipse.xtext.index.indexTestLanguage.Entity) StringInputStream(org.eclipse.xtext.util.StringInputStream) EObject(org.eclipse.emf.ecore.EObject) IScope(org.eclipse.xtext.scoping.IScope) XtextResource(org.eclipse.xtext.resource.XtextResource) IEObjectDescription(org.eclipse.xtext.resource.IEObjectDescription) Predicate(com.google.common.base.Predicate) Test(org.junit.Test)

Example 5 with Entity

use of org.eclipse.xtext.index.indexTestLanguage.Entity in project xtext-core by eclipse.

the class AbstractReaderTest method testLoadByType_withNsURI.

@SuppressWarnings("unchecked")
@Test
public void testLoadByType_withNsURI() throws Exception {
    Reader reader = getReader();
    reader.addPath(pathTo("emptyFolder"));
    reader.addPath(pathTo("nonemptyFolder"));
    reader.addRegister(new IndexTestLanguageStandaloneSetup());
    SlotEntry entry = createSlotEntry();
    entry.setType("Entity");
    entry.setNsURI(IndexTestLanguagePackage.eNS_URI);
    reader.addLoad(entry);
    WorkflowContext ctx = ctx();
    reader.invoke(ctx, monitor(), issues());
    List<Entity> entities = (List<Entity>) ctx.get("model");
    assertEquals(2, entities.size());
}
Also used : Entity(org.eclipse.xtext.index.indexTestLanguage.Entity) WorkflowContext(org.eclipse.emf.mwe.core.WorkflowContext) List(java.util.List) IndexTestLanguageStandaloneSetup(org.eclipse.xtext.index.IndexTestLanguageStandaloneSetup) Test(org.junit.Test)

Aggregations

Entity (org.eclipse.xtext.index.indexTestLanguage.Entity)19 Test (org.junit.Test)16 EObject (org.eclipse.emf.ecore.EObject)13 StringInputStream (org.eclipse.xtext.util.StringInputStream)12 XtextResource (org.eclipse.xtext.resource.XtextResource)10 IScope (org.eclipse.xtext.scoping.IScope)10 Predicate (com.google.common.base.Predicate)6 Resource (org.eclipse.emf.ecore.resource.Resource)5 List (java.util.List)4 WorkflowContext (org.eclipse.emf.mwe.core.WorkflowContext)4 IndexTestLanguageStandaloneSetup (org.eclipse.xtext.index.IndexTestLanguageStandaloneSetup)4 IEObjectDescription (org.eclipse.xtext.resource.IEObjectDescription)4 ResourceSetImpl (org.eclipse.emf.ecore.resource.impl.ResourceSetImpl)3 ResourceSetReferencingResourceSetImpl (org.eclipse.xtext.resource.ResourceSetReferencingResourceSetImpl)3 InternalEObject (org.eclipse.emf.ecore.InternalEObject)2 Datatype (org.eclipse.xtext.index.indexTestLanguage.Datatype)2 EPackage (org.eclipse.emf.ecore.EPackage)1 Issues (org.eclipse.emf.mwe.core.issues.Issues)1 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)1 Action (org.eclipse.xtext.Action)1