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

Add final stuff for SUM EMF Load models

parent 21e4a7d2
No related branches found
No related tags found
No related merge requests found
Showing
with 187 additions and 141 deletions
...@@ -7,7 +7,7 @@ import org.rosi_project.model_sync.generator.support.Assert ...@@ -7,7 +7,7 @@ import org.rosi_project.model_sync.generator.support.Assert
* *
* @author Christopher Werner * @author Christopher Werner
*/ */
class ComplexSModel(name: String, sourceName: String) extends SModel(name, sourceName) { class ComplexSModel(name: String, sourceName: String, nsUri: String) extends SModel(name, sourceName, nsUri) {
private var modelClasses: Set[SClass] = Set.empty private var modelClasses: Set[SClass] = Set.empty
private var providerClasses: Set[SClass] = Set.empty private var providerClasses: Set[SClass] = Set.empty
......
...@@ -5,7 +5,10 @@ package org.rosi_project.model_sync.generator.acr_model ...@@ -5,7 +5,10 @@ package org.rosi_project.model_sync.generator.acr_model
* *
* @author Rico Bergmann * @author Rico Bergmann
*/ */
abstract class SModel(private val name: String, private val sourceName: String) extends SModelElement { abstract class SModel(private val name: String, private val sourceName: String, private val nsUri: String) extends SModelElement {
/** Get NsURI from the model. */
def getNsURI: String = nsUri
/** Get source name from the model. */ /** Get source name from the model. */
def getSourceName: String = sourceName def getSourceName: String = sourceName
......
...@@ -6,7 +6,7 @@ import org.rosi_project.model_sync.generator.support.Assert ...@@ -6,7 +6,7 @@ import org.rosi_project.model_sync.generator.support.Assert
* *
* @author Rico Bergmann * @author Rico Bergmann
*/ */
class SimpleSModel(name: String, sourceName: String) extends SModel(name, sourceName) { class SimpleSModel(name: String, sourceName: String, nsUri: String) extends SModel(name, sourceName, nsUri) {
private var sClasses: Set[SClass] = Set.empty private var sClasses: Set[SClass] = Set.empty
private var sEnums: Set[SEnum] = Set.empty private var sEnums: Set[SEnum] = Set.empty
......
...@@ -11,6 +11,15 @@ import org.rosi_project.model_sync.generator.acr_model.SType ...@@ -11,6 +11,15 @@ import org.rosi_project.model_sync.generator.acr_model.SType
*/ */
object PredefEcoreTypes { object PredefEcoreTypes {
/** `org.eclipse.emf.common.util.URI` */
val URI = SType("URI", "org.eclipse.emf.common.util")
/** `org.eclipse.emf.ecore.resource.Resource` */
val Resource = SType("Resource", "org.eclipse.emf.ecore.resource")
/** `org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl` */
val XMIResourceFactoryImpl = SType("XMIResourceFactoryImpl", "org.eclipse.emf.ecore.xmi.impl")
/** `org.eclipse.emf.ecore.EObject` */ /** `org.eclipse.emf.ecore.EObject` */
val EcoreObject = SType("EObject", "org.eclipse.emf.ecore") val EcoreObject = SType("EObject", "org.eclipse.emf.ecore")
...@@ -19,4 +28,6 @@ object PredefEcoreTypes { ...@@ -19,4 +28,6 @@ object PredefEcoreTypes {
/** `org.eclipse.emf.ecore.EOperation` */ /** `org.eclipse.emf.ecore.EOperation` */
val EcoreOperation = SType("EOperation", "org.eclipse.emf.ecore") val EcoreOperation = SType("EOperation", "org.eclipse.emf.ecore")
val ResourceSetImpl = SType("ResourceSetImpl", "org.eclipse.emf.ecore.resource.impl")
} }
\ No newline at end of file
...@@ -11,6 +11,9 @@ import org.rosi_project.model_sync.generator.acr_model.{GenericSType, SType, STy ...@@ -11,6 +11,9 @@ import org.rosi_project.model_sync.generator.acr_model.{GenericSType, SType, STy
*/ */
object PredefTypes { object PredefTypes {
/** `Convert Java list to Scala listApp` */
val ScalaConverter = SType("_", "scala.collection.JavaConverters")
/** `App` */ /** `App` */
val App = SType("App") val App = SType("App")
......
...@@ -17,7 +17,8 @@ class SModelGenerator extends Converter[EPackage, SModel] { ...@@ -17,7 +17,8 @@ class SModelGenerator extends Converter[EPackage, SModel] {
override def convert(source: EPackage, sourceName: String): SModel = { override def convert(source: EPackage, sourceName: String): SModel = {
//val packageName = if (source.getName != null) source.getName else "" //val packageName = if (source.getName != null) source.getName else ""
var contents = source.eAllContents().asScala var contents = source.eAllContents().asScala
val model = new ComplexSModel(source.getName, sourceName) val model = new ComplexSModel(source.getName, sourceName, source.getNsURI)
println("... Converting ecore model") println("... Converting ecore model")
println("First run creates all classes, important for abstract and interface relations") println("First run creates all classes, important for abstract and interface relations")
......
...@@ -36,7 +36,7 @@ object QueryMethods { ...@@ -36,7 +36,7 @@ object QueryMethods {
result = PredefTypes.Object, result = PredefTypes.Object,
params = Seq.empty, params = Seq.empty,
implementation = Seq(SMethodStatement(content = s"return new $helper${nat.sumSource.getName}(" + implementation = Seq(SMethodStatement(content = s"return new $helper${nat.sumSource.getName}(" +
s"${nat.sumSource.getAllConstructorParameters.map(HelperFunctions.classEmptyConstructorParameterCreation(_)).mkString(", ")})", usedTypes = Set.empty)), s"${nat.sumSource.getAllConstructorParameters.map(HelperFunctions.classEmptyConstructorParameterCreation(_)).mkString(", ")})")),
true) true)
method.setVisibility(MethodVisibility.protectedVis) method.setVisibility(MethodVisibility.protectedVis)
method method
...@@ -50,13 +50,13 @@ object QueryMethods { ...@@ -50,13 +50,13 @@ object QueryMethods {
name = "getCreationObject", name = "getCreationObject",
result = PredefTypes.Object, result = PredefTypes.Object,
params = Seq.empty, params = Seq.empty,
implementation = Seq(SMethodStatement(content = "return", usedTypes = Set.empty)), implementation = Seq(SMethodStatement(content = "return")),
true) true)
var statements: Seq[SMethodStatement] = Seq.empty var statements: Seq[SMethodStatement] = Seq.empty
if (ref.sumSource.connectedRef.hasOpposite) { if (ref.sumSource.connectedRef.hasOpposite) {
statements = Seq(SMethodStatement(content = s"target.set${ref.sumSource.connectedRef.oppositeRef.getName.capitalize}Intern(this)", usedTypes = Set.empty)) statements = Seq(SMethodStatement(content = s"target.set${ref.sumSource.connectedRef.oppositeRef.getName.capitalize}Intern(this)"))
} }
statements = statements ++ Seq(SMethodStatement(content = s"source.set${ref.sumSource.connectedRef.getName.capitalize}Intern(this)", usedTypes = Set.empty), statements = statements ++ Seq(SMethodStatement(content = s"source.set${ref.sumSource.connectedRef.getName.capitalize}Intern(this)"),
SMethodStatement(content = s"val sp: ${ref.viewSource.sumSource.getName} = source.player.right.get.asInstanceOf[${ref.viewSource.sumSource.getName}]", SMethodStatement(content = s"val sp: ${ref.viewSource.sumSource.getName} = source.player.right.get.asInstanceOf[${ref.viewSource.sumSource.getName}]",
usedTypes = Set(ref.viewSource.sumSource)), usedTypes = Set(ref.viewSource.sumSource)),
SMethodStatement(content = s"val tp: ${ref.viewTarget.sumSource.getName} = target.player.right.get.asInstanceOf[${ref.viewTarget.sumSource.getName}]", SMethodStatement(content = s"val tp: ${ref.viewTarget.sumSource.getName} = target.player.right.get.asInstanceOf[${ref.viewTarget.sumSource.getName}]",
...@@ -79,7 +79,7 @@ object QueryMethods { ...@@ -79,7 +79,7 @@ object QueryMethods {
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = Seq(SMethodParameter(struc.getName.toLowerCase(), struc.getTypeElement), SMethodParameter("check", PredefRsumTypes.CHECKING_OPTION_STYPE)), params = Seq(SMethodParameter(struc.getName.toLowerCase(), struc.getTypeElement), SMethodParameter("check", PredefRsumTypes.CHECKING_OPTION_STYPE)),
implementation = Seq(SMethodStatement(content = s"+this set${struc.getName.firstLetterToUpperCase}(${struc.getName.toLowerCase()})", usedTypes = Set(struc.getTypeElement)), implementation = Seq(SMethodStatement(content = s"+this set${struc.getName.firstLetterToUpperCase}(${struc.getName.toLowerCase()})", usedTypes = Set(struc.getTypeElement)),
SMethodStatement(content = s"""connected.addAttributeFilter("${struc.getName}", ${struc.getName.toLowerCase()}.toString(), check)""", usedTypes = Set.empty))) SMethodStatement(content = s"""connected.addAttributeFilter("${struc.getName}", ${struc.getName.toLowerCase()}.toString(), check)""")))
} }
def createAllReferenceLinks(refClass: SInnerViewRelationalClass): Unit = { def createAllReferenceLinks(refClass: SInnerViewRelationalClass): Unit = {
...@@ -112,14 +112,14 @@ object QueryMethods { ...@@ -112,14 +112,14 @@ object QueryMethods {
name = s"remove${realRef.getName.capitalize}Intern", name = s"remove${realRef.getName.capitalize}Intern",
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = Seq(SMethodParameter("v", refClass)), //TODO: remove this then each remove internal method has different input parameters params = Seq(SMethodParameter("v", refClass)), //TODO: remove this then each remove internal method has different input parameters
implementation = Seq(SMethodStatement(content = s"${realRef.getName} = null", usedTypes = Set.empty))) implementation = Seq(SMethodStatement(content = s"${realRef.getName} = null")))
removeMethodInternal.setVisibility(MethodVisibility.privateExternalClass) removeMethodInternal.setVisibility(MethodVisibility.privateExternalClass)
sourceClass.addMethod(removeMethodInternal) sourceClass.addMethod(removeMethodInternal)
val setMethodInternal = new SMethod( val setMethodInternal = new SMethod(
name = s"set${realRef.getName.capitalize}Intern", name = s"set${realRef.getName.capitalize}Intern",
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = Seq(SMethodParameter("v", refClass)), params = Seq(SMethodParameter("v", refClass)),
implementation = Seq(SMethodStatement(content = s"${realRef.getName} = v", usedTypes = Set.empty))) implementation = Seq(SMethodStatement(content = s"${realRef.getName} = v")))
setMethodInternal.setVisibility(MethodVisibility.privateExternalClass) setMethodInternal.setVisibility(MethodVisibility.privateExternalClass)
sourceClass.addMethod(setMethodInternal) sourceClass.addMethod(setMethodInternal)
//external variables //external variables
...@@ -127,19 +127,19 @@ object QueryMethods { ...@@ -127,19 +127,19 @@ object QueryMethods {
name = s"get${realRef.getName.capitalize}", name = s"get${realRef.getName.capitalize}",
result = targetClass, result = targetClass,
params = Seq.empty, params = Seq.empty,
implementation = Seq(SMethodStatement(content = s"return ${realRef.getName}.${getStatement}()", usedTypes = Set.empty)))) implementation = Seq(SMethodStatement(content = s"return ${realRef.getName}.${getStatement}()"))))
sourceClass.addMethod(new SMethod( sourceClass.addMethod(new SMethod(
name = s"set${realRef.getName.capitalize}", name = s"set${realRef.getName.capitalize}",
result = PredefTypes.Boolean, result = PredefTypes.Boolean,
params = Seq(SMethodParameter("v", targetClass)), params = Seq(SMethodParameter("v", targetClass)),
implementation = Seq(SMethodStatement(content = "if (v == null) return false", usedTypes = Set.empty), implementation = Seq(SMethodStatement(content = "if (v == null) return false"),
SMethodStatement(content = s"if (!containsRole(v.asInstanceOf[${PredefRsumTypes.AQUERY_VIEW_ROLE_STYPE.getName}])) return false", usedTypes = Set.empty), SMethodStatement(content = s"if (!containsRole(v.asInstanceOf[${PredefRsumTypes.AQUERY_VIEW_ROLE_STYPE.getName}])) return false"),
SMethodStatement(content = s"if (${realRef.getName} != null) {", usedTypes = Set.empty), SMethodStatement(content = s"if (${realRef.getName} != null) {"),
SMethodStatement(content = s"if (${realRef.getName}.${getStatement}() == v) return false", usedTypes = Set.empty), SMethodStatement(content = s"if (${realRef.getName}.${getStatement}() == v) return false"),
SMethodStatement(content = s"${realRef.getName}.deleteElement()", usedTypes = Set.empty), SMethodStatement(content = s"${realRef.getName}.deleteElement()"),
SMethodStatement(content = "}", usedTypes = Set.empty), SMethodStatement(content = "}"),
SMethodStatement(content = s"new ${refClass.getName}${thisStatement}", usedTypes = Set.empty), SMethodStatement(content = s"new ${refClass.getName}${thisStatement}"),
SMethodStatement(content = "return true", usedTypes = Set.empty)))) SMethodStatement(content = "return true"))))
} else { } else {
//add delete role for attributes //add delete role for attributes
sourceClass.getMethods.foreach(m => { sourceClass.getMethods.foreach(m => {
...@@ -156,14 +156,14 @@ object QueryMethods { ...@@ -156,14 +156,14 @@ object QueryMethods {
name = s"remove${realRef.getName.capitalize}Intern", name = s"remove${realRef.getName.capitalize}Intern",
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = Seq(SMethodParameter("v", refClass)), params = Seq(SMethodParameter("v", refClass)),
implementation = Seq(SMethodStatement(content = s"${realRef.getName} -= v", usedTypes = Set.empty))) implementation = Seq(SMethodStatement(content = s"${realRef.getName} -= v")))
removeMethodInternal.setVisibility(MethodVisibility.privateExternalClass) removeMethodInternal.setVisibility(MethodVisibility.privateExternalClass)
sourceClass.addMethod(removeMethodInternal) sourceClass.addMethod(removeMethodInternal)
val setMethodInternal = new SMethod( val setMethodInternal = new SMethod(
name = s"set${realRef.getName.capitalize}Intern", name = s"set${realRef.getName.capitalize}Intern",
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = Seq(SMethodParameter("v", refClass)), params = Seq(SMethodParameter("v", refClass)),
implementation = Seq(SMethodStatement(content = s"${realRef.getName} += v", usedTypes = Set.empty))) implementation = Seq(SMethodStatement(content = s"${realRef.getName} += v")))
setMethodInternal.setVisibility(MethodVisibility.privateExternalClass) setMethodInternal.setVisibility(MethodVisibility.privateExternalClass)
sourceClass.addMethod(setMethodInternal) sourceClass.addMethod(setMethodInternal)
//external variables //external variables
...@@ -171,32 +171,32 @@ object QueryMethods { ...@@ -171,32 +171,32 @@ object QueryMethods {
name = s"get${realRef.getName.capitalize}", name = s"get${realRef.getName.capitalize}",
result = SSet(targetClass), result = SSet(targetClass),
params = Seq.empty, params = Seq.empty,
implementation = Seq(SMethodStatement(content = s"var vs: Set[${targetClass.getDeepName}] = Set.empty", usedTypes = Set.empty), implementation = Seq(SMethodStatement(content = s"var vs: Set[${targetClass.getDeepName}] = Set.empty"),
SMethodStatement(content = s"${realRef.getName}.foreach{ v => vs += v.${getStatement}()}", usedTypes = Set.empty), SMethodStatement(content = s"${realRef.getName}.foreach{ v => vs += v.${getStatement}()}"),
SMethodStatement(content = "return vs", usedTypes = Set.empty)))) SMethodStatement(content = "return vs"))))
sourceClass.addMethod(new SMethod( sourceClass.addMethod(new SMethod(
name = s"has${realRef.getName.capitalize}", name = s"has${realRef.getName.capitalize}",
result = PredefTypes.Boolean, result = PredefTypes.Boolean,
params = Seq(SMethodParameter("v", targetClass)), params = Seq(SMethodParameter("v", targetClass)),
implementation = Seq(SMethodStatement(content = s"return get${realRef.getName.capitalize}.contains(v)", usedTypes = Set.empty)))) implementation = Seq(SMethodStatement(content = s"return get${realRef.getName.capitalize}.contains(v)"))))
sourceClass.addMethod(new SMethod( sourceClass.addMethod(new SMethod(
name = s"add${realRef.getName.capitalize}", name = s"add${realRef.getName.capitalize}",
result = PredefTypes.Boolean, result = PredefTypes.Boolean,
params = Seq(SMethodParameter("v", targetClass)), params = Seq(SMethodParameter("v", targetClass)),
implementation = Seq(SMethodStatement(content = s"if (has${realRef.getName.capitalize}(v) || !containsRole(v.asInstanceOf[${PredefRsumTypes.AQUERY_VIEW_ROLE_STYPE.getName}])) return false", usedTypes = Set.empty), implementation = Seq(SMethodStatement(content = s"if (has${realRef.getName.capitalize}(v) || !containsRole(v.asInstanceOf[${PredefRsumTypes.AQUERY_VIEW_ROLE_STYPE.getName}])) return false"),
SMethodStatement(content = s"new ${refClass.getName}${thisStatement}", usedTypes = Set.empty), SMethodStatement(content = s"new ${refClass.getName}${thisStatement}"),
SMethodStatement(content = "return true", usedTypes = Set.empty)))) SMethodStatement(content = "return true"))))
sourceClass.addMethod(new SMethod( sourceClass.addMethod(new SMethod(
name = s"remove${realRef.getName.capitalize}", name = s"remove${realRef.getName.capitalize}",
result = PredefTypes.Boolean, result = PredefTypes.Boolean,
params = Seq(SMethodParameter("v", targetClass)), params = Seq(SMethodParameter("v", targetClass)),
implementation = Seq(SMethodStatement(content = s"if (!has${realRef.getName.capitalize}(v)) return false", usedTypes = Set.empty), implementation = Seq(SMethodStatement(content = s"if (!has${realRef.getName.capitalize}(v)) return false"),
SMethodStatement(content = s"${realRef.getName}.foreach{ h =>", usedTypes = Set.empty), SMethodStatement(content = s"${realRef.getName}.foreach{ h =>"),
SMethodStatement(content = s"if (h.${getStatement}() == v) {", usedTypes = Set.empty), SMethodStatement(content = s"if (h.${getStatement}() == v) {"),
SMethodStatement(content = "h.deleteElement()", usedTypes = Set.empty), SMethodStatement(content = "h.deleteElement()"),
SMethodStatement(content = "return true", usedTypes = Set.empty), SMethodStatement(content = "return true"),
SMethodStatement(content = "}}", usedTypes = Set.empty), SMethodStatement(content = "}}"),
SMethodStatement(content = "return true", usedTypes = Set.empty)))) SMethodStatement(content = "return true"))))
} }
} }
} }
\ No newline at end of file
...@@ -14,80 +14,109 @@ class SumModelReadingVisitor() extends SModelVisitor { ...@@ -14,80 +14,109 @@ class SumModelReadingVisitor() extends SModelVisitor {
override def visit(sModel: SModel): Unit = { override def visit(sModel: SModel): Unit = {
//println("++++++++++++++++++++++++++++++++++++++++++++++") //println("++++++++++++++++++++++++++++++++++++++++++++++")
val example = new SClass("Creation" + sModel.getName, PackageNames.creationPkgName) val creator = new SClass("Creation" + sModel.getName, PackageNames.creationPkgName)
example.augmentConstructor(SMethodStatement(content = s"var mapping: Map[EObject, Object] = Map.empty", usedTypes = Set(PredefEcoreTypes.EcoreObject))) val loader = new SClass("Loader" + sModel.getName, PackageNames.creationPkgName)
sModel.getAllClasses.filter(c => !c.isAbstract && !c.isInterface).foreach(c => { val loadEcore = new SMethod(
name = "loadEcore",
result = PredefEcoreTypes.EcoreObject,
params = Seq(SMethodParameter("pathMeta", PredefTypes.String), SMethodParameter("pathInstance", PredefTypes.String)),
implementation = Seq(
SMethodStatement(content = s"require(null != pathMeta && pathMeta.nonEmpty && null != pathInstance && pathInstance.nonEmpty)"),
SMethodStatement(content = s"val resourceSet = new ResourceSetImpl()", usedTypes = Set(PredefEcoreTypes.ResourceSetImpl)),
SMethodStatement(content = s"resourceSet.getResourceFactoryRegistry.getExtensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl())", usedTypes = Set(PredefEcoreTypes.XMIResourceFactoryImpl, PredefEcoreTypes.Resource)),
SMethodStatement(content = s"val ressourceMeta = resourceSet.getResource(URI.createFileURI(pathMeta), true)", usedTypes = Set(PredefEcoreTypes.URI)),
SMethodStatement(content = s"val packageMeta = ressourceMeta.getContents().get(0)"),
SMethodStatement(content = s"require(null != ressourceMeta)"),
SMethodStatement(content = s"require(!ressourceMeta.getContents.isEmpty)"),
SMethodStatement(content = s"""resourceSet.getPackageRegistry().put("${sModel.getNsURI}", packageMeta);"""),
SMethodStatement(content = s"val ressourceModel = resourceSet.getResource(URI.createURI(pathInstance), true);"),
SMethodStatement(content = s"return ressourceModel.getContents().get(0)")))
loader.addMethod(loadEcore)
val createModelInstance = new SMethod(
name = s"create${sModel.getName}Instance",
result = PredefTypes.Unit,
params = Seq(SMethodParameter("obj", PredefEcoreTypes.EcoreObject), SMethodParameter("creator", creator)),
implementation = Seq(
SMethodStatement(content = s"createObj(obj, creator)"),
SMethodStatement(content = s"obj.eAllContents().asScala.foreach(o => {", usedTypes = Set(PredefTypes.ScalaConverter)),
SMethodStatement(content = s"createObj(o, creator)"),
SMethodStatement(content = s"})"),
SMethodStatement(content = s"createRef(obj, creator)"),
SMethodStatement(content = s"obj.eAllContents().asScala.foreach(o => {"),
SMethodStatement(content = s"createRef(o, creator)"),
SMethodStatement(content = s"})")))
loader.addMethod(createModelInstance)
val createObj = new SMethod(
name = "createObj",
result = PredefTypes.Unit,
params = Seq(SMethodParameter("obj", PredefEcoreTypes.EcoreObject), SMethodParameter("creator", creator)),
implementation = Seq.empty)
var createObjImpl = Seq(SMethodStatement(content = s"var objName = obj.eClass.getName"),
SMethodStatement(content = s"objName match {"))
val createRef = new SMethod(
name = "createRef",
result = PredefTypes.Unit,
params = Seq(SMethodParameter("o1", PredefEcoreTypes.EcoreObject), SMethodParameter("creator", creator)),
implementation = Seq.empty)
var createRefImpl = Seq(SMethodStatement(content = s"o1.eClass().getEAllReferences.forEach(sf => {"),
SMethodStatement(content = s"val sfName = sf.getName"),
SMethodStatement(content = s"val o2 = o1.eGet(sf).asInstanceOf[EObject]"),
SMethodStatement(content = s"val o1Name = o1.eClass().getName"),
SMethodStatement(content = s"val o2Name = o2.eClass().getName"))
val metod = new SMethod( creator.augmentConstructor(SMethodStatement(content = s"var mapping: Map[EObject, Object] = Map.empty", usedTypes = Set(PredefEcoreTypes.EcoreObject)))
sModel.getModelClasses.filter(c => !c.isAbstract && !c.isInterface).foreach(c => {
val method = new SMethod(
name = s"create${c.getName}", name = s"create${c.getName}",
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = c.getAllConstructorParameters :+ SMethodParameter("id", PredefEcoreTypes.EcoreObject), params = c.getAttributeConstructorParameters :+ SMethodParameter("id", PredefEcoreTypes.EcoreObject),
implementation = Seq( implementation = Seq(
SMethodStatement(content = s"mapping += (id -> new ${c.getName}(name, Set.empty, Set.empty, null))", usedTypes = Set.empty))) SMethodStatement(content = s"mapping += (id -> new ${c.getName}(${c.getAttributeConstructorParameters.map(m => m.getName).mkString(", ")}))", usedTypes = Set(c))))
creator.addMethod(method)
var s = c.getAttributeConstructorParameters.map(m => s"""obj.eGet(obj.eClass().getEStructuralFeature("${m.getName}"))${if(m.getTypeName == "Boolean") ".asInstanceOf[Boolean]" else ".toString()"} """).mkString(", ")
if (s.isEmpty()) {
s = "obj"
} else {
s = s + ", obj"
}
createObjImpl = createObjImpl :+ SMethodStatement(content = s"""case "${c.getName}" => creator.create${c.getName}(${s})""")
}) })
sModel.getRelationalCompartments.foreach(r => { sModel.getRelationalCompartments.foreach(r => {
var rc = r.asInstanceOf[SRelationalCompartmentClass] var rc = r.asInstanceOf[SRelationalCompartmentClass]
val metod = new SMethod( val method = new SMethod(
name = s"create${r.getName}", name = s"create${r.getName}",
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = Seq(SMethodParameter("s", PredefEcoreTypes.EcoreObject), SMethodParameter("t", PredefEcoreTypes.EcoreObject)), params = Seq(SMethodParameter("s", PredefEcoreTypes.EcoreObject), SMethodParameter("t", PredefEcoreTypes.EcoreObject)),
implementation = Seq( implementation = Seq(
SMethodStatement(content = s"val s1 = mapping.get(s).get.asInstanceOf[${rc.sClass.getName}]"), SMethodStatement(content = s"val s1 = mapping.get(s).get.asInstanceOf[${rc.sClass.getName}]"),
SMethodStatement(content = s"val t1 = mapping.get(t).get.asInstanceOf[${rc.tClass.getName}]"), SMethodStatement(content = s"val t1 = mapping.get(t).get.asInstanceOf[${rc.tClass.getName}]"),
SMethodStatement(content = s"(new ${rc.getName}(s1, t1)).initialize()"))) SMethodStatement(content = s"(new ${rc.getName}(s1, t1)).initialize()", usedTypes = Set(rc, rc.sClass, rc.tClass))))
}) creator.addMethod(method)
//add values for instances createRefImpl = createRefImpl :+ SMethodStatement(content = s"""if (o1Name.contains("${rc.sClass.getName}") && sfName == "${rc.connectedRef.getName}" && o2Name.contains("${rc.tClass.getName}")) {""")
/*lines.foreach(l => { createRefImpl = createRefImpl :+ SMethodStatement(content = s"creator.create${rc.getName}(o1, o2)")
l.usedType.getAllConstructorParameters.foreach(cp => { createRefImpl = createRefImpl :+ SMethodStatement(content = "}")
if (!STypeRegistry.isDefaultType(cp.getType.getName)) {
val structs: Seq[EStructuralFeature] = l.obj.eClass().getEAllStructuralFeatures.asScala
structs.foreach(att => {
if (att.getName == cp.getName) {
val obj = l.obj.eGet(att)
if (obj.isInstanceOf[EObject]) {
lines.foreach(lnow => {
if (lnow.obj == obj.asInstanceOf[EObject]) {
//println("Found: " + lnow.counter) .filter(_.isInstanceOf[SRelationalCompartmentClass])
sModel.getRelationalCompartments.foreach(rc => {
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()})).initialize()"
generationLines = generationLines :+ new InstanceLine(0, null, realRc, s)
}
}) })
}
})
} else {
val listi: List[EObject] = EMFUtilForGenerator.getList(obj)
val liste = listi.asScala
liste.foreach(eo => {
lines.foreach(lnow => {
if (lnow.obj == eo) {
sModel.getRelationalCompartments.foreach(rc => {
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()})).initialize()"
generationLines = generationLines :+ new InstanceLine(0, null, realRc, s)
}
})
}
})
})
}
}
})
}
})
})*/
sModel.addModelClass(example) createObjImpl = createObjImpl :+ SMethodStatement(content = "case _ =>")
// pass createObjImpl = createObjImpl :+ SMethodStatement(content = "}")
createObj.implementation = createObjImpl
loader.addMethod(createObj)
createRefImpl = createRefImpl :+ SMethodStatement(content = "})")
createRef.implementation = createRefImpl
loader.addMethod(createRef)
//add the new classes as model classes
sModel.addModelClass(creator)
sModel.addModelClass(loader)
} }
override def visit(sClass: SClass): Unit = { override def visit(sClass: SClass): Unit = {
......
...@@ -41,12 +41,12 @@ object ViewMethods { ...@@ -41,12 +41,12 @@ object ViewMethods {
name = "getSource", name = "getSource",
result = ref.viewSource, result = ref.viewSource,
params = Seq.empty, params = Seq.empty,
implementation = Seq(SMethodStatement("source", usedTypes = Set.empty))) ++ implementation = Seq(SMethodStatement("source"))) ++
new SMethod( new SMethod(
name = "getTarget", name = "getTarget",
result = ref.viewTarget, result = ref.viewTarget,
params = Seq.empty, params = Seq.empty,
implementation = Seq(SMethodStatement("target", usedTypes = Set.empty)))) implementation = Seq(SMethodStatement("target"))))
} }
def getCreateNaturalRoleMethods(naturalRoles: Set[SInnerViewNaturalClass]): Seq[SMethod] = { def getCreateNaturalRoleMethods(naturalRoles: Set[SInnerViewNaturalClass]): Seq[SMethod] = {
...@@ -57,7 +57,7 @@ object ViewMethods { ...@@ -57,7 +57,7 @@ object ViewMethods {
name = s"create${nr.sumSource.getName}", name = s"create${nr.sumSource.getName}",
result = nr, result = nr,
params = nr.getAllConstructorParameters, params = nr.getAllConstructorParameters,
implementation = Seq(SMethodStatement(content = s"return new ${nr.getName}(${nr.getAllConstructorParameters.map(m => m.getName).mkString(", ")})", usedTypes = Set.empty))) implementation = Seq(SMethodStatement(content = s"return new ${nr.getName}(${nr.getAllConstructorParameters.map(m => m.getName).mkString(", ")})")))
methods = methods :+ method methods = methods :+ method
} }
}) })
...@@ -69,7 +69,7 @@ object ViewMethods { ...@@ -69,7 +69,7 @@ object ViewMethods {
name = "isRelational", name = "isRelational",
result = PredefTypes.Boolean, result = PredefTypes.Boolean,
params = Seq.empty, params = Seq.empty,
implementation = Seq(SMethodStatement(content = s"return ${relational}", usedTypes = Set.empty)), implementation = Seq(SMethodStatement(content = s"return ${relational}")),
true) true)
method.setVisibility(MethodVisibility.protectedVis) method.setVisibility(MethodVisibility.protectedVis)
method method
...@@ -89,7 +89,7 @@ object ViewMethods { ...@@ -89,7 +89,7 @@ object ViewMethods {
s"${jcls.other.getAllConstructorParameters.map(HelperFunctions.initialAttributeDoing(_, nat.getDeepStructuralFeatures)).mkString(", ")}))", usedTypes = Set(jcls.other, jcls.base))) s"${jcls.other.getAllConstructorParameters.map(HelperFunctions.initialAttributeDoing(_, nat.getDeepStructuralFeatures)).mkString(", ")}))", usedTypes = Set(jcls.other, jcls.base)))
} else { } else {
method.implementation = Seq(SMethodStatement(content = s"return new ${nat.sumSource.getName}(" + method.implementation = Seq(SMethodStatement(content = s"return new ${nat.sumSource.getName}(" +
s"${nat.sumSource.getAllConstructorParameters.map(HelperFunctions.initialAttributeDoing(_, nat.getDeepStructuralFeatures)).mkString(", ")})", usedTypes = Set.empty)) s"${nat.sumSource.getAllConstructorParameters.map(HelperFunctions.initialAttributeDoing(_, nat.getDeepStructuralFeatures)).mkString(", ")})"))
} }
method.setVisibility(MethodVisibility.protectedVis) method.setVisibility(MethodVisibility.protectedVis)
method method
...@@ -100,14 +100,14 @@ object ViewMethods { ...@@ -100,14 +100,14 @@ object ViewMethods {
name = "getCreationObject", name = "getCreationObject",
result = PredefTypes.Object, result = PredefTypes.Object,
params = Seq.empty, params = Seq.empty,
implementation = Seq(SMethodStatement(content = "return", usedTypes = Set.empty)), implementation = Seq(SMethodStatement(content = "return")),
true) true)
var statements: Seq[SMethodStatement] = Seq.empty var statements: Seq[SMethodStatement] = Seq.empty
if (ref.sumSource.connectedRef.hasOpposite && createOpposite) { if (ref.sumSource.connectedRef.hasOpposite && createOpposite) {
statements = Seq(SMethodStatement(content = s"target.set${ref.sumSource.connectedRef.oppositeRef.getName.capitalize}Intern(this)", usedTypes = Set.empty)) statements = Seq(SMethodStatement(content = s"target.set${ref.sumSource.connectedRef.oppositeRef.getName.capitalize}Intern(this)"))
} }
if (createNormal) { if (createNormal) {
statements = statements ++ SMethodStatement(content = s"source.set${ref.sumSource.connectedRef.getName.capitalize}Intern(this)", usedTypes = Set.empty) statements = statements ++ SMethodStatement(content = s"source.set${ref.sumSource.connectedRef.getName.capitalize}Intern(this)")
} }
statements = statements ++ Seq(SMethodStatement(content = s"""val sp: ${ref.sumSource.sClass.getName} = getPlayerOfType(source, "${ref.sumSource.sClass.getName}").asInstanceOf[${ref.sumSource.sClass.getName}]""", statements = statements ++ Seq(SMethodStatement(content = s"""val sp: ${ref.sumSource.sClass.getName} = getPlayerOfType(source, "${ref.sumSource.sClass.getName}").asInstanceOf[${ref.sumSource.sClass.getName}]""",
usedTypes = Set(ref.viewSource.sumSource)), usedTypes = Set(ref.viewSource.sumSource)),
...@@ -115,8 +115,7 @@ object ViewMethods { ...@@ -115,8 +115,7 @@ object ViewMethods {
usedTypes = Set(ref.viewTarget.sumSource)), usedTypes = Set(ref.viewTarget.sumSource)),
SMethodStatement(content = s"val v: ${ref.sumSource.getName} = new ${ref.sumSource.getName}(sp, tp)", SMethodStatement(content = s"val v: ${ref.sumSource.getName} = new ${ref.sumSource.getName}(sp, tp)",
usedTypes = Set(ref.sumSource)), usedTypes = Set(ref.sumSource)),
SMethodStatement(content = s"return v", SMethodStatement(content = s"return v"))
usedTypes = Set.empty))
method.implementation = statements method.implementation = statements
method.setVisibility(MethodVisibility.protectedVis) method.setVisibility(MethodVisibility.protectedVis)
method method
...@@ -136,7 +135,7 @@ object ViewMethods { ...@@ -136,7 +135,7 @@ object ViewMethods {
statements = statements :+ SMethodStatement(content = statement, usedTypes = Set(t)) statements = statements :+ SMethodStatement(content = statement, usedTypes = Set(t))
} }
}) })
statements = statements :+ SMethodStatement(content = "return null", usedTypes = Set.empty) statements = statements :+ SMethodStatement(content = "return null")
method.implementation = statements method.implementation = statements
method.setVisibility(MethodVisibility.protectedVis) method.setVisibility(MethodVisibility.protectedVis)
method method
...@@ -155,7 +154,7 @@ object ViewMethods { ...@@ -155,7 +154,7 @@ object ViewMethods {
s"${t.getName}(sourceRole.asInstanceOf[${t.viewSource.getName}], targetRole.asInstanceOf[${t.viewTarget.getName}])" s"${t.getName}(sourceRole.asInstanceOf[${t.viewSource.getName}], targetRole.asInstanceOf[${t.viewTarget.getName}])"
statements = statements :+ SMethodStatement(content = statement, usedTypes = Set(t)) statements = statements :+ SMethodStatement(content = statement, usedTypes = Set(t))
}) })
statements = statements :+ SMethodStatement(content = "return null", usedTypes = Set.empty) statements = statements :+ SMethodStatement(content = "return null")
method.implementation = statements method.implementation = statements
method.setVisibility(MethodVisibility.protectedVis) method.setVisibility(MethodVisibility.protectedVis)
method method
...@@ -204,7 +203,7 @@ object ViewMethods { ...@@ -204,7 +203,7 @@ object ViewMethods {
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = Seq(SMethodParameter(struc.getName.toLowerCase(), struc.getTypeElement)), params = Seq(SMethodParameter(struc.getName.toLowerCase(), struc.getTypeElement)),
implementation = Seq(SMethodStatement(content = s"+this set${struc.getName.firstLetterToUpperCase}(${struc.getName.toLowerCase()})", usedTypes = Set(struc.getTypeElement)), implementation = Seq(SMethodStatement(content = s"+this set${struc.getName.firstLetterToUpperCase}(${struc.getName.toLowerCase()})", usedTypes = Set(struc.getTypeElement)),
SMethodStatement(content = s"+this changeSomething()", usedTypes = Set.empty))) SMethodStatement(content = s"+this changeSomething()")))
} }
def createAllReferenceLinks(refClass: SInnerViewRelationalClass, createNormal: Boolean, createOpposite: Boolean): Unit = { def createAllReferenceLinks(refClass: SInnerViewRelationalClass, createNormal: Boolean, createOpposite: Boolean): Unit = {
...@@ -234,14 +233,14 @@ object ViewMethods { ...@@ -234,14 +233,14 @@ object ViewMethods {
name = s"remove${realRef.getName.capitalize}Intern", name = s"remove${realRef.getName.capitalize}Intern",
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = Seq(SMethodParameter("v", refClass)), //TODO: remove this then each remove internal method has different input parameters params = Seq(SMethodParameter("v", refClass)), //TODO: remove this then each remove internal method has different input parameters
implementation = Seq(SMethodStatement(content = s"${realRef.getName} = null", usedTypes = Set.empty))) implementation = Seq(SMethodStatement(content = s"${realRef.getName} = null")))
removeMethodInternal.setVisibility(MethodVisibility.privateExternalClass) removeMethodInternal.setVisibility(MethodVisibility.privateExternalClass)
sourceClass.addMethod(removeMethodInternal) sourceClass.addMethod(removeMethodInternal)
val setMethodInternal = new SMethod( val setMethodInternal = new SMethod(
name = s"set${realRef.getName.capitalize}Intern", name = s"set${realRef.getName.capitalize}Intern",
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = Seq(SMethodParameter("v", refClass)), params = Seq(SMethodParameter("v", refClass)),
implementation = Seq(SMethodStatement(content = s"${realRef.getName} = v", usedTypes = Set.empty))) implementation = Seq(SMethodStatement(content = s"${realRef.getName} = v")))
setMethodInternal.setVisibility(MethodVisibility.privateExternalClass) setMethodInternal.setVisibility(MethodVisibility.privateExternalClass)
sourceClass.addMethod(setMethodInternal) sourceClass.addMethod(setMethodInternal)
//external variables //external variables
...@@ -249,19 +248,19 @@ object ViewMethods { ...@@ -249,19 +248,19 @@ object ViewMethods {
name = s"get${realRef.getName.capitalize}", name = s"get${realRef.getName.capitalize}",
result = targetClass, result = targetClass,
params = Seq.empty, params = Seq.empty,
implementation = Seq(SMethodStatement(content = s"return ${realRef.getName}.${getStatement}()", usedTypes = Set.empty)))) implementation = Seq(SMethodStatement(content = s"return ${realRef.getName}.${getStatement}()"))))
sourceClass.addMethod(new SMethod( sourceClass.addMethod(new SMethod(
name = s"set${realRef.getName.capitalize}", name = s"set${realRef.getName.capitalize}",
result = PredefTypes.Boolean, result = PredefTypes.Boolean,
params = Seq(SMethodParameter("v", targetClass)), params = Seq(SMethodParameter("v", targetClass)),
implementation = Seq(SMethodStatement(content = "if (v == null) return false", usedTypes = Set.empty), implementation = Seq(SMethodStatement(content = "if (v == null) return false"),
SMethodStatement(content = "if (!containsRole(v.asInstanceOf[AViewRole])) return false", usedTypes = Set.empty), SMethodStatement(content = "if (!containsRole(v.asInstanceOf[AViewRole])) return false"),
SMethodStatement(content = s"if (${realRef.getName} != null) {", usedTypes = Set.empty), SMethodStatement(content = s"if (${realRef.getName} != null) {"),
SMethodStatement(content = s"if (${realRef.getName}.${getStatement}() == v) return false", usedTypes = Set.empty), SMethodStatement(content = s"if (${realRef.getName}.${getStatement}() == v) return false"),
SMethodStatement(content = s"${realRef.getName}.deleteElement()", usedTypes = Set.empty), SMethodStatement(content = s"${realRef.getName}.deleteElement()"),
SMethodStatement(content = "}", usedTypes = Set.empty), SMethodStatement(content = "}"),
SMethodStatement(content = s"new ${refClass.getName}${thisStatement}", usedTypes = Set.empty), SMethodStatement(content = s"new ${refClass.getName}${thisStatement}"),
SMethodStatement(content = "return true", usedTypes = Set.empty)))) SMethodStatement(content = "return true"))))
} else { } else {
//upper Bound = endless //upper Bound = endless
//variable settings //variable settings
...@@ -271,14 +270,14 @@ object ViewMethods { ...@@ -271,14 +270,14 @@ object ViewMethods {
name = s"remove${realRef.getName.capitalize}Intern", name = s"remove${realRef.getName.capitalize}Intern",
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = Seq(SMethodParameter("v", refClass)), params = Seq(SMethodParameter("v", refClass)),
implementation = Seq(SMethodStatement(content = s"${realRef.getName} -= v", usedTypes = Set.empty))) implementation = Seq(SMethodStatement(content = s"${realRef.getName} -= v")))
removeMethodInternal.setVisibility(MethodVisibility.privateExternalClass) removeMethodInternal.setVisibility(MethodVisibility.privateExternalClass)
sourceClass.addMethod(removeMethodInternal) sourceClass.addMethod(removeMethodInternal)
val setMethodInternal = new SMethod( val setMethodInternal = new SMethod(
name = s"set${realRef.getName.capitalize}Intern", name = s"set${realRef.getName.capitalize}Intern",
result = PredefTypes.Unit, result = PredefTypes.Unit,
params = Seq(SMethodParameter("v", refClass)), params = Seq(SMethodParameter("v", refClass)),
implementation = Seq(SMethodStatement(content = s"${realRef.getName} += v", usedTypes = Set.empty))) implementation = Seq(SMethodStatement(content = s"${realRef.getName} += v")))
setMethodInternal.setVisibility(MethodVisibility.privateExternalClass) setMethodInternal.setVisibility(MethodVisibility.privateExternalClass)
sourceClass.addMethod(setMethodInternal) sourceClass.addMethod(setMethodInternal)
//external variables //external variables
...@@ -286,32 +285,32 @@ object ViewMethods { ...@@ -286,32 +285,32 @@ object ViewMethods {
name = s"get${realRef.getName.capitalize}", name = s"get${realRef.getName.capitalize}",
result = SSet(targetClass), result = SSet(targetClass),
params = Seq.empty, params = Seq.empty,
implementation = Seq(SMethodStatement(content = s"var vs: Set[${targetClass.getDeepName}] = Set.empty", usedTypes = Set.empty), implementation = Seq(SMethodStatement(content = s"var vs: Set[${targetClass.getDeepName}] = Set.empty"),
SMethodStatement(content = s"${realRef.getName}.foreach{ v => vs += v.${getStatement}()}", usedTypes = Set.empty), SMethodStatement(content = s"${realRef.getName}.foreach{ v => vs += v.${getStatement}()}"),
SMethodStatement(content = "return vs", usedTypes = Set.empty)))) SMethodStatement(content = "return vs"))))
sourceClass.addMethod(new SMethod( sourceClass.addMethod(new SMethod(
name = s"has${realRef.getName.capitalize}", name = s"has${realRef.getName.capitalize}",
result = PredefTypes.Boolean, result = PredefTypes.Boolean,
params = Seq(SMethodParameter("v", targetClass)), params = Seq(SMethodParameter("v", targetClass)),
implementation = Seq(SMethodStatement(content = s"return get${realRef.getName.capitalize}.contains(v)", usedTypes = Set.empty)))) implementation = Seq(SMethodStatement(content = s"return get${realRef.getName.capitalize}.contains(v)"))))
sourceClass.addMethod(new SMethod( sourceClass.addMethod(new SMethod(
name = s"add${realRef.getName.capitalize}", name = s"add${realRef.getName.capitalize}",
result = PredefTypes.Boolean, result = PredefTypes.Boolean,
params = Seq(SMethodParameter("v", targetClass)), params = Seq(SMethodParameter("v", targetClass)),
implementation = Seq(SMethodStatement(content = s"if (has${realRef.getName.capitalize}(v) || !containsRole(v.asInstanceOf[AViewRole])) return false", usedTypes = Set.empty), implementation = Seq(SMethodStatement(content = s"if (has${realRef.getName.capitalize}(v) || !containsRole(v.asInstanceOf[AViewRole])) return false"),
SMethodStatement(content = s"new ${refClass.getName}${thisStatement}", usedTypes = Set.empty), SMethodStatement(content = s"new ${refClass.getName}${thisStatement}"),
SMethodStatement(content = "return true", usedTypes = Set.empty)))) SMethodStatement(content = "return true"))))
sourceClass.addMethod(new SMethod( sourceClass.addMethod(new SMethod(
name = s"remove${realRef.getName.capitalize}", name = s"remove${realRef.getName.capitalize}",
result = PredefTypes.Boolean, result = PredefTypes.Boolean,
params = Seq(SMethodParameter("v", targetClass)), params = Seq(SMethodParameter("v", targetClass)),
implementation = Seq(SMethodStatement(content = s"if (!has${realRef.getName.capitalize}(v)) return false", usedTypes = Set.empty), implementation = Seq(SMethodStatement(content = s"if (!has${realRef.getName.capitalize}(v)) return false"),
SMethodStatement(content = s"${realRef.getName}.foreach{ h =>", usedTypes = Set.empty), SMethodStatement(content = s"${realRef.getName}.foreach{ h =>"),
SMethodStatement(content = s"if (h.${getStatement}() == v) {", usedTypes = Set.empty), SMethodStatement(content = s"if (h.${getStatement}() == v) {"),
SMethodStatement(content = "h.deleteElement()", usedTypes = Set.empty), SMethodStatement(content = "h.deleteElement()"),
SMethodStatement(content = "return true", usedTypes = Set.empty), SMethodStatement(content = "return true"),
SMethodStatement(content = "}}", usedTypes = Set.empty), SMethodStatement(content = "}}"),
SMethodStatement(content = "return true", usedTypes = Set.empty)))) SMethodStatement(content = "return true"))))
} }
} }
} }
\ No newline at end of file
...@@ -13,8 +13,8 @@ object ApplicationTest extends App { ...@@ -13,8 +13,8 @@ object ApplicationTest extends App {
//runTestAML(Creation.rolesum) //runTestAML(Creation.rolesum)
//TTC Case examples //TTC Case examples
//runTTC2019(Creation.rolecomb) runTTC2019(Creation.rolecomb)
runTTC2019(Creation.rolesync) //runTTC2019(Creation.rolesync)
//runTTCLive2019(Creation.rolesync) //runTTCLive2019(Creation.rolesync)
//Run all tests //Run all tests
......
...@@ -8,7 +8,7 @@ import scala.collection.Seq ...@@ -8,7 +8,7 @@ import scala.collection.Seq
*/ */
object SModelFSWriterTest/* extends App */{ object SModelFSWriterTest/* extends App */{
val model = new SimpleSModel("Foo", "source") val model = new SimpleSModel("Foo", "source", "http.//test.test")
val stringType = SType("String") val stringType = SType("String")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment