Skip to content

Commit ba73681

Browse files
committed
1 parent cb3cc2b commit ba73681

File tree

16 files changed

+67
-11
lines changed

16 files changed

+67
-11
lines changed

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/ResourceType.kt

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424

2525
package com.github.mgramin.sqlboot.model.resourcetype
2626

27-
import com.fasterxml.jackson.annotation.JsonProperty
2827
import com.github.mgramin.sqlboot.model.resource.DbResource
2928
import com.github.mgramin.sqlboot.model.uri.Uri
29+
import com.google.gson.JsonObject
3030
import reactor.core.publisher.Flux
3131

3232
/**
@@ -37,32 +37,31 @@ interface ResourceType {
3737
/**
3838
* Name of resource type, e.g "table", "index", "stored procedure" etc
3939
*/
40-
@JsonProperty
41-
fun name(): String {
42-
return aliases()[0]
43-
}
40+
fun name() = aliases()[0]
4441

4542
/**
4643
* Aliases of resource type, e.g. ["table", "tbl", "t", "tablo"]
4744
*/
48-
@JsonProperty
4945
fun aliases(): List<String>
5046

5147
/**
5248
* Path of resource e.g. ["schema", "table", "column"] or ["schema", "table", "index", "index_column"]
5349
*/
54-
@JsonProperty
5550
fun path(): List<String>
5651

5752
/**
5853
* Information about the resource metadata (properties) "name" -> "type"
5954
*/
60-
@JsonProperty
6155
fun metaData(uri: Uri): List<Metadata>
6256

6357
/**
6458
* Read resources by uri
6559
*/
6660
fun read(uri: Uri): Flux<DbResource>
6761

62+
/**
63+
* Get as JSON
64+
*/
65+
fun toJson(): JsonObject
66+
6867
}

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/impl/FakeResourceType.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ import com.github.mgramin.sqlboot.model.resourcetype.Metadata
3030
import com.github.mgramin.sqlboot.model.resourcetype.ResourceType
3131
import com.github.mgramin.sqlboot.model.uri.Uri
3232
import com.github.mgramin.sqlboot.model.uri.impl.DbUri
33+
import com.google.gson.JsonObject
34+
import com.google.gson.JsonParser
3335
import reactor.core.publisher.Flux
3436
import reactor.core.publisher.toFlux
3537
import java.util.Arrays.asList
@@ -55,4 +57,8 @@ class FakeResourceType : ResourceType {
5557
Metadata("@index", "Index name"),
5658
Metadata("size", "Number", "Table size"))
5759

60+
override fun toJson(): JsonObject {
61+
return JsonParser().parse("""{ "name": "fake_resource_type" }""").asJsonObject
62+
}
63+
5864
}

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/impl/FsResourceType.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import com.github.mgramin.sqlboot.model.uri.Uri
3737
import com.github.mgramin.sqlboot.template.generator.impl.GroovyTemplateGenerator
3838
import com.github.mgramin.sqlboot.tools.files.file.impl.MarkdownFile
3939
import com.github.mgramin.sqlboot.tools.files.file.impl.SimpleFile
40+
import com.google.gson.JsonObject
4041
import reactor.core.publisher.Flux
4142
import java.io.File
4243
import java.nio.charset.Charset
@@ -49,6 +50,9 @@ class FsResourceType(
4950
private val dbConnections: List<SimpleDbConnection>,
5051
private val dialects: List<Dialect>
5152
) : ResourceType {
53+
override fun toJson(): JsonObject {
54+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
55+
}
5256

5357
private val resourceTypes: List<ResourceType> = walk(dbConnections.first().baseFolder!!.file.path)
5458

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/impl/SqlResourceType.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ import com.github.mgramin.sqlboot.sql.select.wrappers.OrderedSelectQuery
3939
import com.github.mgramin.sqlboot.sql.select.wrappers.PaginatedSelectQuery
4040
import com.github.mgramin.sqlboot.sql.select.wrappers.RestSelectQuery
4141
import com.github.mgramin.sqlboot.template.generator.impl.GroovyTemplateGenerator
42+
import com.google.gson.JsonObject
43+
import com.google.gson.JsonParser
4244
import org.apache.commons.lang3.StringUtils.strip
4345
import reactor.core.publisher.Flux
4446

@@ -95,6 +97,14 @@ class SqlResourceType(
9597
.map { Metadata(it.key, it.value) } +
9698
Metadata("database", """{"label": "Database", "description": "Database name", "visible": true}""")
9799

100+
override fun toJson(): JsonObject {
101+
val jsonObject = JsonObject()
102+
jsonObject.addProperty("name", name())
103+
jsonObject.addProperty("aliases", aliases().toString())
104+
jsonObject.addProperty("query", simpleSelectQuery.query())
105+
return jsonObject
106+
}
107+
98108
private fun createQuery(uri: Uri, connection: DbConnection): SelectQuery {
99109
val properties = simpleSelectQuery.properties()
100110
val baseQuery = PaginatedSelectQuery(

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/wrappers/body/BodyWrapper.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import com.github.mgramin.sqlboot.model.resourcetype.Metadata
3030
import com.github.mgramin.sqlboot.model.resourcetype.ResourceType
3131
import com.github.mgramin.sqlboot.model.uri.Uri
3232
import com.github.mgramin.sqlboot.template.generator.TemplateGenerator
33+
import org.json.JSONObject
3334
import reactor.core.publisher.Flux
3435

3536
/**
@@ -50,4 +51,6 @@ class BodyWrapper(
5051

5152
override fun metaData(uri: Uri): List<Metadata> = origin.metaData(uri)
5253

54+
override fun toJson() = origin.toJson()
55+
5356
}

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/wrappers/header/DbNameWrapper.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,6 @@ class DbNameWrapper(private val origin: ResourceType,
5757
}
5858
}
5959

60+
override fun toJson() = origin.toJson()
61+
6062
}

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/wrappers/header/SelectWrapper.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,7 @@ class SelectWrapper(private val origin: ResourceType, private val parameterName:
7575
origin.metaData(uri)
7676
}
7777
}
78+
79+
override fun toJson() = origin.toJson()
80+
7881
}

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/wrappers/header/TypeWrapper.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,6 @@ class TypeWrapper(private val origin: ResourceType) : ResourceType {
3737
}
3838
}
3939

40+
override fun toJson() = origin.toJson()
41+
4042
}

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/wrappers/list/CacheWrapper.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,5 @@ class CacheWrapper(private val origin: ResourceType, private val parameterName:
7070
override fun metaData(uri: Uri): List<Metadata> {
7171
return origin.metaData(uri)
7272
}
73+
override fun toJson() = origin.toJson()
7374
}

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/wrappers/list/LimitWrapper.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,5 @@ class LimitWrapper(private val origin: ResourceType, private val parameterName:
5353

5454
override fun metaData(uri: Uri) = origin.metaData(uri)
5555

56+
override fun toJson() = origin.toJson()
5657
}

0 commit comments

Comments
 (0)