Skip to content

Commit

Permalink
addEClass, addEAttribute
Browse files Browse the repository at this point in the history
  • Loading branch information
LorenzoBettini committed Dec 7, 2019
1 parent 7838d8b commit 2c530e7
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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();
Expand Down
12 changes: 10 additions & 2 deletions edelta.parent/edelta.lib/src/edelta/lib/EdeltaLibrary.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<EClass> 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<EAttribute> initializer) {
EAttribute eAttribute = newEAttribute(name, dataType, initializer);
eClass.getEStructuralFeatures().add(eAttribute);
addEAttribute(eClass, eAttribute);
return eAttribute;
}

Expand Down

0 comments on commit 2c530e7

Please sign in to comment.