Newer
Older
package unibz.cs.semint.kprime.domain.dql
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement
import unibz.cs.semint.kprime.domain.ddl.Database
@JacksonXmlRootElement(localName = "query")
class Query {
var select = Select()
@JacksonXmlElementWrapper(useWrapping=false)
var union= ArrayList<Union>()
@JacksonXmlElementWrapper(useWrapping=false)
var minus= ArrayList<Minus>()
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
companion object {
fun simpleFilmQueryFixture(tableName:String): Query {
val query = Query()
var select = query.select
var attr = Attribute()
attr.name = "*"
select.attributes.add(attr)
val fromT1 = From()
fromT1.tableName = tableName
select.from.add(fromT1)
return query
}
fun simpleFilmQueryFixture(tableName:String,condition:String): Query {
val query = Query()
var select = query.select
var attr = Attribute()
attr.name = "*"
select.attributes.add(attr)
val fromT1 = From()
fromT1.tableName = tableName
select.from.add(fromT1)
select.where.condition = condition
return query
}
fun simpleQueryFixture(database: Database, tableName:String, condition:String): Query {
val colNames = database.schema.tables.filter { t -> t.name == tableName }.first().columns.map { c -> var attr = Attribute(); attr.name=c.name; attr }
val query = Query()
var select = query.select
select.attributes.addAll(colNames)
val fromT1 = From()
fromT1.tableName = tableName
select.from.add(fromT1)
select.where.condition = condition
return query
}
fun simpleQueryFixture(database: Database, tableName:String): Query {
val colNames = database.schema.tables.filter { t -> t.name == tableName }.first().columns.map { c -> var attr = Attribute(); attr.name=c.name; attr }
val query = Query()
var select = query.select
select.attributes.addAll(colNames)
val fromT1 = From()
fromT1.tableName = database.lineage(tableName).last()
select.from.add(fromT1)
return query
}
}