From dd1ed1913b0074f2851519284b3f0972ab5dd7af Mon Sep 17 00:00:00 2001 From: Chrissi <christopher@hbsc-werner.de> Date: Tue, 4 Jun 2019 15:04:16 +0200 Subject: [PATCH] add initialize function for instance generation + add functions to get source and target from relational compartment --- .../generator/sync/InstanceCombiGenerator.scala | 4 ++-- .../RelationCompartmentGeneratingVisitor.scala | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/scala/org/rosi_project/model_sync/generator/sync/InstanceCombiGenerator.scala b/src/main/scala/org/rosi_project/model_sync/generator/sync/InstanceCombiGenerator.scala index 4cefc3e..a631992 100644 --- a/src/main/scala/org/rosi_project/model_sync/generator/sync/InstanceCombiGenerator.scala +++ b/src/main/scala/org/rosi_project/model_sync/generator/sync/InstanceCombiGenerator.scala @@ -48,7 +48,7 @@ class InstanceCombiGenerator(val clsins: ClassAndInstance) extends SModelVisitor val realRc = rc.asInstanceOf[SRelationalCompartmentClass] //println(" AN: " + att.getName + " l1: " + l.usedType.getName + " l2: " + lnow.usedType.getName + " RC: " + realRc.connectedRef.getName + " SN: " + realRc.sClass.getName + " TN: " + realRc.tClass.getName) if (realRc.connectedRef.getName == att.getName && l.usedType.proofHierarchicalEquality(realRc.sClass) && lnow.usedType.proofHierarchicalEquality(realRc.tClass)) { - val s = s"new ${realRc.getName}(${l.getName()}, ${lnow.getName()})" + val s = s"(new ${realRc.getName}(${l.getName()}, ${lnow.getName()})).initialize()" generationLines = generationLines :+ new InstanceLine(0, null, realRc, s) } }) @@ -64,7 +64,7 @@ class InstanceCombiGenerator(val clsins: ClassAndInstance) extends SModelVisitor val realRc = rc.asInstanceOf[SRelationalCompartmentClass] //println(" AN: " + att.getName + " l1: " + l.usedType.getName + " l2: " + lnow.usedType.getName + " RC: " + realRc.connectedRef.getName + " SN: " + realRc.sClass.getName + " TN: " + realRc.tClass.getName) if (realRc.connectedRef.getName == att.getName && l.usedType.proofHierarchicalEquality(realRc.sClass) && lnow.usedType.proofHierarchicalEquality(realRc.tClass)) { - val s = s"new ${realRc.getName}(${l.getName()}, ${lnow.getName()})" + val s = s"(new ${realRc.getName}(${l.getName()}, ${lnow.getName()})).initialize()" generationLines = generationLines :+ new InstanceLine(0, null, realRc, s) } }) diff --git a/src/main/scala/org/rosi_project/model_sync/generator/sync/RelationCompartmentGeneratingVisitor.scala b/src/main/scala/org/rosi_project/model_sync/generator/sync/RelationCompartmentGeneratingVisitor.scala index 7349415..c4bdc7d 100644 --- a/src/main/scala/org/rosi_project/model_sync/generator/sync/RelationCompartmentGeneratingVisitor.scala +++ b/src/main/scala/org/rosi_project/model_sync/generator/sync/RelationCompartmentGeneratingVisitor.scala @@ -111,13 +111,27 @@ class RelationCompartmentGeneratingVisitor extends SModelVisitor { result = PredefTypes.Unit, params = Seq.empty, implementation = impl, - true)) + overrides = true)) newClass.addMethod(new SMethod( name = "toString", result = PredefTypes.String, params = Seq.empty, implementation = Seq(SMethodStatement(s""" "[$className " + source + ", " + target + "]" """)), overrides = true)) + + newClass.addMethod(new SMethod ( + name = "getSourceIns", + result = cls, + params = Seq.empty, + implementation = Seq(SMethodStatement(s"return sInstance")), + overrides = false)) + + newClass.addMethod(new SMethod ( + name = "getTargetIns", + result = attType, + params = Seq.empty, + implementation = Seq(SMethodStatement(s"return tInstance")), + overrides = false)) newClasses = newClasses :+ newClass } -- GitLab