From 7c534f9ae6e1d2d9bf93684e8fbec31c43e76444 Mon Sep 17 00:00:00 2001 From: Rico Bergmann <rico.bergmann1@tu-dresden.de> Date: Thu, 20 Jun 2019 18:17:06 +0200 Subject: [PATCH] [RSYNC] Support multiple integration strategies --- solutions/RSync/src/main/scala/MainApp.scala | 16 ++++++++++++---- .../main/scala/ttc2019/CompleteTTCProcess.scala | 6 +++--- .../src/main/scala/ttc2019/ProcessMode.scala | 6 ++++++ .../scala/ttc2019/TTCProcessConfiguration.scala | 4 +++- solutions/RSyncBDD-Unordered/solution.ini | 6 ++++++ solutions/RSyncBDD/solution.ini | 6 ++++++ solutions/RSyncBDT-Unordered/solution.ini | 6 ++++++ solutions/RSyncBDT/solution.ini | 6 ++++++ 8 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 solutions/RSync/src/main/scala/ttc2019/ProcessMode.scala create mode 100644 solutions/RSyncBDD-Unordered/solution.ini create mode 100644 solutions/RSyncBDD/solution.ini create mode 100644 solutions/RSyncBDT-Unordered/solution.ini create mode 100644 solutions/RSyncBDT/solution.ini diff --git a/solutions/RSync/src/main/scala/MainApp.scala b/solutions/RSync/src/main/scala/MainApp.scala index 8628f49..8842252 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 20cbcd2..a15e71b 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 0000000..413540d --- /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 66c955e..de2868c 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 0000000..0885958 --- /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 0000000..c4ee039 --- /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 0000000..7672bc8 --- /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 0000000..7358b66 --- /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 -- GitLab