-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAdditionalPropertiesReference.kt
More file actions
134 lines (116 loc) · 4.34 KB
/
AdditionalPropertiesReference.kt
File metadata and controls
134 lines (116 loc) · 4.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*****************************************************************************
** C A U T I O N **
** This file is auto-generated! **
** If you want to make changes, please see the README.md file. **
** Please do not edit this file directly! **
*****************************************************************************/
package de.lancom.openapi.parser.entity
import tools.jackson.databind.annotation.JsonDeserialize
import tools.jackson.databind.annotation.JsonSerialize
import de.lancom.openapi.common.types.*
import de.lancom.openapi.common.util.*
import de.lancom.openapi.parser.field.Field
import de.lancom.openapi.parser.ref.Instance
import de.lancom.openapi.parser.ref.Reference
// hint:9A1BF04C
@Suppress("PropertyName")
@JsonSerialize(using = AdditionalProperties.Companion.Serializer::class)
@JsonDeserialize(using = AdditionalProperties.Companion.Deserializer::class)
data class AdditionalPropertiesReference(
val _reference: Field<Reference<Schema>?> = Field.unset(),
) : AdditionalProperties {
///////////////////////
//
// reference
//
///////////////////////
// hint:3A7F9B2E
val reference: Reference<Schema>?
get() = _reference.orNull
// hint:F0C48D71
fun setReferenceField(reference: Field<Reference<Schema>?>): AdditionalPropertiesReference {
return copy(_reference = reference)
}
// hint:8E56A4D9
fun updateReferenceField(updater: (Field<Reference<Schema>?>) -> Field<Reference<Schema>?>): AdditionalPropertiesReference {
return setReferenceField(updater(_reference))
}
// hint:B1D730FC
fun updateReference(updater: (Reference<Schema>?) -> Reference<Schema>?): AdditionalPropertiesReference {
return updateReferenceField { field ->
field.flatMap { value ->
Field(updater(value))
}
}
}
// hint:6542E98A
fun mergeReferenceField(referenceFieldToMerge: Field<Reference<Schema>?>): AdditionalPropertiesReference {
return mergeReference(referenceFieldToMerge.orNull)
}
// hint:A8BC6F23
fun mergeReference(referenceToMerge: Reference<Schema>?): AdditionalPropertiesReference {
return if (referenceToMerge == null) {
this
} else {
val oldReference = _reference.orNull
if (oldReference == null) {
setReferenceField(Field(referenceToMerge))
} else {
// hint:2F684DAC
setReference(referenceToMerge)
}
}
}
// hint:87B3E19C
fun setReference(reference: Reference<Schema>?): AdditionalPropertiesReference {
return setReferenceField(Field(reference))
}
// hint:D465F782
fun unsetReference(): AdditionalPropertiesReference {
return setReferenceField(Field.unset())
}
// hint:47C9A0F6
fun addReference(reference: Reference<Schema>): AdditionalPropertiesReference {
if (this.reference != null) {
throw IllegalStateException("Field reference of Entity AdditionalPropertiesReference is already set to '${this.reference}', refused to add new value '$reference'")
}
return setReference(reference)
}
// hint:6A81E3FD
override val entityDescriptor: EntityDescriptor by lazy {
EntityDescriptor(
entity = this,
jsonNode = null,
map = mapOf(
),
flatMap = listOf(
),
flatten = listOf(
_reference,
),
order = emptyList(),
)
}
// hint:49FE6A6F
override fun toString(): String {
return this.toYamlString(ignoreOrder = false)
}
// hint:A0E5F382
override fun mergeEntity(other: Entity?): AdditionalPropertiesReference {
return when (other) {
null ->
this
is AdditionalPropertiesReference ->
merge(other)
else ->
TODO()
}
}
// hint:716BFD54
fun merge(other: AdditionalProperties?): AdditionalPropertiesReference {
if (other == null) return this
if (other !is AdditionalPropertiesReference) TODO()
return this
.mergeReferenceField(other._reference)
}
}