@@ -10,6 +10,7 @@ import com.google.googlejavaformat.java.JavaFormatterOptions
10
10
import io.openapiprocessor.core.converter.ApiOptions
11
11
import io.openapiprocessor.core.model.Api
12
12
import io.openapiprocessor.core.model.Interface
13
+ import io.openapiprocessor.core.model.datatypes.InterfaceDataType
13
14
import io.openapiprocessor.core.model.datatypes.StringEnumDataType
14
15
import io.openapiprocessor.core.support.toURL
15
16
import io.openapiprocessor.core.model.datatypes.ModelDataType
@@ -29,7 +30,8 @@ class ApiWriter(
29
30
private val options : ApiOptions ,
30
31
private val interfaceWriter : InterfaceWriter ,
31
32
private val dataTypeWriter : DataTypeWriter ,
32
- private val enumWriter : StringEnumWriter
33
+ private val enumWriter : StringEnumWriter ,
34
+ private val interfaceDataTypeWriter : InterfaceDataTypeWriter
33
35
) {
34
36
private var log: Logger = LoggerFactory .getLogger(this .javaClass.name)
35
37
@@ -46,6 +48,7 @@ class ApiWriter(
46
48
createTargetFolders()
47
49
writeInterfaces(api)
48
50
writeObjectDataTypes(api)
51
+ writeInterfaceDataTypes(api)
49
52
writeEnumDataTypes(api)
50
53
}
51
54
@@ -67,6 +70,15 @@ class ApiWriter(
67
70
}
68
71
}
69
72
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
+
70
82
private fun writeEnumDataTypes (api : Api ) {
71
83
api.forEachEnumDataType {
72
84
val target = modelFolder.resolve(" ${it.getTypeName()} .java" )
@@ -88,6 +100,12 @@ class ApiWriter(
88
100
writer.write(format(raw.toString ()))
89
101
}
90
102
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
+
91
109
private fun writeEnumDataType (writer : Writer , enumDataType : StringEnumDataType ) {
92
110
val raw = StringWriter ()
93
111
enumWriter.write(raw, enumDataType)
0 commit comments