Skip to content

Commit

Permalink
Merge 4b5201e into 763245e
Browse files Browse the repository at this point in the history
  • Loading branch information
LorenzoBettini committed May 15, 2020
2 parents 763245e + 4b5201e commit 7ce14d2
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 1 deletion.
Expand Up @@ -122,6 +122,28 @@ class EdeltaEcoreHelperTest extends EdeltaAbstractTest {
]
}

@Test
def void testEPackageENamedElementsWithNewSubPackages() {
'''
metamodel "foo"
modifyEcore aTest epackage foo {
addNewESubpackage("anewsubpackage", "aprefix", "aURI") [
addNewEClass("AddedInSubpackage")
]
}
'''.parseWithTestEcore => [
getENamedElements(
copiedEPackages.head.ESubpackages.head, it
).
assertNamedElements(
'''
AddedInSubpackage
'''
)
]
}

@Test
def void testSubPackageEPackageENamedElementsWithSubPackages() {
referenceToMetamodelWithSubPackage.parseWithTestEcoreWithSubPackage => [
Expand Down
Expand Up @@ -177,6 +177,37 @@ public void testEPackageENamedElementsWithSubPackages() {
ObjectExtensions.<EdeltaProgram>operator_doubleArrow(_parseWithTestEcoreWithSubPackage, _function);
}

@Test
public void testEPackageENamedElementsWithNewSubPackages() {
StringConcatenation _builder = new StringConcatenation();
_builder.append("metamodel \"foo\"");
_builder.newLine();
_builder.newLine();
_builder.append("modifyEcore aTest epackage foo {");
_builder.newLine();
_builder.append("\t");
_builder.append("addNewESubpackage(\"anewsubpackage\", \"aprefix\", \"aURI\") [");
_builder.newLine();
_builder.append("\t\t");
_builder.append("addNewEClass(\"AddedInSubpackage\")");
_builder.newLine();
_builder.append("\t");
_builder.append("]");
_builder.newLine();
_builder.append("}");
_builder.newLine();
EdeltaProgram _parseWithTestEcore = this.parseWithTestEcore(_builder);
final Procedure1<EdeltaProgram> _function = (EdeltaProgram it) -> {
Iterable<? extends ENamedElement> _eNamedElements = this._edeltaEcoreHelper.getENamedElements(
IterableExtensions.<EPackage>head(IterableExtensions.<EPackage>head(this.getCopiedEPackages(it)).getESubpackages()), it);
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("AddedInSubpackage");
_builder_1.newLine();
this.assertNamedElements(_eNamedElements, _builder_1);
};
ObjectExtensions.<EdeltaProgram>operator_doubleArrow(_parseWithTestEcore, _function);
}

@Test
public void testSubPackageEPackageENamedElementsWithSubPackages() {
EdeltaProgram _parseWithTestEcoreWithSubPackage = this.parseWithTestEcoreWithSubPackage(this._inputs.referenceToMetamodelWithSubPackage());
Expand Down
7 changes: 6 additions & 1 deletion edelta.parent/edelta/src/edelta/util/EdeltaEcoreHelper.xtend
Expand Up @@ -114,7 +114,8 @@ class EdeltaEcoreHelper {

def private List<? extends ENamedElement> getEPackageENamedElementsInternal(EPackage ePackage, EObject context, boolean includeCopiedEPackages) {
val imported =
getProgram(context).metamodels.findEPackageByNameInRootEPackages(ePackage)
getProgram(context).metamodels
.findEPackageByNameInRootEPackages(ePackage)
if (includeCopiedEPackages) {
val copiedEPackage =
context.eResource.copiedEPackagesMap.values
Expand All @@ -130,6 +131,10 @@ class EdeltaEcoreHelper {
}

def private List<? extends ENamedElement> getEPackageENamedElementsInternal(EPackage ePackage) {
// could be null if we searched for a new subpackage
// in the imported metamodels
if (ePackage === null)
return emptyList
return (
ePackage.getEClassifiers +
ePackage.getESubpackages
Expand Down

0 comments on commit 7ce14d2

Please sign in to comment.