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

Commit 6715e74

Browse files
committed
handle id/type split (object), #65
1 parent edd917d commit 6715e74

File tree

16 files changed

+50
-13
lines changed

16 files changed

+50
-13
lines changed

src/main/kotlin/io/openapiprocessor/core/converter/DataTypeConverter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ class DataTypeConverter(
200200
)
201201

202202
val objectType = ObjectDataType (
203-
getNameWithSuffix(schemaInfo.getName()),
203+
DataTypeName(schemaInfo.getName(), getTypeNameWithSuffix(schemaInfo.getName())),
204204
listOf(options.packageName, "model").joinToString("."),
205205
properties = properties,
206206
constraints = constraints,

src/main/kotlin/io/openapiprocessor/core/model/datatypes/ObjectDataType.kt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,22 @@ import io.openapiprocessor.core.model.Documentation
1010
/**
1111
* OpenAPI named object schemas type or an inline object schema.
1212
*/
13-
class ObjectDataType(
14-
private val type: String,
13+
open class ObjectDataType(
14+
private val name: DataTypeName,
1515
private val pkg: String,
16-
private val properties: LinkedHashMap<String, DataType> = linkedMapOf(), // preserves order
16+
/** linked map to preserve order */
17+
private val properties: LinkedHashMap<String, DataType> = linkedMapOf(),
1718
override val constraints: DataTypeConstraints? = null,
1819
override val deprecated: Boolean = false,
1920
override val documentation: Documentation? = null
2021
): DataType, ModelDataType {
2122

2223
override fun getName(): String {
23-
return type
24+
return name.id
25+
}
26+
27+
override fun getTypeName(): String {
28+
return name.type
2429
}
2530

2631
override fun getPackageName(): String {

src/test/groovy/com/github/hauner/openapi/core/learn/PropertyNotationSpec.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.github.hauner.openapi.core.learn
22

3-
import io.openapiprocessor.core.model.datatypes.ObjectDataType
3+
import io.openapiprocessor.core.support.datatypes.ObjectDataType
44
import io.openapiprocessor.core.model.datatypes.DataType
55
import spock.lang.Specification
66

src/test/groovy/com/github/hauner/openapi/core/model/EndpointContentTypesSpec.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
package com.github.hauner.openapi.core.model
77

88
import io.openapiprocessor.core.model.HttpMethod
9-
import io.openapiprocessor.core.model.datatypes.ObjectDataType
109
import io.openapiprocessor.core.model.datatypes.StringDataType
10+
import io.openapiprocessor.core.support.datatypes.ObjectDataType
1111
import spock.lang.Specification
1212

1313
import static io.openapiprocessor.core.builder.api.EndpointBuilderKt.endpoint

src/test/groovy/com/github/hauner/openapi/core/writer/java/BeanValidationFactorySpec.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import io.openapiprocessor.core.model.datatypes.DoubleDataType
1515
import io.openapiprocessor.core.model.datatypes.FloatDataType
1616
import io.openapiprocessor.core.model.datatypes.IntegerDataType
1717
import io.openapiprocessor.core.model.datatypes.LongDataType
18-
import io.openapiprocessor.core.model.datatypes.ObjectDataType
1918
import io.openapiprocessor.core.model.datatypes.StringDataType
19+
import io.openapiprocessor.core.support.datatypes.ObjectDataType
2020
import io.openapiprocessor.core.writer.java.BeanValidationFactory
2121
import spock.lang.Specification
2222
import spock.lang.Unroll

src/test/groovy/com/github/hauner/openapi/core/writer/java/DataTypeWriterSpec.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
package com.github.hauner.openapi.core.writer.java
1818

1919
import io.openapiprocessor.core.converter.ApiOptions
20-
import io.openapiprocessor.core.support.datatypes.ListDataType
21-
import io.openapiprocessor.core.model.datatypes.ObjectDataType
2220
import io.openapiprocessor.core.model.datatypes.StringDataType
21+
import io.openapiprocessor.core.support.datatypes.ListDataType
22+
import io.openapiprocessor.core.support.datatypes.ObjectDataType
2323
import io.openapiprocessor.core.writer.java.BeanValidationFactory
2424
import io.openapiprocessor.core.writer.java.DataTypeWriter
2525
import io.openapiprocessor.core.writer.java.JavaDocWriter

src/test/groovy/com/github/hauner/openapi/core/writer/java/MethodWriterSpec.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import io.openapiprocessor.core.model.HttpMethod
1212
import io.openapiprocessor.core.model.datatypes.*
1313
import io.openapiprocessor.core.model.parameters.Parameter
1414
import io.openapiprocessor.core.model.parameters.ParameterBase
15+
import io.openapiprocessor.core.support.datatypes.ObjectDataType
1516
import io.openapiprocessor.core.writer.java.BeanValidationFactory
1617
import io.openapiprocessor.core.writer.java.JavaDocWriter
1718
import io.openapiprocessor.core.writer.java.MethodWriter

src/test/kotlin/io/openapiprocessor/core/converter/DataTypeConverterSuffixSpec.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ class DataTypeConverterSuffixSpec: StringSpec({
6464
dataTypes.find("Foo") shouldBeSameInstanceAs datatype
6565

6666
datatype.shouldBeInstanceOf<ObjectDataType>()
67-
datatype.getName().shouldBe("FooSuffix")
67+
datatype.getName().shouldBe("Foo")
68+
datatype.getTypeName().shouldBe("FooSuffix")
6869
}
6970

7071
"ignores suffix if model data type name already ends with the suffix" {
@@ -113,6 +114,7 @@ class DataTypeConverterSuffixSpec: StringSpec({
113114

114115
datatype.shouldBeInstanceOf<ObjectDataType>()
115116
datatype.getName().shouldBe("FooWithSuffix")
117+
datatype.getTypeName().shouldBe("FooWithSuffix")
116118
}
117119

118120
"adds suffix to model enum data type name" {

src/test/kotlin/io/openapiprocessor/core/model/DataTypesSpec.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ package io.openapiprocessor.core.model
88
import io.kotest.core.spec.style.StringSpec
99
import io.kotest.matchers.shouldBe
1010
import io.openapiprocessor.core.model.datatypes.DataTypeName
11-
import io.openapiprocessor.core.model.datatypes.ObjectDataType
1211
import io.openapiprocessor.core.model.datatypes.StringDataType
1312
import io.openapiprocessor.core.model.datatypes.StringEnumDataType
13+
import io.openapiprocessor.core.support.datatypes.ObjectDataType
1414

1515
class DataTypesSpec : StringSpec({
1616

src/test/kotlin/io/openapiprocessor/core/model/datatypes/ComposedObjectDataTypeSpec.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ package io.openapiprocessor.core.model.datatypes
77

88
import io.kotest.core.spec.style.StringSpec
99
import io.kotest.matchers.shouldBe
10+
import io.openapiprocessor.core.support.datatypes.ObjectDataType
1011

1112
class ComposedObjectDataTypeSpec : StringSpec({
1213

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* Copyright 2021 https://github.com/openapi-processor/openapi-processor-core
3+
* PDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.openapiprocessor.core.support.datatypes
7+
8+
import io.openapiprocessor.core.model.Documentation
9+
import io.openapiprocessor.core.model.datatypes.DataType
10+
import io.openapiprocessor.core.model.datatypes.DataTypeConstraints
11+
import io.openapiprocessor.core.model.datatypes.DataTypeName
12+
import io.openapiprocessor.core.model.datatypes.ObjectDataType
13+
14+
/**
15+
* easier test migration
16+
*/
17+
class ObjectDataType(
18+
nameId: String,
19+
pkg: String,
20+
properties: LinkedHashMap<String, DataType> = linkedMapOf(),
21+
constraints: DataTypeConstraints? = null,
22+
deprecated: Boolean = false,
23+
documentation: Documentation? = null
24+
): ObjectDataType(DataTypeName(nameId), pkg, properties, constraints, deprecated, documentation)

src/test/kotlin/io/openapiprocessor/core/writer/java/ApiWriterSpec.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import io.openapiprocessor.core.model.Api
1717
import io.openapiprocessor.core.model.DataTypes
1818
import io.openapiprocessor.core.model.Interface
1919
import io.openapiprocessor.core.model.datatypes.*
20+
import io.openapiprocessor.core.support.datatypes.ObjectDataType
2021
import io.openapiprocessor.core.support.text
2122
import io.openapiprocessor.core.tempFolder
2223
import java.io.File

src/test/kotlin/io/openapiprocessor/core/writer/java/BeanValidationFactorySpec.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import io.kotest.core.spec.IsolationMode
99
import io.kotest.core.spec.style.StringSpec
1010
import io.kotest.matchers.shouldBe
1111
import io.openapiprocessor.core.model.datatypes.*
12+
import io.openapiprocessor.core.support.datatypes.ObjectDataType
1213

1314
class BeanValidationFactorySpec: StringSpec({
1415

src/test/kotlin/io/openapiprocessor/core/writer/java/DataTypeWriterSpec.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import io.mockk.mockk
1212
import io.openapiprocessor.core.converter.ApiOptions
1313
import io.openapiprocessor.core.extractImports
1414
import io.openapiprocessor.core.model.datatypes.DataTypeConstraints
15-
import io.openapiprocessor.core.model.datatypes.ObjectDataType
15+
import io.openapiprocessor.core.support.datatypes.ObjectDataType
1616
import io.openapiprocessor.core.model.datatypes.StringDataType
1717
import java.io.StringWriter
1818

src/test/kotlin/io/openapiprocessor/core/writer/java/InterfaceWriterSpec.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import io.openapiprocessor.core.model.datatypes.*
2323
import io.openapiprocessor.core.model.parameters.AdditionalParameter
2424
import io.openapiprocessor.core.model.parameters.Parameter
2525
import io.openapiprocessor.core.model.parameters.ParameterBase
26+
import io.openapiprocessor.core.support.datatypes.ObjectDataType
2627
import java.io.StringWriter
2728
import java.io.Writer
2829
import io.mockk.mockk as stub

src/test/kotlin/io/openapiprocessor/core/writer/java/JavaDocWriterSpec.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import io.openapiprocessor.core.builder.api.endpoint
1616
import io.openapiprocessor.core.model.Documentation
1717
import io.openapiprocessor.core.model.datatypes.*
1818
import io.openapiprocessor.core.model.parameters.ParameterBase
19+
import io.openapiprocessor.core.support.datatypes.ObjectDataType
1920

2021
class JavaDocWriterSpec: StringSpec({
2122

0 commit comments

Comments
 (0)