@@ -32,8 +32,11 @@ class GsonUtil {
3232 companion object {
3333 fun gsonBuilder (): GsonBuilder = GsonBuilder ()
3434 .registerTypeAdapter(ZonedDateTime ::class .java, zonedDateTimeAdapter)
35- .registerTypeAdapterFactory(insightAttributeAdapter)
36- .registerTypeAdapterFactory(insightSchemaAttributeAdapter)
35+ .registerTypeAdapterFactory(SealedTypeAdapterFactory .of(InsightAttribute ::class ))
36+ .registerTypeAdapterFactory(SealedTypeAdapterFactory .of(ObjectTypeSchemaAttribute ::class ,
37+ typeFieldName = " type" ,
38+ jsonNameForType = { it.simpleName!! .removeSuffix(" Schema" ) to it }
39+ ))
3740
3841
3942 private val zonedDateTimeAdapter = object : TypeAdapter <ZonedDateTime >() {
@@ -45,52 +48,5 @@ class GsonUtil {
4548 return ZonedDateTime .parse(`in `.nextString())
4649 }
4750 }
48-
49- private val insightAttributeAdapter =
50- RuntimeTypeAdapterFactory .of(InsightAttribute ::class .java, " type" , true )
51- .registerSubtype(InsightAttribute .Text ::class .java)
52- .registerSubtype(InsightAttribute .Integer ::class .java)
53- .registerSubtype(InsightAttribute .Bool ::class .java)
54- .registerSubtype(InsightAttribute .DoubleNumber ::class .java)
55- .registerSubtype(InsightAttribute .Select ::class .java)
56- .registerSubtype(InsightAttribute .Date ::class .java)
57- .registerSubtype(InsightAttribute .Time ::class .java)
58- .registerSubtype(InsightAttribute .DateTime ::class .java)
59- .registerSubtype(InsightAttribute .Url ::class .java)
60- .registerSubtype(InsightAttribute .Email ::class .java)
61- .registerSubtype(InsightAttribute .Textarea ::class .java)
62- .registerSubtype(InsightAttribute .Ipaddress ::class .java)
63- .registerSubtype(InsightAttribute .Reference ::class .java)
64- .registerSubtype(InsightAttribute .User ::class .java)
65- .registerSubtype(InsightAttribute .Confluence ::class .java)
66- .registerSubtype(InsightAttribute .Group ::class .java)
67- .registerSubtype(InsightAttribute .Version ::class .java)
68- .registerSubtype(InsightAttribute .Project ::class .java)
69- .registerSubtype(InsightAttribute .Status ::class .java)
70- .registerSubtype(InsightAttribute .Unknown ::class .java)!!
71-
72- private val insightSchemaAttributeAdapter =
73- RuntimeTypeAdapterFactory .of(ObjectTypeSchemaAttribute ::class .java, " type" , true )
74- .registerSubtype(ObjectTypeSchemaAttribute .TextSchema ::class .java, " Text" )
75- .registerSubtype(ObjectTypeSchemaAttribute .IntegerSchema ::class .java, " Integer" )
76- .registerSubtype(ObjectTypeSchemaAttribute .BoolSchema ::class .java, " Bool" )
77- .registerSubtype(ObjectTypeSchemaAttribute .DoubleNumberSchema ::class .java, " DoubleNumber" )
78- .registerSubtype(ObjectTypeSchemaAttribute .SelectSchema ::class .java, " Select" )
79- .registerSubtype(ObjectTypeSchemaAttribute .DateSchema ::class .java, " Date" )
80- .registerSubtype(ObjectTypeSchemaAttribute .TimeSchema ::class .java, " Time" )
81- .registerSubtype(ObjectTypeSchemaAttribute .DateTimeSchema ::class .java, " DateTime" )
82- .registerSubtype(ObjectTypeSchemaAttribute .UrlSchema ::class .java, " Url" )
83- .registerSubtype(ObjectTypeSchemaAttribute .EmailSchema ::class .java, " Email" )
84- .registerSubtype(ObjectTypeSchemaAttribute .TextareaSchema ::class .java, " Textarea" )
85- .registerSubtype(ObjectTypeSchemaAttribute .IpaddressSchema ::class .java, " Ipaddress" )
86- .registerSubtype(ObjectTypeSchemaAttribute .ReferenceSchema ::class .java, " Reference" )
87- .registerSubtype(ObjectTypeSchemaAttribute .UserSchema ::class .java, " User" )
88- .registerSubtype(ObjectTypeSchemaAttribute .ConfluenceSchema ::class .java, " Confluence" )
89- .registerSubtype(ObjectTypeSchemaAttribute .GroupSchema ::class .java, " Group" )
90- .registerSubtype(ObjectTypeSchemaAttribute .VersionSchema ::class .java, " Version" )
91- .registerSubtype(ObjectTypeSchemaAttribute .ProjectSchema ::class .java, " Project" )
92- .registerSubtype(ObjectTypeSchemaAttribute .StatusSchema ::class .java, " Status" )
93- .registerSubtype(ObjectTypeSchemaAttribute .UnknownSchema ::class .java, " Unknown" )
9451 }
95-
9652}
0 commit comments