@@ -13,17 +13,19 @@ import io.openapiprocessor.core.converter.ApiOptions
1313import io.openapiprocessor.core.converter.OptionsConverter
1414import io.openapiprocessor.core.parser.Parser
1515import io.openapiprocessor.core.writer.java.*
16- import io.openapiprocessor.spring.writer.java.HeaderWriter
16+ import io.openapiprocessor.spring.Version
1717import io.openapiprocessor.spring.writer.java.MappingAnnotationWriter
1818import io.openapiprocessor.spring.writer.java.ParameterAnnotationWriter
1919import org.slf4j.Logger
2020import org.slf4j.LoggerFactory
21+ import java.time.OffsetDateTime
2122
2223/* *
2324 * Entry point of openapi-processor-spring.
2425 */
2526class SpringProcessor : OpenApiProcessor , io.openapiprocessor.api.v1.OpenApiProcessor {
2627 private val log: Logger = LoggerFactory .getLogger(this .javaClass.name)
28+ private var testMode = false
2729
2830 override fun getName (): String {
2931 return " spring"
@@ -44,15 +46,17 @@ class SpringProcessor: OpenApiProcessor, io.openapiprocessor.api.v1.OpenApiProce
4446 val cv = ApiConverter (options, framework)
4547 val api = cv.convert(openapi)
4648
47- val headerWriter = HeaderWriter ()
49+ val generatedInfo = createGeneratedInfo(options)
50+ val generatedWriter = GeneratedWriterImpl (generatedInfo, options)
4851 val beanValidationFactory = BeanValidationFactory ()
4952 val javaDocWriter = JavaDocWriter ()
5053
5154 val writer = ApiWriter (
5255 options,
56+ generatedWriter,
5357 InterfaceWriter (
5458 options,
55- headerWriter ,
59+ generatedWriter ,
5660 MethodWriter (
5761 options,
5862 MappingAnnotationWriter (),
@@ -66,12 +70,12 @@ class SpringProcessor: OpenApiProcessor, io.openapiprocessor.api.v1.OpenApiProce
6670 ),
6771 DataTypeWriter (
6872 options,
69- headerWriter ,
73+ generatedWriter ,
7074 beanValidationFactory),
71- StringEnumWriter (headerWriter ),
75+ StringEnumWriter (generatedWriter ),
7276 InterfaceDataTypeWriter (
7377 options,
74- headerWriter ,
78+ generatedWriter ,
7579 javaDocWriter
7680 )
7781 )
@@ -83,6 +87,30 @@ class SpringProcessor: OpenApiProcessor, io.openapiprocessor.api.v1.OpenApiProce
8387 }
8488 }
8589
90+ private fun createGeneratedInfo (options : ApiOptions ): GeneratedInfo {
91+ var version = Version .version
92+ var date: String? = OffsetDateTime .now().toString()
93+
94+ if (! options.generatedDate)
95+ date = null
96+
97+ if (testMode) {
98+ version = " test"
99+ date = null
100+ }
101+
102+ return GeneratedInfo (
103+ " openapi-processor-spring" ,
104+ version,
105+ date,
106+ " https://openapiprocessor.io"
107+ )
108+ }
109+
110+ fun enableTestMode () {
111+ testMode = true
112+ }
113+
86114 @Suppress(" UNCHECKED_CAST" )
87115 private fun convertOptions (processorOptions : Map <String , * >): ApiOptions {
88116 val options = OptionsConverter ().convertOptions (processorOptions as Map <String , Any >)
0 commit comments