Skip to content
Snippets Groups Projects
Commit 3a5877ae authored by npedot's avatar npedot
Browse files

refact detect apply use cases, reorders domain directories

parent 5aaabf16
No related branches found
No related tags found
No related merge requests found
Showing
with 100 additions and 19 deletions
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
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
......
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 {
......
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
......
package unibz.cs.semint.kprime.domain
interface Applier {
fun apply()
}
\ No newline at end of file
package unibz.cs.semint.kprime.domain
interface Detector {
fun detect()
}
\ No newline at end of file
package unibz.cs.semint.kprime.usecase
class HSplitApplyUseCase {
}
\ No newline at end of file
package unibz.cs.semint.kprime.usecase
class HSplitDetectUseCase {}
\ No newline at end of file
package unibz.cs.semint.kprime.usecase
class IdentifierApplyUseCase {}
\ No newline at end of file
package unibz.cs.semint.kprime.usecase
class IdentifierDetectUseCase {
}
\ No newline at end of file
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.*
......
package unibz.cs.semint.kprime.usecase
class VSplitApplyUseCase {}
\ No newline at end of file
package unibz.cs.semint.kprime.usecase
class VSplitDetectUseCase {
}
\ No newline at end of file
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) {
......
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){
......
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
......
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
......
package unibz.cs.semint.kprime.service
package unibz.cs.semint.kprime.usecase.service
interface IXSLTransformerService {
fun trasform(xsl:String,xml:String,out:String)
......
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)
}
......
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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment