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

add initialize function for instance generation

+ add functions to get source and target from relational compartment
parent ffbb17e9
No related branches found
No related tags found
No related merge requests found
...@@ -48,7 +48,7 @@ class InstanceCombiGenerator(val clsins: ClassAndInstance) extends SModelVisitor ...@@ -48,7 +48,7 @@ class InstanceCombiGenerator(val clsins: ClassAndInstance) extends SModelVisitor
val realRc = rc.asInstanceOf[SRelationalCompartmentClass] 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) //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)) { 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) generationLines = generationLines :+ new InstanceLine(0, null, realRc, s)
} }
}) })
...@@ -64,7 +64,7 @@ class InstanceCombiGenerator(val clsins: ClassAndInstance) extends SModelVisitor ...@@ -64,7 +64,7 @@ class InstanceCombiGenerator(val clsins: ClassAndInstance) extends SModelVisitor
val realRc = rc.asInstanceOf[SRelationalCompartmentClass] 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) //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)) { 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) generationLines = generationLines :+ new InstanceLine(0, null, realRc, s)
} }
}) })
......
...@@ -111,7 +111,7 @@ class RelationCompartmentGeneratingVisitor extends SModelVisitor { ...@@ -111,7 +111,7 @@ class RelationCompartmentGeneratingVisitor extends SModelVisitor {
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = Seq.empty, params = Seq.empty,
implementation = impl, implementation = impl,
true)) overrides = true))
newClass.addMethod(new SMethod( newClass.addMethod(new SMethod(
name = "toString", name = "toString",
result = PredefTypes.String, result = PredefTypes.String,
...@@ -119,6 +119,20 @@ class RelationCompartmentGeneratingVisitor extends SModelVisitor { ...@@ -119,6 +119,20 @@ class RelationCompartmentGeneratingVisitor extends SModelVisitor {
implementation = Seq(SMethodStatement(s""" "[$className " + source + ", " + target + "]" """)), implementation = Seq(SMethodStatement(s""" "[$className " + source + ", " + target + "]" """)),
overrides = true)) 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 newClasses = newClasses :+ newClass
} }
}) })
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment