Skip to content
Snippets Groups Projects
Commit 082c98c0 authored by Chrissi's avatar Chrissi
Browse files

remove error with enums in loader classes

parent 185a8162
Branches
No related tags found
No related merge requests found
...@@ -20,9 +20,10 @@ class SumModelReadingVisitor(config: GeneratorConfig) extends SModelVisitor { ...@@ -20,9 +20,10 @@ class SumModelReadingVisitor(config: GeneratorConfig) extends SModelVisitor {
val creatorSum = new SClass("Creation" + sModel.getName + "Sum", PackageNames.creationPkgName) val creatorSum = new SClass("Creation" + sModel.getName + "Sum", PackageNames.creationPkgName)
val creatorSync = new SClass("Creation" + sModel.getName + "Sync", PackageNames.creationPkgName) val creatorSync = new SClass("Creation" + sModel.getName + "Sync", PackageNames.creationPkgName)
val creatorInterface = new SClass("ICreation" + sModel.getName, PackageNames.creationPkgName, SClassType.normalTrait) val creatorInterface = new SClass("ICreation" + sModel.getName, PackageNames.creationPkgName, SClassType.normalTrait)
val loader = new SClass("Loader" + sModel.getName, PackageNames.creationPkgName)
creatorSum.addParent(creatorInterface) creatorSum.addParent(creatorInterface)
creatorSync.addParent(creatorInterface) creatorSync.addParent(creatorInterface)
val loader = new SClass("Loader" + sModel.getName, PackageNames.creationPkgName)
val loadEcore = new SMethod( val loadEcore = new SMethod(
name = "loadEcore", name = "loadEcore",
...@@ -108,13 +109,14 @@ class SumModelReadingVisitor(config: GeneratorConfig) extends SModelVisitor { ...@@ -108,13 +109,14 @@ class SumModelReadingVisitor(config: GeneratorConfig) extends SModelVisitor {
overrides = true) overrides = true)
creatorSync.addMethod(methodSync) creatorSync.addMethod(methodSync)
var s = c.getAttributeConstructorParameters.map(m => s"""obj.eGet(obj.eClass().getEStructuralFeature("${m.getName}"))${if (m.getTypeName == "String") ".toString()" else s".asInstanceOf[${m.getTypeName}]"} """).mkString(", ") var types = c.getAttributeConstructorParameters.map(m => m.getType)
var s = c.getAttributeConstructorParameters.map(m => s"""obj.eGet(obj.eClass().getEStructuralFeature("${m.getName}"))${if (m.getTypeName == "String") ".toString()" else s".asInstanceOf[${m.getTypeName}${if(m.getType.isInstanceOf[SEnum]) ".Value" else ""}]"} """).mkString(", ")
if (s.isEmpty()) { if (s.isEmpty()) {
s = "obj" s = "obj"
} else { } else {
s = s + ", obj" s = s + ", obj"
} }
createObjImpl = createObjImpl :+ SMethodStatement(content = s"""case "${c.getName}" => creator.create${c.getName}(${s})""") createObjImpl = createObjImpl :+ SMethodStatement(content = s"""case "${c.getName}" => creator.create${c.getName}(${s})""", types.toSet)
}) })
sModel.getRelationalCompartments.foreach(r => { sModel.getRelationalCompartments.foreach(r => {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment