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 33d205575c074a9768d670fd377386c7402d7b27..55939bb94a99d76253b1aa0d467526ee3ef5ad5e 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 061a85c2a66d916c2ea69550fd42fe0aed6a81bb..f5b69db409963b419951c3770d925a6eec056edb 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 7a5c3d5f5243c942220593eb24e279207d908e2a..646fc799b93187c51a0fed1e7b3d3e960ab67006 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