1
1
package com.cjbooms.fabrikt.util
2
2
3
3
import com.cjbooms.fabrikt.generators.MutableSettings
4
- import com.cjbooms.fabrikt.model.EnclosingSchemaInfo
5
- import com.cjbooms.fabrikt.model.EnclosingSchemaInfoName
6
- import com.cjbooms.fabrikt.model.EnclosingSchemaInfoOasModel
7
4
import com.cjbooms.fabrikt.model.SchemaInfo
8
5
import com.cjbooms.fabrikt.util.KaizenParserExtensions.safeName
9
6
import com.cjbooms.fabrikt.util.NormalisedString.toModelClassName
@@ -26,11 +23,11 @@ object ModelNameRegistry {
26
23
*/
27
24
private fun register (
28
25
schema : Schema ,
29
- enclosingSchema : EnclosingSchemaInfo ? = null,
26
+ enclosingSchema : Schema ? = null,
30
27
valueSuffix : Boolean = false,
31
28
schemaInfoName : String? = null,
32
29
): String {
33
- val modelClassName = schema.toModelClassName(schemaInfoName, enclosingSchema?.toModelClassName() , valueSuffix)
30
+ val modelClassName = schema.toModelClassName(schemaInfoName, enclosingSchema, valueSuffix)
34
31
var suggestion = modelClassName
35
32
while (allocatedNames.contains(suggestion)) {
36
33
suggestion + = SUFFIX
@@ -49,10 +46,11 @@ object ModelNameRegistry {
49
46
50
47
private fun Schema.toModelClassName (
51
48
schemaInfoName : String? = null,
52
- enclosingClassName : String ? = null,
49
+ enclosingSchema : Schema ? = null,
53
50
valueSuffix : Boolean = false,
54
51
): String = buildString {
55
- if (enclosingClassName != null ) {
52
+ val enclosingClassName = enclosingSchema?.toModelClassName()
53
+ if (enclosingClassName != null && enclosingSchema.type != " array" ) {
56
54
append(enclosingClassName)
57
55
}
58
56
val modelClassName = schemaInfoName?.toModelClassName() ? : safeName().toModelClassName()
@@ -64,20 +62,13 @@ object ModelNameRegistry {
64
62
append(modelClassNameSuffix)
65
63
}
66
64
67
- private fun EnclosingSchemaInfo.toModelClassName () =
68
- when (this ) {
69
- is EnclosingSchemaInfoName -> this .name
70
- is EnclosingSchemaInfoOasModel -> this .schema.toModelClassName()
71
- else -> " "
72
- }
73
-
74
65
private fun resolveTag (
75
66
schema : Schema ,
76
- enclosingSchema : EnclosingSchemaInfo ? = null,
67
+ enclosingSchema : Schema ? = null,
77
68
valueSuffix : Boolean = false,
78
69
schemaInfoName : String? = null,
79
70
): String =
80
- resolveTag(schema, schema.toModelClassName(schemaInfoName, enclosingSchema?.toModelClassName() , valueSuffix))
71
+ resolveTag(schema, schema.toModelClassName(schemaInfoName, enclosingSchema, valueSuffix))
81
72
82
73
private fun resolveTag (schema : Schema , modelClassName : String ): String {
83
74
val overlay = Overlay .of(schema)
@@ -92,7 +83,7 @@ object ModelNameRegistry {
92
83
93
84
fun getOrRegister (
94
85
schema : Schema ,
95
- enclosingSchema : EnclosingSchemaInfo ? = null,
86
+ enclosingSchema : Schema ? = null,
96
87
valueSuffix : Boolean = false,
97
88
) = this [resolveTag(schema, enclosingSchema, valueSuffix)]
98
89
.getOrElse { register(schema, enclosingSchema, valueSuffix) }
0 commit comments