From 5d10dd938adcfed9b8fcf8ee4d73c0171afeb25e Mon Sep 17 00:00:00 2001 From: npedot <nicola.pedot@gmail.com> Date: Wed, 15 Jan 2020 11:51:14 +0100 Subject: [PATCH] adds person vsplit scenario --- .../scenario/PersonVSplitScenario.kt | 44 +++++++++++++++++++ .../scenario/SakilaScenario.kt | 0 .../scenario/DepartmentEmploeesScenario.kt | 4 -- .../scenario/PersonVSplitScenarioTI.kt | 16 +++++++ 4 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 src/main/kotlin/unibz.cs.semint.kprime/scenario/PersonVSplitScenario.kt rename src/main/kotlin/{unibz/cs/semint/kprime => unibz.cs.semint.kprime}/scenario/SakilaScenario.kt (100%) delete mode 100644 src/main/kotlin/unibz/cs/semint/kprime/scenario/DepartmentEmploeesScenario.kt create mode 100644 src/test/kotlin/unibz.cs.semint.kprime/scenario/PersonVSplitScenarioTI.kt diff --git a/src/main/kotlin/unibz.cs.semint.kprime/scenario/PersonVSplitScenario.kt b/src/main/kotlin/unibz.cs.semint.kprime/scenario/PersonVSplitScenario.kt new file mode 100644 index 0000000..6c6e2bf --- /dev/null +++ b/src/main/kotlin/unibz.cs.semint.kprime/scenario/PersonVSplitScenario.kt @@ -0,0 +1,44 @@ +package unibz.cs.semint.kprime.scenario + +import unibz.cs.semint.kprime.adapter.service.XMLSerializerJacksonAdapter +import unibz.cs.semint.kprime.domain.Column +import unibz.cs.semint.kprime.domain.Constraint +import unibz.cs.semint.kprime.domain.Database +import unibz.cs.semint.kprime.domain.Table +import unibz.cs.semint.kprime.usecase.XMLSerializeUseCase + +class PersonVSplitScenario { + + fun run() { + val personMetadata = buildPersonMetadata() + print(XMLSerializeUseCase(XMLSerializerJacksonAdapter()).prettyDatabase(personMetadata).ok) + //vsplitSakila(personMetadata) + + } + + private fun vsplitSakila(personMetadata: Database) { + TODO("not implemented") + // if detect(db):result + // apply(db,result):db + } + + private fun buildPersonMetadata(): Database { + val db = Database() + val personTable = Table() + personTable.name= "person" + val colSSN = Column("SSN", "id.SSN", "dbname.SSN") + personTable.columns.add(colSSN) + val colT = Column("T", "id.SSN", "dbname.SSN") + personTable.columns.add(colT) + val colS = Column("S", "id.SSN", "dbname.SSN") + personTable.columns.add(colS) + db.schema.tables.add(personTable) + val primaryConstraint = Constraint() + primaryConstraint.name="primaryKey.person" + primaryConstraint.source.columns.add(colSSN) + primaryConstraint.source.columns.add(colT) + db.schema.constraints.add(primaryConstraint) + return db + } + +} \ No newline at end of file diff --git a/src/main/kotlin/unibz/cs/semint/kprime/scenario/SakilaScenario.kt b/src/main/kotlin/unibz.cs.semint.kprime/scenario/SakilaScenario.kt similarity index 100% rename from src/main/kotlin/unibz/cs/semint/kprime/scenario/SakilaScenario.kt rename to src/main/kotlin/unibz.cs.semint.kprime/scenario/SakilaScenario.kt diff --git a/src/main/kotlin/unibz/cs/semint/kprime/scenario/DepartmentEmploeesScenario.kt b/src/main/kotlin/unibz/cs/semint/kprime/scenario/DepartmentEmploeesScenario.kt deleted file mode 100644 index 0094230..0000000 --- a/src/main/kotlin/unibz/cs/semint/kprime/scenario/DepartmentEmploeesScenario.kt +++ /dev/null @@ -1,4 +0,0 @@ -package unibz.cs.semint.kprime.scenario - -class DepartmentEmploeesScenario { -} \ No newline at end of file diff --git a/src/test/kotlin/unibz.cs.semint.kprime/scenario/PersonVSplitScenarioTI.kt b/src/test/kotlin/unibz.cs.semint.kprime/scenario/PersonVSplitScenarioTI.kt new file mode 100644 index 0000000..a78e9d9 --- /dev/null +++ b/src/test/kotlin/unibz.cs.semint.kprime/scenario/PersonVSplitScenarioTI.kt @@ -0,0 +1,16 @@ +package unibz.cs.semint.kprime.scenario + +import org.junit.Test + +class PersonVSplitScenarioTI { + + @Test + fun test_person_vsplit_scenario() { + // given + val personVSplitScenario = PersonVSplitScenario() + // when + personVSplitScenario.run() + // then + // prints splitted database + } +} \ No newline at end of file -- GitLab