From 082c98c06ecf9e92f74cc5c4e4dfc30742236378 Mon Sep 17 00:00:00 2001 From: Chrissi <christopher@hbsc-werner.de> Date: Wed, 16 Oct 2019 14:28:24 +0200 Subject: [PATCH] remove error with enums in loader classes --- .../generator/sync/SumModelReadingVisitor.scala | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/scala/org/rosi_project/model_sync/generator/sync/SumModelReadingVisitor.scala b/src/main/scala/org/rosi_project/model_sync/generator/sync/SumModelReadingVisitor.scala index 8884148..30b2294 100644 --- a/src/main/scala/org/rosi_project/model_sync/generator/sync/SumModelReadingVisitor.scala +++ b/src/main/scala/org/rosi_project/model_sync/generator/sync/SumModelReadingVisitor.scala @@ -20,9 +20,10 @@ class SumModelReadingVisitor(config: GeneratorConfig) extends SModelVisitor { val creatorSum = new SClass("Creation" + sModel.getName + "Sum", PackageNames.creationPkgName) val creatorSync = new SClass("Creation" + sModel.getName + "Sync", PackageNames.creationPkgName) val creatorInterface = new SClass("ICreation" + sModel.getName, PackageNames.creationPkgName, SClassType.normalTrait) + val loader = new SClass("Loader" + sModel.getName, PackageNames.creationPkgName) + creatorSum.addParent(creatorInterface) creatorSync.addParent(creatorInterface) - val loader = new SClass("Loader" + sModel.getName, PackageNames.creationPkgName) val loadEcore = new SMethod( name = "loadEcore", @@ -108,13 +109,14 @@ class SumModelReadingVisitor(config: GeneratorConfig) extends SModelVisitor { overrides = true) 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()) { s = "obj" } else { 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 => { -- GitLab