diff --git a/src/main/kotlin/unibz.cs.semint.kprime/Starter.kt b/src/main/kotlin/unibz.cs.semint.kprime/Starter.kt index 0fde194e85a44db0ff35a0745125be57c18d6efc..29b40c98a30bba142ca7e9e63938c971888f375d 100644 --- a/src/main/kotlin/unibz.cs.semint.kprime/Starter.kt +++ b/src/main/kotlin/unibz.cs.semint.kprime/Starter.kt @@ -1,5 +1,54 @@ package unibz.cs.semint.kprime -fun main(args:Array<String>) { - println("hello") +import unibz.cs.semint.kprime.adapter.repository.MetaSchemaJdbcAdapter +import unibz.cs.semint.kprime.adapter.service.XMLSerializerJacksonAdapter +import unibz.cs.semint.kprime.domain.DataSource +import unibz.cs.semint.kprime.domain.Database +import unibz.cs.semint.kprime.usecase.MetaSchemaReadUseCase + +class Starter { + + + fun main(args:Array<String>) { + val version = "0.1.0-SNAPSHOT" + println("KPrime $version") + val sakilaMeta = readSakilaMeta() + if (sakilaMeta!=null) { + vsplitSakila(sakilaMeta) + hsplitSakila(sakilaMeta) + identifySakila(sakilaMeta) + } + } + + + fun readSakilaMeta():Database? { + val type = "psql" + val name = "sakila-source" + val driver = "org.postgresql.Driver" + val path = "jdbc:postgresql://localhost:5432/sakila" + val user = "sammy" + val pass = "pass" + val sakilaSource = DataSource(type,name,driver,path,user,pass) + val result = MetaSchemaReadUseCase().doit(sakilaSource, + "read-meta-schema sakila-source", + MetaSchemaJdbcAdapter(), + XMLSerializerJacksonAdapter()) + return result.ok + } + + fun vsplitSakila(db:Database) { + // if detect(db):result + // apply(db,result):db + } + + fun hsplitSakila(db:Database) { + // if detect(db):result + // apply(db,result):db + } + + fun identifySakila(db:Database) { + // if detect(db):result + // apply(db,result):db + } + } \ No newline at end of file diff --git a/src/main/kotlin/unibz.cs.semint.kprime/adapter/MetaSchemaJdbcAdapter.kt b/src/main/kotlin/unibz.cs.semint.kprime/adapter/repository/MetaSchemaJdbcAdapter.kt similarity index 97% rename from src/main/kotlin/unibz.cs.semint.kprime/adapter/MetaSchemaJdbcAdapter.kt rename to src/main/kotlin/unibz.cs.semint.kprime/adapter/repository/MetaSchemaJdbcAdapter.kt index b538f8a5a36e5e8764c48dd137655913b300644f..7aaa417b107ee1a3f137ba8faf827db0a1744e84 100644 --- a/src/main/kotlin/unibz.cs.semint.kprime/adapter/MetaSchemaJdbcAdapter.kt +++ b/src/main/kotlin/unibz.cs.semint.kprime/adapter/repository/MetaSchemaJdbcAdapter.kt @@ -1,7 +1,7 @@ -package unibz.cs.semint.kprime.adapter +package unibz.cs.semint.kprime.adapter.repository import unibz.cs.semint.kprime.domain.* -import unibz.cs.semint.kprime.repository.IMetaSchemaRepository +import unibz.cs.semint.kprime.usecase.repository.IMetaSchemaRepository import java.sql.DatabaseMetaData import java.sql.DriverManager import java.sql.JDBCType diff --git a/src/main/kotlin/unibz.cs.semint.kprime/adapter/XMLSerializerJacksonAdapter.kt b/src/main/kotlin/unibz.cs.semint.kprime/adapter/service/XMLSerializerJacksonAdapter.kt similarity index 93% rename from src/main/kotlin/unibz.cs.semint.kprime/adapter/XMLSerializerJacksonAdapter.kt rename to src/main/kotlin/unibz.cs.semint.kprime/adapter/service/XMLSerializerJacksonAdapter.kt index 80f5d33380001fac37737c04592be72a8b20fcbc..0d83aad5798e7675def85abecdcab06740816fee 100644 --- a/src/main/kotlin/unibz.cs.semint.kprime/adapter/XMLSerializerJacksonAdapter.kt +++ b/src/main/kotlin/unibz.cs.semint.kprime/adapter/service/XMLSerializerJacksonAdapter.kt @@ -1,9 +1,9 @@ -package unibz.cs.semint.kprime.adapter +package unibz.cs.semint.kprime.adapter.service import com.fasterxml.jackson.dataformat.xml.XmlMapper import com.fasterxml.jackson.module.kotlin.KotlinModule import unibz.cs.semint.kprime.domain.* -import unibz.cs.semint.kprime.service.IXMLSerializerService +import unibz.cs.semint.kprime.usecase.service.IXMLSerializerService class XMLSerializerJacksonAdapter : IXMLSerializerService { diff --git a/src/main/kotlin/unibz.cs.semint.kprime/adapter/XSLTransformerJaxpAdapter.kt b/src/main/kotlin/unibz.cs.semint.kprime/adapter/service/XSLTransformerJaxpAdapter.kt similarity index 86% rename from src/main/kotlin/unibz.cs.semint.kprime/adapter/XSLTransformerJaxpAdapter.kt rename to src/main/kotlin/unibz.cs.semint.kprime/adapter/service/XSLTransformerJaxpAdapter.kt index fb69eed100a8f38b778c8571f80c501e6c57d5ff..87964f295d5dc7b2b03e010f97704d150c07ecaf 100644 --- a/src/main/kotlin/unibz.cs.semint.kprime/adapter/XSLTransformerJaxpAdapter.kt +++ b/src/main/kotlin/unibz.cs.semint.kprime/adapter/service/XSLTransformerJaxpAdapter.kt @@ -1,6 +1,6 @@ -package unibz.cs.semint.kprime.adapter +package unibz.cs.semint.kprime.adapter.service -import unibz.cs.semint.kprime.service.IXSLTransformerService +import unibz.cs.semint.kprime.usecase.service.IXSLTransformerService import java.io.FileOutputStream import javax.xml.transform.OutputKeys import javax.xml.transform.TransformerFactory diff --git a/src/main/kotlin/unibz.cs.semint.kprime/domain/Applier.kt b/src/main/kotlin/unibz.cs.semint.kprime/domain/Applier.kt new file mode 100644 index 0000000000000000000000000000000000000000..85c547d1d47ac3fd44ff06b32ccbd48989803dd7 --- /dev/null +++ b/src/main/kotlin/unibz.cs.semint.kprime/domain/Applier.kt @@ -0,0 +1,5 @@ +package unibz.cs.semint.kprime.domain + +interface Applier { + fun apply() +} \ No newline at end of file diff --git a/src/main/kotlin/unibz.cs.semint.kprime/domain/Detector.kt b/src/main/kotlin/unibz.cs.semint.kprime/domain/Detector.kt new file mode 100644 index 0000000000000000000000000000000000000000..2e97235e6443f475691ff512e6591710c0d5d06b --- /dev/null +++ b/src/main/kotlin/unibz.cs.semint.kprime/domain/Detector.kt @@ -0,0 +1,5 @@ +package unibz.cs.semint.kprime.domain + +interface Detector { + fun detect() +} \ No newline at end of file diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/HSplitApplyUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/HSplitApplyUseCase.kt new file mode 100644 index 0000000000000000000000000000000000000000..e42a4741f7513e4d4811d1fbcdb5245f012b4c59 --- /dev/null +++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/HSplitApplyUseCase.kt @@ -0,0 +1,5 @@ +package unibz.cs.semint.kprime.usecase + +class HSplitApplyUseCase { + +} \ No newline at end of file diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/HSplitDetectUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/HSplitDetectUseCase.kt new file mode 100644 index 0000000000000000000000000000000000000000..31e93a6a5d9c074408f3dbdc74661f952a9229f3 --- /dev/null +++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/HSplitDetectUseCase.kt @@ -0,0 +1,3 @@ +package unibz.cs.semint.kprime.usecase + +class HSplitDetectUseCase {} \ No newline at end of file diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/IdentifierApplyUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/IdentifierApplyUseCase.kt new file mode 100644 index 0000000000000000000000000000000000000000..12325d0bd979de5317f7ca63fb277e1635bce5e5 --- /dev/null +++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/IdentifierApplyUseCase.kt @@ -0,0 +1,3 @@ +package unibz.cs.semint.kprime.usecase + +class IdentifierApplyUseCase {} \ No newline at end of file diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/IdentifierDetectUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/IdentifierDetectUseCase.kt new file mode 100644 index 0000000000000000000000000000000000000000..1ba549d5b1440338a83baf2b82f1a4bdbabd4241 --- /dev/null +++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/IdentifierDetectUseCase.kt @@ -0,0 +1,4 @@ +package unibz.cs.semint.kprime.usecase + +class IdentifierDetectUseCase { +} \ No newline at end of file diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/MetaSchemaReadUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/MetaSchemaReadUseCase.kt index be07469fd567f2e2d37607d8e5f991628f8df97d..e64334fb270c6849058c378711ec50a6006bf026 100644 --- a/src/main/kotlin/unibz.cs.semint.kprime/usecase/MetaSchemaReadUseCase.kt +++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/MetaSchemaReadUseCase.kt @@ -1,8 +1,8 @@ package unibz.cs.semint.kprime.usecase import unibz.cs.semint.kprime.domain.* -import unibz.cs.semint.kprime.repository.IMetaSchemaRepository -import unibz.cs.semint.kprime.service.IXMLSerializerService +import unibz.cs.semint.kprime.usecase.repository.IMetaSchemaRepository +import unibz.cs.semint.kprime.usecase.service.IXMLSerializerService import java.util.* diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/VSplitApplyUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/VSplitApplyUseCase.kt new file mode 100644 index 0000000000000000000000000000000000000000..d344b7a99a874c096093a51b462e903ea86c7275 --- /dev/null +++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/VSplitApplyUseCase.kt @@ -0,0 +1,3 @@ +package unibz.cs.semint.kprime.usecase + +class VSplitApplyUseCase {} \ No newline at end of file diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/VSplitDetectUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/VSplitDetectUseCase.kt new file mode 100644 index 0000000000000000000000000000000000000000..7cd975a3ef796119ca67434eb8a9ce9ea85d5611 --- /dev/null +++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/VSplitDetectUseCase.kt @@ -0,0 +1,4 @@ +package unibz.cs.semint.kprime.usecase + +class VSplitDetectUseCase { +} \ No newline at end of file diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/XMLSerializeUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/XMLSerializeUseCase.kt index 5ac5e1f2403a9297a05be44a5cdd69024ec0960a..3ca07fa487774a6e44e1d2b5c1b11fd8e234ca7e 100644 --- a/src/main/kotlin/unibz.cs.semint.kprime/usecase/XMLSerializeUseCase.kt +++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/XMLSerializeUseCase.kt @@ -1,7 +1,7 @@ package unibz.cs.semint.kprime.usecase import unibz.cs.semint.kprime.domain.* -import unibz.cs.semint.kprime.service.IXMLSerializerService +import unibz.cs.semint.kprime.usecase.service.IXMLSerializerService class XMLSerializeUseCase(val xmlSerializerService: IXMLSerializerService) { diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/XSLTrasformUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/XSLTrasformUseCase.kt index 097ec536f620ea00c998a84c3e0547877575a647..6d45bb09eac6a926ddf17812b35847413bd71138 100644 --- a/src/main/kotlin/unibz.cs.semint.kprime/usecase/XSLTrasformUseCase.kt +++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/XSLTrasformUseCase.kt @@ -1,7 +1,7 @@ package unibz.cs.semint.kprime.usecase import unibz.cs.semint.kprime.domain.UseCaseResult -import unibz.cs.semint.kprime.service.IXSLTransformerService +import unibz.cs.semint.kprime.usecase.service.IXSLTransformerService class XSLTrasformUseCase (val transformer:IXSLTransformerService){ diff --git a/src/main/kotlin/unibz.cs.semint.kprime/repository/IMetaSchemaRepository.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/repository/IMetaSchemaRepository.kt similarity index 78% rename from src/main/kotlin/unibz.cs.semint.kprime/repository/IMetaSchemaRepository.kt rename to src/main/kotlin/unibz.cs.semint.kprime/usecase/repository/IMetaSchemaRepository.kt index 291fe5af05ddbbb8b1125dd104635ced354b24cf..f1701f5de1ff73c10d88c025ee458ed350d055a5 100644 --- a/src/main/kotlin/unibz.cs.semint.kprime/repository/IMetaSchemaRepository.kt +++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/repository/IMetaSchemaRepository.kt @@ -1,4 +1,4 @@ -package unibz.cs.semint.kprime.repository +package unibz.cs.semint.kprime.usecase.repository import unibz.cs.semint.kprime.domain.DataSource import unibz.cs.semint.kprime.domain.Database diff --git a/src/main/kotlin/unibz.cs.semint.kprime/service/IXMLSerializerService.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/service/IXMLSerializerService.kt similarity index 92% rename from src/main/kotlin/unibz.cs.semint.kprime/service/IXMLSerializerService.kt rename to src/main/kotlin/unibz.cs.semint.kprime/usecase/service/IXMLSerializerService.kt index dfb2421519a84fbd860532282a1da5727f5f8494..9c872ed37ce4464fe83d12445a9026f9fcd0e3a3 100644 --- a/src/main/kotlin/unibz.cs.semint.kprime/service/IXMLSerializerService.kt +++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/service/IXMLSerializerService.kt @@ -1,4 +1,4 @@ -package unibz.cs.semint.kprime.service +package unibz.cs.semint.kprime.usecase.service import unibz.cs.semint.kprime.domain.Constraint import unibz.cs.semint.kprime.domain.Database diff --git a/src/main/kotlin/unibz.cs.semint.kprime/service/IXSLTransformerService.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/service/IXSLTransformerService.kt similarity index 65% rename from src/main/kotlin/unibz.cs.semint.kprime/service/IXSLTransformerService.kt rename to src/main/kotlin/unibz.cs.semint.kprime/usecase/service/IXSLTransformerService.kt index 0da9dca5748d34f6926282c6999587f0cbcd7a5f..04962e9cda7c3595737157e06ab0be4a92b2eb57 100644 --- a/src/main/kotlin/unibz.cs.semint.kprime/service/IXSLTransformerService.kt +++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/service/IXSLTransformerService.kt @@ -1,4 +1,4 @@ -package unibz.cs.semint.kprime.service +package unibz.cs.semint.kprime.usecase.service interface IXSLTransformerService { fun trasform(xsl:String,xml:String,out:String) diff --git a/src/test/kotlin/unibz.cs.semint.kprime/usecase/meta/SakilaMetaTI.kt b/src/test/kotlin/unibz.cs.semint.kprime/usecase/meta/SakilaMetaTI.kt index 98b81495fda2f9772a2e259821c84cb9ff9bf3a3..2a6cd7754dcefbf50860975aaa21406b03d6a9d8 100644 --- a/src/test/kotlin/unibz.cs.semint.kprime/usecase/meta/SakilaMetaTI.kt +++ b/src/test/kotlin/unibz.cs.semint.kprime/usecase/meta/SakilaMetaTI.kt @@ -1,8 +1,8 @@ package unibz.cs.semint.kprime.usecase.meta import org.junit.Test -import unibz.cs.semint.kprime.adapter.MetaSchemaJdbcAdapter -import unibz.cs.semint.kprime.adapter.XMLSerializerJacksonAdapter +import unibz.cs.semint.kprime.adapter.repository.MetaSchemaJdbcAdapter +import unibz.cs.semint.kprime.adapter.service.XMLSerializerJacksonAdapter import unibz.cs.semint.kprime.domain.DataSource import unibz.cs.semint.kprime.usecase.MetaSchemaReadUseCase import kotlin.test.assertEquals @@ -20,7 +20,7 @@ class SakilaMetaTI { val pass = "pass" val sakilaSource = DataSource(type,name,driver,path,user,pass) // when - val result = MetaSchemaReadUseCase().doit(sakilaSource,"read-meta-schema sakila-source",MetaSchemaJdbcAdapter(),XMLSerializerJacksonAdapter()) + val result = MetaSchemaReadUseCase().doit(sakilaSource,"read-meta-schema sakila-source", MetaSchemaJdbcAdapter(), XMLSerializerJacksonAdapter()) // then assertEquals("read-meta-schema done.",result.message) } diff --git a/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLDeserializerDatabaseTest.kt b/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLDeserializerDatabaseTest.kt index cf71ec7bf832b9448c6d1e0d6c96ef6a32e8ec83..9290153e36dbcd699a548f8164a29e32abfb616a 100644 --- a/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLDeserializerDatabaseTest.kt +++ b/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLDeserializerDatabaseTest.kt @@ -1,7 +1,7 @@ package unibz.cs.semint.kprime.usecase.serialize import org.junit.Test -import unibz.cs.semint.kprime.adapter.XMLSerializerJacksonAdapter +import unibz.cs.semint.kprime.adapter.service.XMLSerializerJacksonAdapter import unibz.cs.semint.kprime.usecase.XMLSerializeUseCase import java.io.File import kotlin.test.assertEquals diff --git a/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLSerializerConstraintTest.kt b/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLSerializerConstraintTest.kt index e29497a9343eae70d1fdf17eb4e17978494e5370..c88e68f14ee040ed71987df842f4c73a19d3a8a6 100644 --- a/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLSerializerConstraintTest.kt +++ b/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLSerializerConstraintTest.kt @@ -3,7 +3,7 @@ package unibz.cs.semint.kprime.usecase.serialize import org.junit.Assert import org.junit.Test import org.xmlunit.builder.DiffBuilder -import unibz.cs.semint.kprime.adapter.XMLSerializerJacksonAdapter +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.Source diff --git a/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLSerializerDatabaseTest.kt b/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLSerializerDatabaseTest.kt index d5f5e957a8e298b84fd8251926a375f63253af3a..9111943a2f82ddb23400a829ca13083864f2d670 100644 --- a/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLSerializerDatabaseTest.kt +++ b/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLSerializerDatabaseTest.kt @@ -3,7 +3,7 @@ package unibz.cs.semint.kprime.usecase.serialize import org.junit.Assert import org.junit.Test import org.xmlunit.builder.DiffBuilder -import unibz.cs.semint.kprime.adapter.XMLSerializerJacksonAdapter +import unibz.cs.semint.kprime.adapter.service.XMLSerializerJacksonAdapter import unibz.cs.semint.kprime.domain.Database import unibz.cs.semint.kprime.domain.Schema import unibz.cs.semint.kprime.domain.Table diff --git a/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLSerializerTableTest.kt b/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLSerializerTableTest.kt index fbcb33439d3723648f932883148918c68a90a36a..b7fc961234baa3f3be9c201f32a5792ac60277fe 100644 --- a/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLSerializerTableTest.kt +++ b/src/test/kotlin/unibz.cs.semint.kprime/usecase/serialize/XMLSerializerTableTest.kt @@ -3,7 +3,7 @@ package unibz.cs.semint.kprime.usecase.serialize import org.junit.Assert.assertFalse import org.junit.Test import org.xmlunit.builder.DiffBuilder -import unibz.cs.semint.kprime.adapter.XMLSerializerJacksonAdapter +import unibz.cs.semint.kprime.adapter.service.XMLSerializerJacksonAdapter import unibz.cs.semint.kprime.domain.Column import unibz.cs.semint.kprime.domain.Table import unibz.cs.semint.kprime.usecase.XMLSerializeUseCase diff --git a/src/test/kotlin/unibz.cs.semint.kprime/usecase/xstl/XSTLTransformTest.kt b/src/test/kotlin/unibz.cs.semint.kprime/usecase/xstl/XSTLTransformTest.kt index 2dd254b8110a4cf7305c6b6748f1acc6c695be3d..6975b5133c1dd0409080b8dd2bd043ea97abee4d 100644 --- a/src/test/kotlin/unibz.cs.semint.kprime/usecase/xstl/XSTLTransformTest.kt +++ b/src/test/kotlin/unibz.cs.semint.kprime/usecase/xstl/XSTLTransformTest.kt @@ -1,8 +1,7 @@ package unibz.cs.semint.kprime.usecase.xstl import org.junit.Test -import unibz.cs.semint.kprime.adapter.XSLTransformerJaxpAdapter -import unibz.cs.semint.kprime.usecase.XMLSerializeUseCase +import unibz.cs.semint.kprime.adapter.service.XSLTransformerJaxpAdapter import unibz.cs.semint.kprime.usecase.XSLTrasformUseCase class XSTLTransformTest {