Search in sources :

Example 21 with EClass

use of org.eclipse.emf.ecore.EClass in project xtext-core by eclipse.

the class EcoreUtil2Test method testClone.

@Test
public void testClone() throws Exception {
    Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
    EPackage.Registry.INSTANCE.put(EcorePackage.eINSTANCE.getNsURI(), EcorePackage.eINSTANCE);
    ResourceSetImpl rs = new ResourceSetImpl();
    Resource r1 = rs.createResource(URI.createURI("foo.xmi"), ContentHandler.UNSPECIFIED_CONTENT_TYPE);
    Resource r2 = rs.createResource(URI.createURI("bar.xmi"), ContentHandler.UNSPECIFIED_CONTENT_TYPE);
    EClass a = EcoreFactory.eINSTANCE.createEClass();
    a.setName("a");
    EClass b = EcoreFactory.eINSTANCE.createEClass();
    r1.getContents().add(a);
    b.setName("b");
    b.getESuperTypes().add(a);
    r2.getContents().add(b);
    ResourceSetImpl clone = EcoreUtil2.clone(new ResourceSetImpl(), rs);
    EList<Resource> list = clone.getResources();
    Resource resA = list.get(0);
    assertEquals(URI.createURI("foo.xmi"), resA.getURI());
    assertNotSame(resA, r1);
    Resource resB = list.get(1);
    assertEquals(URI.createURI("bar.xmi"), resB.getURI());
    assertNotSame(resB, r2);
    EClass a1 = (EClass) resA.getContents().get(0);
    EClass b1 = (EClass) resB.getContents().get(0);
    assertEquals("a", a1.getName());
    assertNotSame(a, a1);
    assertEquals("b", b1.getName());
    assertNotSame(b, b1);
    assertSame(b1.getESuperTypes().get(0), a1);
    assertSame(b.getESuperTypes().get(0), a);
}
Also used : EClass(org.eclipse.emf.ecore.EClass) ResourceSetImpl(org.eclipse.emf.ecore.resource.impl.ResourceSetImpl) XMIResourceFactoryImpl(org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl) DerivedStateAwareResource(org.eclipse.xtext.resource.DerivedStateAwareResource) Resource(org.eclipse.emf.ecore.resource.Resource) Test(org.junit.Test)

Example 22 with EClass

use of org.eclipse.emf.ecore.EClass in project xtext-core by eclipse.

the class EcoreUtil2Test method testGetAllReferencedObjects.

@Test
public void testGetAllReferencedObjects() {
    EClass a = createEClass("a");
    EClass b = createEClass("b");
    EPackage pack = EcoreFactory.eINSTANCE.createEPackage();
    pack.setName("empty");
    pack.setNsPrefix("empty");
    pack.setNsURI("empty");
    pack.getEClassifiers().add(a);
    pack.getEClassifiers().add(b);
    EReference ref = EcoreFactory.eINSTANCE.createEReference();
    a.getEStructuralFeatures().add(ref);
    ref.setUpperBound(1);
    ref.setEType(b);
    EObject objA = pack.getEFactoryInstance().create(a);
    EObject objB = pack.getEFactoryInstance().create(b);
    List<EObject> res = EcoreUtil2.getAllReferencedObjects(objA, ref);
    assertNotNull(res);
    assertTrue(res.isEmpty());
    res = EcoreUtil2.getAllReferencedObjects(objA, ref);
    assertNotNull(res);
    objA.eSet(ref, objB);
}
Also used : EClass(org.eclipse.emf.ecore.EClass) EObject(org.eclipse.emf.ecore.EObject) EReference(org.eclipse.emf.ecore.EReference) EPackage(org.eclipse.emf.ecore.EPackage) Test(org.junit.Test)

Example 23 with EClass

use of org.eclipse.emf.ecore.EClass in project xtext-core by eclipse.

the class EcoreUtil2Test method testGetAllSuperTypesWithCycle.

@Test
public void testGetAllSuperTypesWithCycle() {
    EClass a = createEClass("a");
    EClass b = createEClass("b");
    b.getESuperTypes().add(a);
    a.getESuperTypes().add(b);
    // inconsistent and quasi-unpredictable in complex scenarios due to caching
    assertTrue(a.getEAllSuperTypes().contains(a));
    assertFalse(b.getEAllSuperTypes().contains(b));
    // always stable
    assertTrue(EcoreUtil2.getAllSuperTypes(a).contains(a));
    assertTrue(EcoreUtil2.getAllSuperTypes(b).contains(b));
}
Also used : EClass(org.eclipse.emf.ecore.EClass) Test(org.junit.Test)

Example 24 with EClass

use of org.eclipse.emf.ecore.EClass in project xtext-core by eclipse.

the class EcoreUtil2Test method testPathFragment.

@Test
public void testPathFragment() {
    EClass foo = EcoreFactory.eINSTANCE.createEClass();
    foo.setName("foo");
    EClass bar = EcoreFactory.eINSTANCE.createEClass();
    foo.setName("bar");
    EPackage p = EcoreFactory.eINSTANCE.createEPackage();
    bar.setName("p");
    p.getEClassifiers().add(foo);
    p.getEClassifiers().add(bar);
    assertEquals("/-1", EcoreUtil2.getFragmentPath(foo));
    assertEquals("/-1", EcoreUtil2.getFragmentPath(bar));
    assertEquals("/-1", EcoreUtil2.getFragmentPath(p));
    Resource resource = new ResourceImpl(URI.createURI("platform:/resource/res"));
    resource.getContents().add(p);
    assertEquals(URI.createURI("platform:/resource/res#//@eClassifiers.0"), EcoreUtil2.getFragmentPathURI(foo));
    assertEquals(URI.createURI("platform:/resource/res#//@eClassifiers.1"), EcoreUtil2.getFragmentPathURI(bar));
    assertEquals(URI.createURI("platform:/resource/res#/"), EcoreUtil2.getFragmentPathURI(p));
    assertEquals(resource.getEObject("//@eClassifiers.0"), foo);
    assertEquals(resource.getEObject("//@eClassifiers.1"), bar);
    assertEquals(resource.getEObject("/"), p);
}
Also used : EClass(org.eclipse.emf.ecore.EClass) ResourceImpl(org.eclipse.emf.ecore.resource.impl.ResourceImpl) DerivedStateAwareResource(org.eclipse.xtext.resource.DerivedStateAwareResource) Resource(org.eclipse.emf.ecore.resource.Resource) EPackage(org.eclipse.emf.ecore.EPackage) Test(org.junit.Test)

Example 25 with EClass

use of org.eclipse.emf.ecore.EClass in project xtext-core by eclipse.

the class ElementFinderTest method testFindCrossReferences.

@Test
public void testFindCrossReferences() {
    AbstractGrammarElementFinder f = grammarFinder();
    AbstractRule r = GrammarUtil.findRuleForName(f.getGrammar(), "FQN");
    assertNotNull(r);
    assertEquals(1, f.findCrossReferences(r).size());
    EClass type = (EClass) GrammarUtil.findRuleForName(f.getGrammar(), "Type").getType().getClassifier();
    assertNotNull(type);
    assertEquals(1, f.findCrossReferences(type).size());
}
Also used : EClass(org.eclipse.emf.ecore.EClass) AbstractGrammarElementFinder(org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder) AbstractRule(org.eclipse.xtext.AbstractRule) Test(org.junit.Test)

Aggregations

EClass (org.eclipse.emf.ecore.EClass)205 Test (org.junit.Test)99 EPackage (org.eclipse.emf.ecore.EPackage)70 EClassifier (org.eclipse.emf.ecore.EClassifier)67 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)43 EObject (org.eclipse.emf.ecore.EObject)35 EStructuralFeature (org.eclipse.emf.ecore.EStructuralFeature)27 Resource (org.eclipse.emf.ecore.resource.Resource)23 EReference (org.eclipse.emf.ecore.EReference)22 IEObjectDescription (org.eclipse.xtext.resource.IEObjectDescription)16 ISerializationContext (org.eclipse.xtext.serializer.ISerializationContext)13 ParserRule (org.eclipse.xtext.ParserRule)12 QualifiedName (org.eclipse.xtext.naming.QualifiedName)12 InternalEObject (org.eclipse.emf.ecore.InternalEObject)11 StringConcatenationClient (org.eclipse.xtend2.lib.StringConcatenationClient)11 IScope (org.eclipse.xtext.scoping.IScope)11 ArrayList (java.util.ArrayList)10 AbstractRule (org.eclipse.xtext.AbstractRule)10 List (java.util.List)9 ResourceSet (org.eclipse.emf.ecore.resource.ResourceSet)9