From 2525b9b415c4a1df4206cdc9dd889f0e9d290896 Mon Sep 17 00:00:00 2001 From: Chrissi <christopher@hbsc-werner.de> Date: Tue, 9 Jul 2019 15:46:36 +0200 Subject: [PATCH] =?UTF-8?q?erweitern=20der=20Setter=20Methoden=20um=20die?= =?UTF-8?q?=20eingehenden=20Elemente=20zu=20pr=C3=BCfen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rosi_project/model_sync/generator/acr_model/SSetter.scala | 3 ++- .../model_sync/generator/acr_model/SSetterAdd.scala | 4 +++- .../model_sync/generator/acr_model/SSetterRemove.scala | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetter.scala b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetter.scala index 33d2055..55939bb 100644 --- a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetter.scala +++ b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetter.scala @@ -11,6 +11,7 @@ class SSetter(struc: SStructuralFeature) extends SMethod( name = s"set${struc.getName.firstLetterToUpperCase}", result = PredefTypes.Unit, params = Seq(SMethodParameter(struc.getName.head.toString, struc.getTypeElement)), - implementation = Seq(SMethodStatement(content = s"${struc.getName} = ${struc.getName.head}", usedTypes = Set(struc.getTypeElement)))) { + implementation = Seq(SMethodStatement(content = s"require(${struc.getName.head} != null)"), + SMethodStatement(content = s"${struc.getName} = ${struc.getName.head}", usedTypes = Set(struc.getTypeElement)))) { } diff --git a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterAdd.scala b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterAdd.scala index 061a85c..f5b69db 100644 --- a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterAdd.scala +++ b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterAdd.scala @@ -11,6 +11,8 @@ class SSetterAdd(struc: SStructuralFeature, inner: STypedElement) extends SMetho name = s"add${struc.getName.firstLetterToUpperCase}", result = PredefTypes.Unit, params = Seq(SMethodParameter(struc.getName.head.toString, inner)), - implementation = Seq(SMethodStatement(content = s"${struc.getName} += ${struc.getName.head}", usedTypes = Set(struc.getTypeElement)))) { + implementation = Seq(SMethodStatement(content = s"require(${struc.getName.head} != null)"), + SMethodStatement(content = s"require(!${struc.getName}.contains(${struc.getName.head}))"), + SMethodStatement(content = s"${struc.getName} += ${struc.getName.head}", usedTypes = Set(struc.getTypeElement)))) { } \ No newline at end of file diff --git a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterRemove.scala b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterRemove.scala index 7a5c3d5..646fc79 100644 --- a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterRemove.scala +++ b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterRemove.scala @@ -11,6 +11,8 @@ class SSetterRemove(struc: SStructuralFeature, inner: STypedElement) extends SMe name = s"remove${struc.getName.firstLetterToUpperCase}", result = PredefTypes.Unit, params = Seq(SMethodParameter(struc.getName.head.toString, inner)), - implementation = Seq(SMethodStatement(content = s"${struc.getName} -= ${struc.getName.head}", usedTypes = Set(struc.getTypeElement)))) { + implementation = Seq(SMethodStatement(content = s"require(${struc.getName.head} != null)"), + SMethodStatement(content = s"require(${struc.getName}.contains(${struc.getName.head}))"), + SMethodStatement(content = s"${struc.getName} -= ${struc.getName.head}", usedTypes = Set(struc.getTypeElement)))) { } \ No newline at end of file -- GitLab