Skip to content
This repository was archived by the owner on Mar 16, 2025. It is now read-only.

Commit fbef7c7

Browse files
committed
#78, write data type interface
1 parent 484c018 commit fbef7c7

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

src/main/kotlin/io/openapiprocessor/core/model/Api.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
package io.openapiprocessor.core.model
77

8+
import io.openapiprocessor.core.model.datatypes.InterfaceDataType
89
import io.openapiprocessor.core.model.datatypes.ModelDataType
910
import io.openapiprocessor.core.model.datatypes.StringEnumDataType
1011
import java.util.function.Consumer
@@ -41,6 +42,10 @@ class Api(
4142
dataTypes.getModelDataTypes().forEach(action)
4243
}
4344

45+
fun forEachInterfaceDataType(action: Consumer<InterfaceDataType>) {
46+
dataTypes.getInterfaceDataTypes().forEach(action)
47+
}
48+
4449
fun forEachEnumDataType(action: Consumer<StringEnumDataType>) {
4550
dataTypes.getEnumDataTypes().forEach(action)
4651
}

src/main/kotlin/io/openapiprocessor/core/writer/java/ApiWriter.kt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.google.googlejavaformat.java.JavaFormatterOptions
1010
import io.openapiprocessor.core.converter.ApiOptions
1111
import io.openapiprocessor.core.model.Api
1212
import io.openapiprocessor.core.model.Interface
13+
import io.openapiprocessor.core.model.datatypes.InterfaceDataType
1314
import io.openapiprocessor.core.model.datatypes.StringEnumDataType
1415
import io.openapiprocessor.core.support.toURL
1516
import io.openapiprocessor.core.model.datatypes.ModelDataType
@@ -29,7 +30,8 @@ class ApiWriter(
2930
private val options: ApiOptions,
3031
private val interfaceWriter: InterfaceWriter,
3132
private val dataTypeWriter: DataTypeWriter,
32-
private val enumWriter: StringEnumWriter
33+
private val enumWriter: StringEnumWriter,
34+
private val interfaceDataTypeWriter: InterfaceDataTypeWriter
3335
) {
3436
private var log: Logger = LoggerFactory.getLogger(this.javaClass.name)
3537

@@ -46,6 +48,7 @@ class ApiWriter(
4648
createTargetFolders()
4749
writeInterfaces(api)
4850
writeObjectDataTypes(api)
51+
writeInterfaceDataTypes(api)
4952
writeEnumDataTypes(api)
5053
}
5154

@@ -67,6 +70,15 @@ class ApiWriter(
6770
}
6871
}
6972

73+
private fun writeInterfaceDataTypes(api: Api) {
74+
api.forEachInterfaceDataType() {
75+
val target = modelFolder.resolve ("${it.getTypeName()}.java")
76+
val writer = BufferedWriter(PathWriter(target))
77+
writeDataType(writer, it)
78+
writer.close()
79+
}
80+
}
81+
7082
private fun writeEnumDataTypes(api: Api) {
7183
api.forEachEnumDataType {
7284
val target = modelFolder.resolve("${it.getTypeName()}.java")
@@ -88,6 +100,12 @@ class ApiWriter(
88100
writer.write(format(raw.toString ()))
89101
}
90102

103+
private fun writeDataType(writer: Writer, dataType: InterfaceDataType) {
104+
val raw = StringWriter()
105+
interfaceDataTypeWriter.write(raw, dataType)
106+
writer.write(format(raw.toString ()))
107+
}
108+
91109
private fun writeEnumDataType(writer: Writer, enumDataType: StringEnumDataType) {
92110
val raw = StringWriter()
93111
enumWriter.write(raw, enumDataType)

0 commit comments

Comments
 (0)