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

Commit 59a2442

Browse files
authored
Merge pull request #31 from openapi-processor/generic-parameter
preserve and handle generic wildcard parameter, resolves #30
2 parents 3ec64a7 + b352a38 commit 59a2442

File tree

5 files changed

+9
-5
lines changed

5 files changed

+9
-5
lines changed

src/main/antlr/To.g4

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ typeArgumentList
4141
typeArgument
4242
: type
4343
| '?'
44-
| .*?
4544
;
4645

4746

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ open class MappedDataType(
4444
}
4545

4646
override fun getImports(): Set<String> {
47-
return setOf("${getPackageName()}.$type") + genericTypes
47+
return setOf("${getPackageName()}.$type") + genericTypes.filter { it != "?" }
4848
}
4949

5050
private fun getGenericTypeNames(): List<String> {

src/main/kotlin/io/openapiprocessor/core/processor/mapping/v2/parser/ToExtractor.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,12 @@ class ToExtractor: ToBaseListener() {
3535
ctx.typeArguments ()
3636
?.typeArgumentList ()
3737
?.typeArgument ()
38-
?.filter { it.type() != null }
3938
?.forEach {
40-
typeArguments.add(it.type ().text)
39+
if (it.text == "?") {
40+
typeArguments.add("?")
41+
} else if (it.type() != null) {
42+
typeArguments.add(it.type ().text)
43+
}
4144
}
4245
}
4346

src/test/groovy/com/github/hauner/openapi/core/model/datatypes/MappedDataTypeSpec.groovy

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class MappedDataTypeSpec extends Specification {
3232
where:
3333
generics | typeName
3434
[] | 'Foo'
35+
['?'] | 'Foo<?>'
3536
['java.lang.String'] | 'Foo<String>'
3637
['java.lang.String', 'java.lang.String'] | 'Foo<String, String>'
3738
}
@@ -46,6 +47,7 @@ class MappedDataTypeSpec extends Specification {
4647
where:
4748
generics | imports
4849
[] | ['model.Foo']
50+
['?'] | ['model.Foo']
4951
['java.lang.String'] | ['model.Foo', 'java.lang.String']
5052
['java.lang.String', 'java.lang.String'] | ['model.Foo', 'java.lang.String']
5153
}

src/test/groovy/io/openapiprocessor/core/processor/mapping/v2/parser/ToParserSpec.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class ToParserSpec extends Specification {
3535
'io.openapiprocessor.Foo' | 'io.openapiprocessor.Foo' | []
3636
' io . openapiprocessor . Foo ' | 'io.openapiprocessor.Foo' | []
3737
'A<>' | 'A' | []
38-
'A<?>' | 'A' | []
38+
'A<?>' | 'A' | ['?']
3939
'A<b.B, c.C>' | 'A' | ['b.B', 'c.C']
4040
'A<B, C>' | 'A' | ['B', 'C']
4141
}

0 commit comments

Comments
 (0)