Skip to content

Commit 2fcee40

Browse files
committed
avoid lazy attribute for Gson compatibility, also avoid function beginning with "is" for swagger Schema generation
1 parent 1c6f6cb commit 2fcee40

File tree

3 files changed

+31
-54
lines changed

3 files changed

+31
-54
lines changed

kotlin-insight-client/kotlin-insight-client-api/src/main/kotlin/com/linkedplanet/kotlininsightclient/api/impl/AbstractNameMappedRepository.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import com.linkedplanet.kotlininsightclient.api.model.InsightAttribute
3838
import com.linkedplanet.kotlininsightclient.api.model.ObjectTypeSchema
3939
import com.linkedplanet.kotlininsightclient.api.model.ObjectTypeSchemaAttribute
4040
import com.linkedplanet.kotlininsightclient.api.model.getAttribute
41+
import com.linkedplanet.kotlininsightclient.api.model.isValueAttribute
4142
import jdk.jfr.Experimental
4243
import kotlinx.coroutines.runBlocking
4344
import java.time.ZonedDateTime
@@ -86,7 +87,7 @@ abstract class AbstractNameMappedRepository<DomainType : Any>(
8687
val attributeType: ObjectTypeSchemaAttribute = attrsMap[prop.name.lowercase()] ?: return@mapNotNull null
8788
val value: Any? = prop.get(domainObject)
8889
when {
89-
attributeType.isValueAttribute -> mapValueAttribute(value, attributeType)
90+
attributeType.isValueAttribute() -> mapValueAttribute(value, attributeType)
9091

9192
attributeType is ObjectTypeSchemaAttribute.ReferenceSchema -> {
9293
val referencedObjectIds = attributeToReferencedObjectId(attributeType, value)

kotlin-insight-client/kotlin-insight-client-api/src/main/kotlin/com/linkedplanet/kotlininsightclient/api/model/InsightObjectExtensions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ fun InsightObject.isReferenceAttribute(id: InsightAttributeId): Boolean =
4444
fun InsightAttribute.isReferenceAttribute() = this is InsightAttribute.Reference
4545

4646
fun InsightObject.isValueAttribute(id: InsightAttributeId): Boolean =
47-
getAttribute(id)?.isValueAttribute ?: false
47+
getAttribute(id)?.isValueAttribute() ?: false
4848

4949
fun InsightObject.exists(id: InsightAttributeId): Boolean =
5050
getAttribute(id) != null

kotlin-insight-client/kotlin-insight-client-api/src/main/kotlin/com/linkedplanet/kotlininsightclient/api/model/Model.kt

Lines changed: 28 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -125,32 +125,6 @@ sealed class InsightAttribute(
125125
val schema: ObjectTypeSchemaAttribute?,
126126
@field:NotNull val type: AttributeTypeEnum
127127
) {
128-
val isValueAttribute: Boolean by lazy {
129-
when (this) {
130-
is Text -> true
131-
is Integer -> true
132-
is Bool -> true
133-
is DoubleNumber -> true
134-
is Select -> true
135-
is Date -> true
136-
is Time -> true
137-
is DateTime -> true
138-
is Url -> true
139-
is Email -> true
140-
is Textarea -> true
141-
is Ipaddress -> true
142-
143-
is Unknown -> false
144-
is Reference -> false
145-
is User -> false
146-
is Confluence -> false
147-
is Group -> false
148-
is Version -> false
149-
is Project -> false
150-
is Status -> false
151-
}
152-
}
153-
154128
class Text(attributeId: InsightAttributeId, val value: String?, schema: ObjectTypeSchemaAttribute?) : InsightAttribute(attributeId, schema, AttributeTypeEnum.Text)
155129
class Integer(attributeId: InsightAttributeId,val value: Int?, schema: ObjectTypeSchemaAttribute?) : InsightAttribute(attributeId, schema, AttributeTypeEnum.Integer)
156130
class Bool(attributeId: InsightAttributeId,val value: Boolean?, schema: ObjectTypeSchemaAttribute?) : InsightAttribute(attributeId, schema, AttributeTypeEnum.Bool)
@@ -262,6 +236,34 @@ sealed class InsightAttribute(
262236

263237
}
264238

239+
fun InsightAttribute.isValueAttribute() = this.type.isValueAttribute()
240+
fun ObjectTypeSchemaAttribute.isValueAttribute() = this.type.isValueAttribute()
241+
242+
fun AttributeTypeEnum.isValueAttribute(): Boolean =
243+
when (this) {
244+
AttributeTypeEnum.Text -> true
245+
AttributeTypeEnum.Integer -> true
246+
AttributeTypeEnum.Bool -> true
247+
AttributeTypeEnum.DoubleNumber -> true
248+
AttributeTypeEnum.Select -> true
249+
AttributeTypeEnum.Date -> true
250+
AttributeTypeEnum.Time -> true
251+
AttributeTypeEnum.DateTime -> true
252+
AttributeTypeEnum.Url -> true
253+
AttributeTypeEnum.Email -> true
254+
AttributeTypeEnum.Textarea -> true
255+
AttributeTypeEnum.Ipaddress -> true
256+
257+
AttributeTypeEnum.Unknown -> false
258+
AttributeTypeEnum.Reference -> false
259+
AttributeTypeEnum.User -> false
260+
AttributeTypeEnum.Confluence -> false
261+
AttributeTypeEnum.Group -> false
262+
AttributeTypeEnum.Version -> false
263+
AttributeTypeEnum.Project -> false
264+
AttributeTypeEnum.Status -> false
265+
}
266+
265267
enum class AttributeTypeEnum {
266268
Text,
267269
Integer,
@@ -330,32 +332,6 @@ sealed class ObjectTypeSchemaAttribute(
330332
@field:NotNull val type: AttributeTypeEnum
331333
) {
332334

333-
val isValueAttribute: Boolean by lazy {
334-
when(this){
335-
is TextSchema -> true
336-
is IntegerSchema -> true
337-
is BoolSchema -> true
338-
is DoubleNumberSchema -> true
339-
is SelectSchema -> true
340-
is DateSchema -> true
341-
is TimeSchema -> true
342-
is DateTimeSchema -> true
343-
is UrlSchema -> true
344-
is EmailSchema -> true
345-
is TextareaSchema -> true
346-
is IpaddressSchema -> true
347-
348-
is UnknownSchema -> false
349-
is ReferenceSchema -> false
350-
is UserSchema -> false
351-
is ConfluenceSchema -> false
352-
is GroupSchema -> false
353-
is VersionSchema -> false
354-
is ProjectSchema -> false
355-
is StatusSchema -> false
356-
}
357-
}
358-
359335
class SelectSchema(
360336
id: InsightAttributeId,
361337
name: String,

0 commit comments

Comments
 (0)