Search in sources :

Example 1 with Main

use of org.eclipse.xtext.linking.importedURI.Main in project xtext-core by eclipse.

the class Bug437669Test method getContext.

protected Type getContext() {
    XtextResourceSet resourceSet = get(XtextResourceSet.class);
    resourceSet.setClasspathURIContext(getClass().getClassLoader());
    URI uri = URI.createURI("classpath:/org/eclipse/xtext/linking/02.importuritestlanguage");
    Resource resource = resourceSet.getResource(uri, true);
    Main main = (Main) resource.getContents().get(0);
    return main.getTypes().get(0);
}
Also used : XtextResourceSet(org.eclipse.xtext.resource.XtextResourceSet) Resource(org.eclipse.emf.ecore.resource.Resource) URI(org.eclipse.emf.common.util.URI) Main(org.eclipse.xtext.linking.importedURI.Main)

Example 2 with Main

use of org.eclipse.xtext.linking.importedURI.Main in project xtext-core by eclipse.

the class SimpleNameScopeProviderTest method testScopeFileName.

@Test
public void testScopeFileName() throws Exception {
    SyntheticModelAwareURIConverter models = new SyntheticModelAwareURIConverter();
    ResourceSetImpl rs = new ResourceSetImpl();
    rs.setURIConverter(models);
    models.addModel("foo.importuritestlanguage", "import 'bar.importuritestlanguage' type foo extends bar type bar extends bar2");
    models.addModel("bar.importuritestlanguage", "type bar type bar2 extends bar");
    Resource resource = rs.getResource(URI.createURI("foo.importuritestlanguage"), true);
    Main main = (Main) resource.getContents().get(0);
    assertEquals("bar", main.getTypes().get(0).getExtends().getName());
    assertEquals("bar2", main.getTypes().get(0).getExtends().getExtends().getName());
    assertEquals("bar", main.getTypes().get(0).getExtends().getExtends().getExtends().getName());
    assertNull(main.getTypes().get(0).getExtends().getExtends().getExtends().getExtends());
}
Also used : ResourceSetImpl(org.eclipse.emf.ecore.resource.impl.ResourceSetImpl) Resource(org.eclipse.emf.ecore.resource.Resource) Main(org.eclipse.xtext.linking.importedURI.Main) Test(org.junit.Test)

Example 3 with Main

use of org.eclipse.xtext.linking.importedURI.Main in project xtext-core by eclipse.

the class SimpleNameScopeProviderTest method testCircularImport.

@Test
public void testCircularImport() throws Exception {
    SyntheticModelAwareURIConverter models = new SyntheticModelAwareURIConverter();
    ResourceSetImpl rs = new ResourceSetImpl();
    rs.setURIConverter(models);
    models.addModel("foo.importuritestlanguage", "import 'bar.importuritestlanguage' type foo extends bar");
    models.addModel("bar.importuritestlanguage", "import 'foo.importuritestlanguage' type bar extends foo");
    Resource resource = rs.getResource(URI.createURI("foo.importuritestlanguage"), true);
    Main main = (Main) resource.getContents().get(0);
    assertEquals("bar", main.getTypes().get(0).getExtends().getName());
    assertEquals("foo", main.getTypes().get(0).getExtends().getExtends().getName());
    assertSame(main.getTypes().get(0).getExtends().getExtends(), main.getTypes().get(0));
}
Also used : ResourceSetImpl(org.eclipse.emf.ecore.resource.impl.ResourceSetImpl) Resource(org.eclipse.emf.ecore.resource.Resource) Main(org.eclipse.xtext.linking.importedURI.Main) Test(org.junit.Test)

Example 4 with Main

use of org.eclipse.xtext.linking.importedURI.Main in project xtext-core by eclipse.

the class SimpleNameScopeProviderTest method testSimple.

@Test
public void testSimple() throws Exception {
    SyntheticModelAwareURIConverter models = new SyntheticModelAwareURIConverter();
    ResourceSetImpl rs = new ResourceSetImpl();
    rs.setURIConverter(models);
    models.addModel("foo.importuritestlanguage", "import 'bar.importuritestlanguage' type foo extends bar");
    models.addModel("bar.importuritestlanguage", "type bar");
    Resource resource = rs.getResource(URI.createURI("foo.importuritestlanguage"), true);
    Main main = (Main) resource.getContents().get(0);
    assertEquals("bar", main.getTypes().get(0).getExtends().getName());
}
Also used : ResourceSetImpl(org.eclipse.emf.ecore.resource.impl.ResourceSetImpl) Resource(org.eclipse.emf.ecore.resource.Resource) Main(org.eclipse.xtext.linking.importedURI.Main) Test(org.junit.Test)

Example 5 with Main

use of org.eclipse.xtext.linking.importedURI.Main in project xtext-core by eclipse.

the class SimpleNameScopeProviderTest method testBug261630_duplicateImports.

/**
 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=261630
 */
@Test
public void testBug261630_duplicateImports() throws Exception {
    SyntheticModelAwareURIConverter models = new SyntheticModelAwareURIConverter();
    ResourceSetImpl rs = new ResourceSetImpl();
    rs.setURIConverter(models);
    models.addModel("foo.importuritestlanguage", "import 'bar.importuritestlanguage' import 'bar.importuritestlanguage' import 'bar.importuritestlanguage' type foo extends bar type bar extends bar2");
    models.addModel("bar.importuritestlanguage", "type bar type bar2 extends bar");
    Resource resource = rs.getResource(URI.createURI("foo.importuritestlanguage"), true);
    Main main = (Main) resource.getContents().get(0);
    assertEquals("bar", main.getTypes().get(0).getExtends().getName());
    assertEquals("bar2", main.getTypes().get(0).getExtends().getExtends().getName());
    assertEquals("bar", main.getTypes().get(0).getExtends().getExtends().getExtends().getName());
    assertNull(main.getTypes().get(0).getExtends().getExtends().getExtends().getExtends());
}
Also used : ResourceSetImpl(org.eclipse.emf.ecore.resource.impl.ResourceSetImpl) Resource(org.eclipse.emf.ecore.resource.Resource) Main(org.eclipse.xtext.linking.importedURI.Main) Test(org.junit.Test)

Aggregations

Main (org.eclipse.xtext.linking.importedURI.Main)10 Resource (org.eclipse.emf.ecore.resource.Resource)8 Test (org.junit.Test)8 ResourceSetImpl (org.eclipse.emf.ecore.resource.impl.ResourceSetImpl)7 Type (org.eclipse.xtext.linking.importedURI.Type)2 IEObjectDescription (org.eclipse.xtext.resource.IEObjectDescription)2 IScope (org.eclipse.xtext.scoping.IScope)2 URI (org.eclipse.emf.common.util.URI)1 EPackage (org.eclipse.emf.ecore.EPackage)1 Action (org.eclipse.xtext.Action)1 Parameter (org.eclipse.xtext.Parameter)1 ParserRule (org.eclipse.xtext.ParserRule)1 Import (org.eclipse.xtext.linking.importedURI.Import)1 XtextResourceSet (org.eclipse.xtext.resource.XtextResourceSet)1 IScopeProvider (org.eclipse.xtext.scoping.IScopeProvider)1