Skip to content

Commit b820702

Browse files
committed
Implement generator for generating JSON schemas
1 parent 4106a8a commit b820702

File tree

9 files changed

+427
-1
lines changed

9 files changed

+427
-1
lines changed

languages/jsonschema/build.gradle

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
plugins {
2+
id 'org.jetbrains.kotlin.jvm' version '1.3.72'
3+
}
4+
5+
compileKotlin {
6+
kotlinOptions.jvmTarget = "1.8"
7+
}
8+
compileTestKotlin {
9+
kotlinOptions.jvmTarget = "1.8"
10+
}
11+
12+
publishing {
13+
publications {
14+
Maven(MavenPublication) {
15+
from components.java
16+
}
17+
}
18+
}
19+
20+
dependencies {
21+
implementation 'org.json:json:20200518'
22+
23+
compile project(':codegen-renderers')
24+
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
25+
testCompile group: 'junit', name: 'junit', version: '4.13'
26+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* Copyright 2021 Michael van Tellingen
3+
*/
4+
package io.vrap.codegen.languages.jsonschema.model
5+
6+
import io.vrap.rmf.codegen.types.LanguageBaseTypes
7+
import io.vrap.rmf.codegen.types.VrapScalarType
8+
9+
object JsonSchemaBaseTypes : LanguageBaseTypes(
10+
anyType = nativeJsonSchemaType("any"),
11+
objectType = nativeJsonSchemaType("object"),
12+
integerType = nativeJsonSchemaType("integer"),
13+
longType = nativeJsonSchemaType("integer"),
14+
doubleType = nativeJsonSchemaType("number"),
15+
stringType = nativeJsonSchemaType("string"),
16+
booleanType = nativeJsonSchemaType("boolean"),
17+
dateTimeType = nativeJsonSchemaType("date-time"),
18+
dateOnlyType = nativeJsonSchemaType("date"),
19+
timeOnlyType = nativeJsonSchemaType("time"),
20+
file = nativeJsonSchemaType("typing.BinaryIO")
21+
)
22+
23+
fun nativeJsonSchemaType(typeName: String): VrapScalarType = VrapScalarType(typeName)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* Copyright 2021 Michael van Tellingen
3+
*/
4+
package io.vrap.codegen.languages.jsonschema.model
5+
6+
import io.vrap.rmf.codegen.di.GeneratorModule
7+
import io.vrap.rmf.codegen.di.Module
8+
import io.vrap.rmf.codegen.rendring.CodeGenerator
9+
import io.vrap.rmf.codegen.rendring.FileGenerator
10+
11+
object JsonSchemaModelModule : Module {
12+
override fun configure(generatorModule: GeneratorModule) = setOf<CodeGenerator>(
13+
FileGenerator(
14+
setOf(
15+
16+
JsonSchemaRenderer(
17+
generatorModule.vrapTypeProvider(),
18+
generatorModule.allAnyTypes()
19+
)
20+
)
21+
)
22+
)
23+
}

0 commit comments

Comments
 (0)