diff --git a/solutions/RSync/src/main/scala/MainApp.scala b/solutions/RSync/src/main/scala/MainApp.scala index 8628f49d53676924cfd8bafeb16a7d7fece2f42f..884225261f3071171b14bf3d3c585d0bee818664 100644 --- a/solutions/RSync/src/main/scala/MainApp.scala +++ b/solutions/RSync/src/main/scala/MainApp.scala @@ -1,4 +1,4 @@ -import ttc2019.{CompleteTTCProcess, MetricMeasurement, TTCProcessConfiguration} +import ttc2019.{CompleteTTCProcess, MetricMeasurement, ProcessMode, TTCProcessConfiguration} import ttc2019.benchmark.{Benchmark, BenchmarkInfo, ReportingUtility} import scala.reflect.io.File @@ -12,11 +12,19 @@ object MainApp extends App { val Load = "Load" val Run = "Run" + var processMode = ProcessMode.BDT + if (args.length >= 1) { + args.apply(1) match { + case "bdt" => processMode = ProcessMode.BDT + case "bdd" => processMode = ProcessMode.BDD + case "bdt-u" => processMode = ProcessMode.BDTU + case "bdd-u" => processMode = ProcessMode.BDDU + } + } + private val modelPath = sys.env.get("ModelPath") private val benchmarkInfo = fetchBenchmarkInfo() - println() - if (modelPath.isEmpty) { sys.error("Expected model to convert in the ModelPath environment variable") } @@ -24,7 +32,7 @@ object MainApp extends App { modelPath.foreach(modelPath => { val ttModelFile = File(modelPath) val bddModelFile = buildBddModelFile(ttModelFile) - val processConfig = TTCProcessConfiguration(ttFileName = modelPath, bddFileName = bddModelFile.jfile.getCanonicalPath) + val processConfig = TTCProcessConfiguration(ttFileName = modelPath, bddFileName = bddModelFile.jfile.getCanonicalPath, processMode = processMode) val benchmarkingService: Benchmark = new Benchmark var benchmarkDuration: Long = -1 diff --git a/solutions/RSync/src/main/scala/ttc2019/CompleteTTCProcess.scala b/solutions/RSync/src/main/scala/ttc2019/CompleteTTCProcess.scala index 20cbcd2950212694a02839bc8714f1236367b460..a15e71b22827bca57f57b0ed2350061eeee148fc 100644 --- a/solutions/RSync/src/main/scala/ttc2019/CompleteTTCProcess.scala +++ b/solutions/RSync/src/main/scala/ttc2019/CompleteTTCProcess.scala @@ -33,16 +33,16 @@ object CompleteTTCProcess extends App { */ def initialize(processConfig: TTCProcessConfiguration): Unit = { val sync = true - bdt = false + bdt = processConfig.processMode == ProcessMode.BDT || processConfig.processMode == ProcessMode.BDTU loader = new TTCLoader validator = new Launcher if (sync) { ctts = new CreateTruthTableSync() if (bdt) { - integrate = BdtSyncIntegration + integrate = if (processConfig.processMode == ProcessMode.BDT) BdtSyncIntegration else BdtSyncIntegrationWithoutOrder writeOut = WriteSyncBdtOutput } else { - integrate = BddSyncIntegration + integrate = if (processConfig.processMode == ProcessMode.BDD) BddSyncIntegration else BddSyncIntegrationWithoutOrder writeOut = WriteSyncBddOutput } } else { diff --git a/solutions/RSync/src/main/scala/ttc2019/ProcessMode.scala b/solutions/RSync/src/main/scala/ttc2019/ProcessMode.scala new file mode 100644 index 0000000000000000000000000000000000000000..413540d838b02bb8c56676dd68397fab99effe8e --- /dev/null +++ b/solutions/RSync/src/main/scala/ttc2019/ProcessMode.scala @@ -0,0 +1,6 @@ +package ttc2019 + +object ProcessMode extends Enumeration { + type ProcessMode = Value + val BDT, BDTU, BDD, BDDU = Value +} diff --git a/solutions/RSync/src/main/scala/ttc2019/TTCProcessConfiguration.scala b/solutions/RSync/src/main/scala/ttc2019/TTCProcessConfiguration.scala index 66c955e0ec97f113f897079a6668ce4f1bfcb812..de2868c8a6146f43d338185cd8433ac374b4ea32 100644 --- a/solutions/RSync/src/main/scala/ttc2019/TTCProcessConfiguration.scala +++ b/solutions/RSync/src/main/scala/ttc2019/TTCProcessConfiguration.scala @@ -1,5 +1,7 @@ package ttc2019 +import ttc2019.ProcessMode.ProcessMode + /** The `ProcessConfiguration` contains all necessary information to setup an entire transformation * workflow as specified by the [[CompleteTTCProcess]]. * @@ -10,5 +12,5 @@ package ttc2019 * decision diagram should be stored * - `ttEcoreName` references the path to the truth table EMF model */ -case class TTCProcessConfiguration(ttFileName: String, bddFileName: String, ttEcoreName: String = "TT.ecore") +case class TTCProcessConfiguration(ttFileName: String, bddFileName: String, ttEcoreName: String = "TT.ecore", processMode: ProcessMode) diff --git a/solutions/RSyncBDD-Unordered/solution.ini b/solutions/RSyncBDD-Unordered/solution.ini new file mode 100644 index 0000000000000000000000000000000000000000..088595848f1cbb7cf9f23aa5ba7f7c58d1b83257 --- /dev/null +++ b/solutions/RSyncBDD-Unordered/solution.ini @@ -0,0 +1,6 @@ +[build] +default=cd ../RSync && sbt compile +skipTests=cd ../RSync && sbt compile + +[run] +cmd=cd ../RSync && sbt --error run bdd-u diff --git a/solutions/RSyncBDD/solution.ini b/solutions/RSyncBDD/solution.ini new file mode 100644 index 0000000000000000000000000000000000000000..c4ee03932dde1a82809804e89536b06b727f10d8 --- /dev/null +++ b/solutions/RSyncBDD/solution.ini @@ -0,0 +1,6 @@ +[build] +default=cd ../RSync && sbt compile +skipTests=cd ../RSync && sbt compile + +[run] +cmd=cd ../RSync && sbt --error run bdd diff --git a/solutions/RSyncBDT-Unordered/solution.ini b/solutions/RSyncBDT-Unordered/solution.ini new file mode 100644 index 0000000000000000000000000000000000000000..7672bc85cfba29b318a9d7d16eac085185991fa5 --- /dev/null +++ b/solutions/RSyncBDT-Unordered/solution.ini @@ -0,0 +1,6 @@ +[build] +default=cd ../RSync && sbt compile +skipTests=cd ../RSync && sbt compile + +[run] +cmd=cd ../RSync && sbt --error run bdt-u diff --git a/solutions/RSyncBDT/solution.ini b/solutions/RSyncBDT/solution.ini new file mode 100644 index 0000000000000000000000000000000000000000..7358b66855969a0421dcb37e41f13a5aefa936b7 --- /dev/null +++ b/solutions/RSyncBDT/solution.ini @@ -0,0 +1,6 @@ +[build] +default=cd ../RSync && sbt compile +skipTests=cd ../RSync && sbt compile + +[run] +cmd=cd ../RSync && sbt --error run bdt