diff --git a/edelta.parent/edelta.lib.tests/src/edelta/lib/tests/EdeltaLibraryTest.java b/edelta.parent/edelta.lib.tests/src/edelta/lib/tests/EdeltaLibraryTest.java index 247bcccb8..e1c0761c1 100644 --- a/edelta.parent/edelta.lib.tests/src/edelta/lib/tests/EdeltaLibraryTest.java +++ b/edelta.parent/edelta.lib.tests/src/edelta/lib/tests/EdeltaLibraryTest.java @@ -109,6 +109,15 @@ public void testNewEEnumLiteralWithInitializer() { assertEquals("changed", e.getName()); } + @Test + public void test_addEClass() { + EPackage ePackage = ecoreFactory.createEPackage(); + EClass eClass = ecoreFactory.createEClass(); + lib.addEClass(ePackage, eClass); + assertSame(eClass, + ePackage.getEClassifiers().get(0)); + } + @Test public void test_addNewEClass() { EPackage ePackage = ecoreFactory.createEPackage(); @@ -128,6 +137,15 @@ public void test_addNewEClassWithInitializer() { ePackage.getEClassifiers().get(0)); } + @Test + public void test_addEAttribute() { + EClass eClass = ecoreFactory.createEClass(); + EAttribute eAttribute = ecoreFactory.createEAttribute(); + lib.addEAttribute(eClass, eAttribute); + assertSame(eAttribute, + eClass.getEStructuralFeatures().get(0)); + } + @Test public void test_addNewEAttribute() { EClass eClass = ecoreFactory.createEClass(); diff --git a/edelta.parent/edelta.lib/src/edelta/lib/EdeltaLibrary.java b/edelta.parent/edelta.lib/src/edelta/lib/EdeltaLibrary.java index b03156577..8e4088c71 100644 --- a/edelta.parent/edelta.lib/src/edelta/lib/EdeltaLibrary.java +++ b/edelta.parent/edelta.lib/src/edelta/lib/EdeltaLibrary.java @@ -115,23 +115,31 @@ public String getEObjectRepr(EObject e) { return e.eContainer() != null ? getEObjectRepr(e.eContainer()) + ":" + info : info; } + public void addEClass(EPackage ePackage, EClass eClass) { + ePackage.getEClassifiers().add(eClass); + } + public EClass addNewEClass(EPackage ePackage, String name) { return addNewEClass(ePackage, name, null); } public EClass addNewEClass(EPackage ePackage, String name, Consumer initializer) { EClass newEClass = newEClass(name, initializer); - ePackage.getEClassifiers().add(newEClass); + addEClass(ePackage, newEClass); return newEClass; } + public void addEAttribute(EClass eClass, EAttribute eAttribute) { + eClass.getEStructuralFeatures().add(eAttribute); + } + public EAttribute addNewEAttribute(EClass eClass, String name, EDataType dataType) { return addNewEAttribute(eClass, name, dataType, null); } public EAttribute addNewEAttribute(EClass eClass, String name, EDataType dataType, Consumer initializer) { EAttribute eAttribute = newEAttribute(name, dataType, initializer); - eClass.getEStructuralFeatures().add(eAttribute); + addEAttribute(eClass, eAttribute); return eAttribute; }