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

add new remove element from set in sync process

parent 52a69424
No related branches found
No related tags found
No related merge requests found
......@@ -5,7 +5,7 @@ import org.rosi_project.model_sync.generator.acr_model.types.PredefTypes
/** Add an element to a Set of elements.
*
* @author Rico Bergmann
* @author Christopher Werner
*/
class SSetterAdd(struc: SStructuralFeature, inner: STypedElement) extends SMethod(
name = s"add${struc.getName.firstLetterToUpperCase}",
......
package org.rosi_project.model_sync.generator.acr_model
import org.rosi_project.model_sync.generator.support.ExtendedString.stringToExtended
import org.rosi_project.model_sync.generator.acr_model.types.PredefTypes
/** Remove an element from a Set of elements.
*
* @author Christopher Werner
*/
class SSetterRemove(struc: SStructuralFeature, inner: STypedElement) extends SMethod(
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)))) {
}
\ No newline at end of file
......@@ -23,6 +23,8 @@ class GetterSetterGeneratingVisitor extends SModelVisitor {
if (attr.getTypeElement.isInstanceOf[GenericSequence]) {
val adder = new SSetterAdd(attr, attr.getTypeElement.asInstanceOf[GenericSequence].typeParam)
sClass.addMethod(adder)
val remover = new SSetterRemove(attr, attr.getTypeElement.asInstanceOf[GenericSequence].typeParam)
sClass.addMethod(remover)
}
})
......
......@@ -2,7 +2,8 @@ package org.rosi_project.model_sync.generator.sync
import org.rosi_project.model_sync.generator.acr_model._
/** Augments [[SClass SClasses]] with the necessary method calls to make it usable in a
/**
* Augments [[SClass SClasses]] with the necessary method calls to make it usable in a
* synchronization context.
*
* The following modifications are performed:
......@@ -42,7 +43,8 @@ class SyncEnhancingVisitor() extends SModelVisitor {
// pass
}
/** Tries to get the attribute's name from a setter method.
/**
* Tries to get the attribute's name from a setter method.
*
* A ''valid'' setter will have the following signature: `setXyz(x: T): Unit` (the parameter's
* name does not matter).
......@@ -61,6 +63,8 @@ class SyncEnhancingVisitor() extends SModelVisitor {
Option(attrName)
case SyncEnhancingVisitor.Adder(attrName) =>
Option(attrName)
case SyncEnhancingVisitor.Remover(attrName) =>
Option(attrName)
case _ =>
None
}
......@@ -69,10 +73,12 @@ class SyncEnhancingVisitor() extends SModelVisitor {
}
/** The companion contains some static values.
/**
* The companion contains some static values.
*/
object SyncEnhancingVisitor {
private val Setter = """set([A-Z][a-zA-z0-9]*)""".r
private val Adder = """add([A-Z][a-zA-z0-9]*)""".r
private val Remover = """remove([A-Z][a-zA-z0-9]*)""".r
private val PLAYER_SYNC_INIT = SMethodStatement("buildClass()")
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment