Coverage Summary for Class: TweetSerializer (com.ghost.serialization.integration.model)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| TweetSerializer |
100%
(1/1)
|
76.9%
(10/13)
|
35.6%
(115/323)
|
57.7%
(315/546)
|
50%
(1412/2823)
|
@file:OptIn(InternalGhostApi::class)
package com.ghost.serialization.integration.model
import com.ghost.serialization.InternalGhostApi
import com.ghost.serialization.contract.GhostSerializer
import com.ghost.serialization.parser.GhostJsonFlatReader
import com.ghost.serialization.parser.GhostJsonReader
import com.ghost.serialization.parser.GhostJsonStringReader
import com.ghost.serialization.parser.JsonReaderOptions
import com.ghost.serialization.parser.beginObject
import com.ghost.serialization.parser.consumeNull
import com.ghost.serialization.parser.endObject
import com.ghost.serialization.parser.isNextNullValue
import com.ghost.serialization.parser.nextBoolean
import com.ghost.serialization.parser.nextInt
import com.ghost.serialization.parser.nextLong
import com.ghost.serialization.parser.nextString
import com.ghost.serialization.parser.selectNameAndConsume
import com.ghost.serialization.parser.skipValue
import com.ghost.serialization.writer.GhostJsonFlatWriter
import com.ghost.serialization.writer.GhostJsonStringWriter
import com.ghost.serialization.writer.GhostJsonWriter
import okio.ByteString
import okio.ByteString.Companion.encodeUtf8
/**
* High-performance serializer for [Tweet].
* Generated by GhostSerialization. Do not modify manually.
*/
public object TweetSerializer : GhostSerializer<Tweet> {
override val typeName: String = "Tweet"
private val OPTIONS: JsonReaderOptions =
JsonReaderOptions.of(8, 31, 128, true, "metadata", "created_at", "id", "id_str", "text", "source", "truncated", "in_reply_to_status_id", "in_reply_to_status_id_str", "in_reply_to_user_id", "in_reply_to_user_id_str", "in_reply_to_screen_name", "user", "geo", "coordinates", "place", "contributors", "retweet_count", "favorite_count", "entities", "favorited", "retweeted", "possibly_sensitive", "lang", "retweeted_status")
private val H_CONTRIBUTORS: ByteString = "\"contributors\":".encodeUtf8()
private val HS_CONTRIBUTORS: String = "\"contributors\":"
private val H_COORDINATES: ByteString = "\"coordinates\":".encodeUtf8()
private val HS_COORDINATES: String = "\"coordinates\":"
private val H_CREATED_AT: ByteString = "\"created_at\":".encodeUtf8()
private val HS_CREATED_AT: String = "\"created_at\":"
private val H_ENTITIES: ByteString = "\"entities\":".encodeUtf8()
private val HS_ENTITIES: String = "\"entities\":"
private val H_FAVORITE_COUNT: ByteString = "\"favorite_count\":".encodeUtf8()
private val HS_FAVORITE_COUNT: String = "\"favorite_count\":"
private val H_FAVORITED: ByteString = "\"favorited\":".encodeUtf8()
private val HS_FAVORITED: String = "\"favorited\":"
private val H_GEO: ByteString = "\"geo\":".encodeUtf8()
private val HS_GEO: String = "\"geo\":"
private val H_ID: ByteString = "\"id\":".encodeUtf8()
private val HS_ID: String = "\"id\":"
private val H_ID_STR: ByteString = "\"id_str\":".encodeUtf8()
private val HS_ID_STR: String = "\"id_str\":"
private val H_IN_REPLY_TO_SCREEN_NAME: ByteString = "\"in_reply_to_screen_name\":".encodeUtf8()
private val HS_IN_REPLY_TO_SCREEN_NAME: String = "\"in_reply_to_screen_name\":"
private val H_IN_REPLY_TO_STATUS_ID: ByteString = "\"in_reply_to_status_id\":".encodeUtf8()
private val HS_IN_REPLY_TO_STATUS_ID: String = "\"in_reply_to_status_id\":"
private val H_IN_REPLY_TO_STATUS_ID_STR: ByteString =
"\"in_reply_to_status_id_str\":".encodeUtf8()
private val HS_IN_REPLY_TO_STATUS_ID_STR: String = "\"in_reply_to_status_id_str\":"
private val H_IN_REPLY_TO_USER_ID: ByteString = "\"in_reply_to_user_id\":".encodeUtf8()
private val HS_IN_REPLY_TO_USER_ID: String = "\"in_reply_to_user_id\":"
private val H_IN_REPLY_TO_USER_ID_STR: ByteString = "\"in_reply_to_user_id_str\":".encodeUtf8()
private val HS_IN_REPLY_TO_USER_ID_STR: String = "\"in_reply_to_user_id_str\":"
private val H_LANG: ByteString = "\"lang\":".encodeUtf8()
private val HS_LANG: String = "\"lang\":"
private val H_METADATA: ByteString = "\"metadata\":".encodeUtf8()
private val HS_METADATA: String = "\"metadata\":"
private val H_PLACE: ByteString = "\"place\":".encodeUtf8()
private val HS_PLACE: String = "\"place\":"
private val H_POSSIBLY_SENSITIVE: ByteString = "\"possibly_sensitive\":".encodeUtf8()
private val HS_POSSIBLY_SENSITIVE: String = "\"possibly_sensitive\":"
private val H_RETWEET_COUNT: ByteString = "\"retweet_count\":".encodeUtf8()
private val HS_RETWEET_COUNT: String = "\"retweet_count\":"
private val H_RETWEETED: ByteString = "\"retweeted\":".encodeUtf8()
private val HS_RETWEETED: String = "\"retweeted\":"
private val H_RETWEETED_STATUS: ByteString = "\"retweeted_status\":".encodeUtf8()
private val HS_RETWEETED_STATUS: String = "\"retweeted_status\":"
private val H_SOURCE: ByteString = "\"source\":".encodeUtf8()
private val HS_SOURCE: String = "\"source\":"
private val H_TEXT: ByteString = "\"text\":".encodeUtf8()
private val HS_TEXT: String = "\"text\":"
private val H_TRUNCATED: ByteString = "\"truncated\":".encodeUtf8()
private val HS_TRUNCATED: String = "\"truncated\":"
private val H_USER: ByteString = "\"user\":".encodeUtf8()
private val HS_USER: String = "\"user\":"
private const val MASK_METADATA: Long = 1L
private const val MASK_CREATEDAT: Long = 2L
private const val MASK_ID: Long = 4L
private const val MASK_IDSTR: Long = 8L
private const val MASK_TEXT: Long = 16L
private const val MASK_SOURCE: Long = 32L
private const val MASK_TRUNCATED: Long = 64L
private const val MASK_INREPLYTOSTATUSID: Long = 128L
private const val MASK_INREPLYTOSTATUSIDSTR: Long = 256L
private const val MASK_INREPLYTOUSERID: Long = 512L
private const val MASK_INREPLYTOUSERIDSTR: Long = 1024L
private const val MASK_INREPLYTOSCREENNAME: Long = 2048L
private const val MASK_USER: Long = 4096L
private const val MASK_GEO: Long = 8192L
private const val MASK_COORDINATES: Long = 16384L
private const val MASK_PLACE: Long = 32768L
private const val MASK_CONTRIBUTORS: Long = 65536L
private const val MASK_RETWEETCOUNT: Long = 131072L
private const val MASK_FAVORITECOUNT: Long = 262144L
private const val MASK_ENTITIES: Long = 524288L
private const val MASK_FAVORITED: Long = 1048576L
private const val MASK_RETWEETED: Long = 2097152L
private const val MASK_POSSIBLYSENSITIVE: Long = 4194304L
private const val MASK_LANG: Long = 8388608L
private const val MASK_RETWEETEDSTATUS: Long = 16777216L
private const val MASK_REQUIRED_0: Long = 4067455L
private const val MASK_DEFAULTS_0: Long = 29486976L
private fun createInstance(
mask0: Long,
metadataValue: TweetMetadata?,
createdAtValue: String?,
idValue: Long,
idStrValue: String?,
textValue: String?,
sourceValue: String?,
truncatedValue: Boolean,
inReplyToStatusIdValue: Long?,
inReplyToStatusIdStrValue: String?,
inReplyToUserIdValue: Long?,
inReplyToUserIdStrValue: String?,
inReplyToScreenNameValue: String?,
userValue: User?,
geoValue: String?,
coordinatesValue: String?,
placeValue: String?,
contributorsValue: String?,
retweetCountValue: Int,
favoriteCountValue: Int,
entitiesValue: TweetEntities?,
favoritedValue: Boolean,
retweetedValue: Boolean,
possiblySensitiveValue: Boolean,
langValue: String?,
retweetedStatusValue: Tweet?,
): Tweet {
val result = Tweet(
metadata = metadataValue!!,
createdAt = createdAtValue!!,
id = idValue,
idStr = idStrValue!!,
text = textValue!!,
source = sourceValue!!,
truncated = truncatedValue,
user = userValue!!,
retweetCount = retweetCountValue,
favoriteCount = favoriteCountValue,
entities = entitiesValue!!,
favorited = favoritedValue,
retweeted = retweetedValue,
)
if ((mask0 and MASK_DEFAULTS_0) != 0L) {
return result.copy(
inReplyToStatusId = if ((mask0 and MASK_INREPLYTOSTATUSID) != 0L) inReplyToStatusIdValue else result.inReplyToStatusId,
inReplyToStatusIdStr = if ((mask0 and MASK_INREPLYTOSTATUSIDSTR) != 0L) inReplyToStatusIdStrValue else result.inReplyToStatusIdStr,
inReplyToUserId = if ((mask0 and MASK_INREPLYTOUSERID) != 0L) inReplyToUserIdValue else result.inReplyToUserId,
inReplyToUserIdStr = if ((mask0 and MASK_INREPLYTOUSERIDSTR) != 0L) inReplyToUserIdStrValue else result.inReplyToUserIdStr,
inReplyToScreenName = if ((mask0 and MASK_INREPLYTOSCREENNAME) != 0L) inReplyToScreenNameValue else result.inReplyToScreenName,
geo = if ((mask0 and MASK_GEO) != 0L) geoValue else result.geo,
coordinates = if ((mask0 and MASK_COORDINATES) != 0L) coordinatesValue else result.coordinates,
place = if ((mask0 and MASK_PLACE) != 0L) placeValue else result.place,
contributors = if ((mask0 and MASK_CONTRIBUTORS) != 0L) contributorsValue else result.contributors,
possiblySensitive = if ((mask0 and MASK_POSSIBLYSENSITIVE) != 0L) possiblySensitiveValue else result.possiblySensitive,
lang = if ((mask0 and MASK_LANG) != 0L) langValue else result.lang,
retweetedStatus = if ((mask0 and MASK_RETWEETEDSTATUS) != 0L) retweetedStatusValue else result.retweetedStatus,
)
} else {
return result
}
}
private fun validateRequiredFields(mask0: Long, reader: GhostJsonReader) {
if ((mask0 and MASK_REQUIRED_0) != MASK_REQUIRED_0) {
if ((mask0 and MASK_METADATA) == 0L) {
reader.throwError("Required field 'metadata' missing in JSON")
} else if ((mask0 and MASK_CREATEDAT) == 0L) {
reader.throwError("Required field 'created_at' missing in JSON")
} else if ((mask0 and MASK_ID) == 0L) {
reader.throwError("Required field 'id' missing in JSON")
} else if ((mask0 and MASK_IDSTR) == 0L) {
reader.throwError("Required field 'id_str' missing in JSON")
} else if ((mask0 and MASK_TEXT) == 0L) {
reader.throwError("Required field 'text' missing in JSON")
} else if ((mask0 and MASK_SOURCE) == 0L) {
reader.throwError("Required field 'source' missing in JSON")
} else if ((mask0 and MASK_TRUNCATED) == 0L) {
reader.throwError("Required field 'truncated' missing in JSON")
} else if ((mask0 and MASK_USER) == 0L) {
reader.throwError("Required field 'user' missing in JSON")
} else if ((mask0 and MASK_RETWEETCOUNT) == 0L) {
reader.throwError("Required field 'retweet_count' missing in JSON")
} else if ((mask0 and MASK_FAVORITECOUNT) == 0L) {
reader.throwError("Required field 'favorite_count' missing in JSON")
} else if ((mask0 and MASK_ENTITIES) == 0L) {
reader.throwError("Required field 'entities' missing in JSON")
} else if ((mask0 and MASK_FAVORITED) == 0L) {
reader.throwError("Required field 'favorited' missing in JSON")
} else if ((mask0 and MASK_RETWEETED) == 0L) {
reader.throwError("Required field 'retweeted' missing in JSON")
}
}
}
/**
* Robust deserialization for [Tweet].
*/
override fun deserialize(reader: GhostJsonReader): Tweet {
var metadataValue: TweetMetadata? = null
var createdAtValue: String? = null
var idValue: Long = 0L
var idStrValue: String? = null
var textValue: String? = null
var sourceValue: String? = null
var truncatedValue: Boolean = false
var inReplyToStatusIdValue: Long? = null
var inReplyToStatusIdStrValue: String? = null
var inReplyToUserIdValue: Long? = null
var inReplyToUserIdStrValue: String? = null
var inReplyToScreenNameValue: String? = null
var userValue: User? = null
var geoValue: String? = null
var coordinatesValue: String? = null
var placeValue: String? = null
var contributorsValue: String? = null
var retweetCountValue: Int = 0
var favoriteCountValue: Int = 0
var entitiesValue: TweetEntities? = null
var favoritedValue: Boolean = false
var retweetedValue: Boolean = false
var possiblySensitiveValue: Boolean = false
var langValue: String? = null
var retweetedStatusValue: Tweet? = null
var mask0 = 0L
reader.beginObject()
while (true) {
val index = reader.selectNameAndConsume(OPTIONS)
when (index) {
0 -> {
metadataValue = TweetMetadataSerializer.deserialize(reader)
mask0 = mask0 or MASK_METADATA
}
1 -> {
createdAtValue = reader.nextString()
mask0 = mask0 or MASK_CREATEDAT
}
2 -> {
idValue = reader.nextLong()
mask0 = mask0 or MASK_ID
}
3 -> {
idStrValue = reader.nextString()
mask0 = mask0 or MASK_IDSTR
}
4 -> {
textValue = reader.nextString()
mask0 = mask0 or MASK_TEXT
}
5 -> {
sourceValue = reader.nextString()
mask0 = mask0 or MASK_SOURCE
}
6 -> {
truncatedValue = reader.nextBoolean()
mask0 = mask0 or MASK_TRUNCATED
}
7 -> {
inReplyToStatusIdValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextLong()
mask0 = mask0 or MASK_INREPLYTOSTATUSID
}
8 -> {
inReplyToStatusIdStrValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_INREPLYTOSTATUSIDSTR
}
9 -> {
inReplyToUserIdValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextLong()
mask0 = mask0 or MASK_INREPLYTOUSERID
}
10 -> {
inReplyToUserIdStrValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_INREPLYTOUSERIDSTR
}
11 -> {
inReplyToScreenNameValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_INREPLYTOSCREENNAME
}
12 -> {
userValue = UserSerializer.deserialize(reader)
mask0 = mask0 or MASK_USER
}
13 -> {
geoValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_GEO
}
14 -> {
coordinatesValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_COORDINATES
}
15 -> {
placeValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_PLACE
}
16 -> {
contributorsValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_CONTRIBUTORS
}
17 -> {
retweetCountValue = reader.nextInt()
mask0 = mask0 or MASK_RETWEETCOUNT
}
18 -> {
favoriteCountValue = reader.nextInt()
mask0 = mask0 or MASK_FAVORITECOUNT
}
19 -> {
entitiesValue = TweetEntitiesSerializer.deserialize(reader)
mask0 = mask0 or MASK_ENTITIES
}
20 -> {
favoritedValue = reader.nextBoolean()
mask0 = mask0 or MASK_FAVORITED
}
21 -> {
retweetedValue = reader.nextBoolean()
mask0 = mask0 or MASK_RETWEETED
}
22 -> {
possiblySensitiveValue = reader.nextBoolean()
mask0 = mask0 or MASK_POSSIBLYSENSITIVE
}
23 -> {
langValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_LANG
}
24 -> {
retweetedStatusValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else TweetSerializer.deserialize(reader)
mask0 = mask0 or MASK_RETWEETEDSTATUS
}
-1 -> break
-2 -> {
reader.skipValue()
}
}
}
reader.endObject()
validateRequiredFields(mask0, reader)
return createInstance(mask0, metadataValue, createdAtValue, idValue, idStrValue, textValue, sourceValue, truncatedValue, inReplyToStatusIdValue, inReplyToStatusIdStrValue, inReplyToUserIdValue, inReplyToUserIdStrValue, inReplyToScreenNameValue, userValue, geoValue, coordinatesValue, placeValue, contributorsValue, retweetCountValue, favoriteCountValue, entitiesValue, favoritedValue, retweetedValue, possiblySensitiveValue, langValue, retweetedStatusValue)
}
private fun validateRequiredFields(mask0: Long, reader: GhostJsonFlatReader) {
if ((mask0 and MASK_REQUIRED_0) != MASK_REQUIRED_0) {
if ((mask0 and MASK_METADATA) == 0L) {
reader.throwError("Required field 'metadata' missing in JSON")
} else if ((mask0 and MASK_CREATEDAT) == 0L) {
reader.throwError("Required field 'created_at' missing in JSON")
} else if ((mask0 and MASK_ID) == 0L) {
reader.throwError("Required field 'id' missing in JSON")
} else if ((mask0 and MASK_IDSTR) == 0L) {
reader.throwError("Required field 'id_str' missing in JSON")
} else if ((mask0 and MASK_TEXT) == 0L) {
reader.throwError("Required field 'text' missing in JSON")
} else if ((mask0 and MASK_SOURCE) == 0L) {
reader.throwError("Required field 'source' missing in JSON")
} else if ((mask0 and MASK_TRUNCATED) == 0L) {
reader.throwError("Required field 'truncated' missing in JSON")
} else if ((mask0 and MASK_USER) == 0L) {
reader.throwError("Required field 'user' missing in JSON")
} else if ((mask0 and MASK_RETWEETCOUNT) == 0L) {
reader.throwError("Required field 'retweet_count' missing in JSON")
} else if ((mask0 and MASK_FAVORITECOUNT) == 0L) {
reader.throwError("Required field 'favorite_count' missing in JSON")
} else if ((mask0 and MASK_ENTITIES) == 0L) {
reader.throwError("Required field 'entities' missing in JSON")
} else if ((mask0 and MASK_FAVORITED) == 0L) {
reader.throwError("Required field 'favorited' missing in JSON")
} else if ((mask0 and MASK_RETWEETED) == 0L) {
reader.throwError("Required field 'retweeted' missing in JSON")
}
}
}
/**
* Robust deserialization for [Tweet].
*/
override fun deserialize(reader: GhostJsonFlatReader): Tweet {
var metadataValue: TweetMetadata? = null
var createdAtValue: String? = null
var idValue: Long = 0L
var idStrValue: String? = null
var textValue: String? = null
var sourceValue: String? = null
var truncatedValue: Boolean = false
var inReplyToStatusIdValue: Long? = null
var inReplyToStatusIdStrValue: String? = null
var inReplyToUserIdValue: Long? = null
var inReplyToUserIdStrValue: String? = null
var inReplyToScreenNameValue: String? = null
var userValue: User? = null
var geoValue: String? = null
var coordinatesValue: String? = null
var placeValue: String? = null
var contributorsValue: String? = null
var retweetCountValue: Int = 0
var favoriteCountValue: Int = 0
var entitiesValue: TweetEntities? = null
var favoritedValue: Boolean = false
var retweetedValue: Boolean = false
var possiblySensitiveValue: Boolean = false
var langValue: String? = null
var retweetedStatusValue: Tweet? = null
var mask0 = 0L
reader.beginObject()
while (true) {
val index = reader.selectNameAndConsume(OPTIONS)
when (index) {
0 -> {
metadataValue = TweetMetadataSerializer.deserialize(reader)
mask0 = mask0 or MASK_METADATA
}
1 -> {
createdAtValue = reader.nextString()
mask0 = mask0 or MASK_CREATEDAT
}
2 -> {
idValue = reader.nextLong()
mask0 = mask0 or MASK_ID
}
3 -> {
idStrValue = reader.nextString()
mask0 = mask0 or MASK_IDSTR
}
4 -> {
textValue = reader.nextString()
mask0 = mask0 or MASK_TEXT
}
5 -> {
sourceValue = reader.nextString()
mask0 = mask0 or MASK_SOURCE
}
6 -> {
truncatedValue = reader.nextBoolean()
mask0 = mask0 or MASK_TRUNCATED
}
7 -> {
inReplyToStatusIdValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextLong()
mask0 = mask0 or MASK_INREPLYTOSTATUSID
}
8 -> {
inReplyToStatusIdStrValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_INREPLYTOSTATUSIDSTR
}
9 -> {
inReplyToUserIdValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextLong()
mask0 = mask0 or MASK_INREPLYTOUSERID
}
10 -> {
inReplyToUserIdStrValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_INREPLYTOUSERIDSTR
}
11 -> {
inReplyToScreenNameValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_INREPLYTOSCREENNAME
}
12 -> {
userValue = UserSerializer.deserialize(reader)
mask0 = mask0 or MASK_USER
}
13 -> {
geoValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_GEO
}
14 -> {
coordinatesValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_COORDINATES
}
15 -> {
placeValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_PLACE
}
16 -> {
contributorsValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_CONTRIBUTORS
}
17 -> {
retweetCountValue = reader.nextInt()
mask0 = mask0 or MASK_RETWEETCOUNT
}
18 -> {
favoriteCountValue = reader.nextInt()
mask0 = mask0 or MASK_FAVORITECOUNT
}
19 -> {
entitiesValue = TweetEntitiesSerializer.deserialize(reader)
mask0 = mask0 or MASK_ENTITIES
}
20 -> {
favoritedValue = reader.nextBoolean()
mask0 = mask0 or MASK_FAVORITED
}
21 -> {
retweetedValue = reader.nextBoolean()
mask0 = mask0 or MASK_RETWEETED
}
22 -> {
possiblySensitiveValue = reader.nextBoolean()
mask0 = mask0 or MASK_POSSIBLYSENSITIVE
}
23 -> {
langValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_LANG
}
24 -> {
retweetedStatusValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else TweetSerializer.deserialize(reader)
mask0 = mask0 or MASK_RETWEETEDSTATUS
}
-1 -> break
-2 -> {
reader.skipValue()
}
}
}
reader.endObject()
validateRequiredFields(mask0, reader)
return createInstance(mask0, metadataValue, createdAtValue, idValue, idStrValue, textValue, sourceValue, truncatedValue, inReplyToStatusIdValue, inReplyToStatusIdStrValue, inReplyToUserIdValue, inReplyToUserIdStrValue, inReplyToScreenNameValue, userValue, geoValue, coordinatesValue, placeValue, contributorsValue, retweetCountValue, favoriteCountValue, entitiesValue, favoritedValue, retweetedValue, possiblySensitiveValue, langValue, retweetedStatusValue)
}
private fun validateRequiredFields(mask0: Long, reader: GhostJsonStringReader) {
if ((mask0 and MASK_REQUIRED_0) != MASK_REQUIRED_0) {
if ((mask0 and MASK_METADATA) == 0L) {
reader.throwError("Required field 'metadata' missing in JSON")
} else if ((mask0 and MASK_CREATEDAT) == 0L) {
reader.throwError("Required field 'created_at' missing in JSON")
} else if ((mask0 and MASK_ID) == 0L) {
reader.throwError("Required field 'id' missing in JSON")
} else if ((mask0 and MASK_IDSTR) == 0L) {
reader.throwError("Required field 'id_str' missing in JSON")
} else if ((mask0 and MASK_TEXT) == 0L) {
reader.throwError("Required field 'text' missing in JSON")
} else if ((mask0 and MASK_SOURCE) == 0L) {
reader.throwError("Required field 'source' missing in JSON")
} else if ((mask0 and MASK_TRUNCATED) == 0L) {
reader.throwError("Required field 'truncated' missing in JSON")
} else if ((mask0 and MASK_USER) == 0L) {
reader.throwError("Required field 'user' missing in JSON")
} else if ((mask0 and MASK_RETWEETCOUNT) == 0L) {
reader.throwError("Required field 'retweet_count' missing in JSON")
} else if ((mask0 and MASK_FAVORITECOUNT) == 0L) {
reader.throwError("Required field 'favorite_count' missing in JSON")
} else if ((mask0 and MASK_ENTITIES) == 0L) {
reader.throwError("Required field 'entities' missing in JSON")
} else if ((mask0 and MASK_FAVORITED) == 0L) {
reader.throwError("Required field 'favorited' missing in JSON")
} else if ((mask0 and MASK_RETWEETED) == 0L) {
reader.throwError("Required field 'retweeted' missing in JSON")
}
}
}
/**
* Robust deserialization for [Tweet].
*/
override fun deserialize(reader: GhostJsonStringReader): Tweet {
var metadataValue: TweetMetadata? = null
var createdAtValue: String? = null
var idValue: Long = 0L
var idStrValue: String? = null
var textValue: String? = null
var sourceValue: String? = null
var truncatedValue: Boolean = false
var inReplyToStatusIdValue: Long? = null
var inReplyToStatusIdStrValue: String? = null
var inReplyToUserIdValue: Long? = null
var inReplyToUserIdStrValue: String? = null
var inReplyToScreenNameValue: String? = null
var userValue: User? = null
var geoValue: String? = null
var coordinatesValue: String? = null
var placeValue: String? = null
var contributorsValue: String? = null
var retweetCountValue: Int = 0
var favoriteCountValue: Int = 0
var entitiesValue: TweetEntities? = null
var favoritedValue: Boolean = false
var retweetedValue: Boolean = false
var possiblySensitiveValue: Boolean = false
var langValue: String? = null
var retweetedStatusValue: Tweet? = null
var mask0 = 0L
reader.beginObject()
while (true) {
val index = reader.selectNameAndConsume(OPTIONS)
when (index) {
0 -> {
metadataValue = TweetMetadataSerializer.deserialize(reader)
mask0 = mask0 or MASK_METADATA
}
1 -> {
createdAtValue = reader.nextString()
mask0 = mask0 or MASK_CREATEDAT
}
2 -> {
idValue = reader.nextLong()
mask0 = mask0 or MASK_ID
}
3 -> {
idStrValue = reader.nextString()
mask0 = mask0 or MASK_IDSTR
}
4 -> {
textValue = reader.nextString()
mask0 = mask0 or MASK_TEXT
}
5 -> {
sourceValue = reader.nextString()
mask0 = mask0 or MASK_SOURCE
}
6 -> {
truncatedValue = reader.nextBoolean()
mask0 = mask0 or MASK_TRUNCATED
}
7 -> {
inReplyToStatusIdValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextLong()
mask0 = mask0 or MASK_INREPLYTOSTATUSID
}
8 -> {
inReplyToStatusIdStrValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_INREPLYTOSTATUSIDSTR
}
9 -> {
inReplyToUserIdValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextLong()
mask0 = mask0 or MASK_INREPLYTOUSERID
}
10 -> {
inReplyToUserIdStrValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_INREPLYTOUSERIDSTR
}
11 -> {
inReplyToScreenNameValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_INREPLYTOSCREENNAME
}
12 -> {
userValue = UserSerializer.deserialize(reader)
mask0 = mask0 or MASK_USER
}
13 -> {
geoValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_GEO
}
14 -> {
coordinatesValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_COORDINATES
}
15 -> {
placeValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_PLACE
}
16 -> {
contributorsValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_CONTRIBUTORS
}
17 -> {
retweetCountValue = reader.nextInt()
mask0 = mask0 or MASK_RETWEETCOUNT
}
18 -> {
favoriteCountValue = reader.nextInt()
mask0 = mask0 or MASK_FAVORITECOUNT
}
19 -> {
entitiesValue = TweetEntitiesSerializer.deserialize(reader)
mask0 = mask0 or MASK_ENTITIES
}
20 -> {
favoritedValue = reader.nextBoolean()
mask0 = mask0 or MASK_FAVORITED
}
21 -> {
retweetedValue = reader.nextBoolean()
mask0 = mask0 or MASK_RETWEETED
}
22 -> {
possiblySensitiveValue = reader.nextBoolean()
mask0 = mask0 or MASK_POSSIBLYSENSITIVE
}
23 -> {
langValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_LANG
}
24 -> {
retweetedStatusValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else TweetSerializer.deserialize(reader)
mask0 = mask0 or MASK_RETWEETEDSTATUS
}
-1 -> break
-2 -> {
reader.skipValue()
}
}
}
reader.endObject()
validateRequiredFields(mask0, reader)
return createInstance(mask0, metadataValue, createdAtValue, idValue, idStrValue, textValue, sourceValue, truncatedValue, inReplyToStatusIdValue, inReplyToStatusIdStrValue, inReplyToUserIdValue, inReplyToUserIdStrValue, inReplyToScreenNameValue, userValue, geoValue, coordinatesValue, placeValue, contributorsValue, retweetCountValue, favoriteCountValue, entitiesValue, favoritedValue, retweetedValue, possiblySensitiveValue, langValue, retweetedStatusValue)
}
override fun serialize(writer: GhostJsonWriter, `value`: Tweet) {
writer.beginObject()
writer.writeNameRaw(H_METADATA)
TweetMetadataSerializer.serialize(writer, value.metadata)
writer.writeField(H_CREATED_AT, value.createdAt)
writer.writeField(H_ID, value.id)
writer.writeField(H_ID_STR, value.idStr)
writer.writeField(H_TEXT, value.text)
writer.writeField(H_SOURCE, value.source)
writer.writeField(H_TRUNCATED, value.truncated)
if (value.inReplyToStatusId != null) {
writer.writeField(H_IN_REPLY_TO_STATUS_ID, value.inReplyToStatusId)
}
if (value.inReplyToStatusIdStr != null) {
writer.writeField(H_IN_REPLY_TO_STATUS_ID_STR, value.inReplyToStatusIdStr)
}
if (value.inReplyToUserId != null) {
writer.writeField(H_IN_REPLY_TO_USER_ID, value.inReplyToUserId)
}
if (value.inReplyToUserIdStr != null) {
writer.writeField(H_IN_REPLY_TO_USER_ID_STR, value.inReplyToUserIdStr)
}
if (value.inReplyToScreenName != null) {
writer.writeField(H_IN_REPLY_TO_SCREEN_NAME, value.inReplyToScreenName)
}
writer.writeNameRaw(H_USER)
UserSerializer.serialize(writer, value.user)
if (value.geo != null) {
writer.writeField(H_GEO, value.geo)
}
if (value.coordinates != null) {
writer.writeField(H_COORDINATES, value.coordinates)
}
if (value.place != null) {
writer.writeField(H_PLACE, value.place)
}
if (value.contributors != null) {
writer.writeField(H_CONTRIBUTORS, value.contributors)
}
writer.writeField(H_RETWEET_COUNT, value.retweetCount)
writer.writeField(H_FAVORITE_COUNT, value.favoriteCount)
writer.writeNameRaw(H_ENTITIES)
TweetEntitiesSerializer.serialize(writer, value.entities)
writer.writeField(H_FAVORITED, value.favorited)
writer.writeField(H_RETWEETED, value.retweeted)
writer.writeField(H_POSSIBLY_SENSITIVE, value.possiblySensitive)
if (value.lang != null) {
writer.writeField(H_LANG, value.lang)
}
if (value.retweetedStatus != null) {
writer.writeNameRaw(H_RETWEETED_STATUS)
TweetSerializer.serialize(writer, value.retweetedStatus)
}
writer.endObject()
}
override fun serialize(writer: GhostJsonFlatWriter, `value`: Tweet) {
writer.beginObject()
writer.writeNameRaw(H_METADATA)
TweetMetadataSerializer.serialize(writer, value.metadata)
writer.writeField(H_CREATED_AT, value.createdAt)
writer.writeField(H_ID, value.id)
writer.writeField(H_ID_STR, value.idStr)
writer.writeField(H_TEXT, value.text)
writer.writeField(H_SOURCE, value.source)
writer.writeField(H_TRUNCATED, value.truncated)
if (value.inReplyToStatusId != null) {
writer.writeField(H_IN_REPLY_TO_STATUS_ID, value.inReplyToStatusId)
}
if (value.inReplyToStatusIdStr != null) {
writer.writeField(H_IN_REPLY_TO_STATUS_ID_STR, value.inReplyToStatusIdStr)
}
if (value.inReplyToUserId != null) {
writer.writeField(H_IN_REPLY_TO_USER_ID, value.inReplyToUserId)
}
if (value.inReplyToUserIdStr != null) {
writer.writeField(H_IN_REPLY_TO_USER_ID_STR, value.inReplyToUserIdStr)
}
if (value.inReplyToScreenName != null) {
writer.writeField(H_IN_REPLY_TO_SCREEN_NAME, value.inReplyToScreenName)
}
writer.writeNameRaw(H_USER)
UserSerializer.serialize(writer, value.user)
if (value.geo != null) {
writer.writeField(H_GEO, value.geo)
}
if (value.coordinates != null) {
writer.writeField(H_COORDINATES, value.coordinates)
}
if (value.place != null) {
writer.writeField(H_PLACE, value.place)
}
if (value.contributors != null) {
writer.writeField(H_CONTRIBUTORS, value.contributors)
}
writer.writeField(H_RETWEET_COUNT, value.retweetCount)
writer.writeField(H_FAVORITE_COUNT, value.favoriteCount)
writer.writeNameRaw(H_ENTITIES)
TweetEntitiesSerializer.serialize(writer, value.entities)
writer.writeField(H_FAVORITED, value.favorited)
writer.writeField(H_RETWEETED, value.retweeted)
writer.writeField(H_POSSIBLY_SENSITIVE, value.possiblySensitive)
if (value.lang != null) {
writer.writeField(H_LANG, value.lang)
}
if (value.retweetedStatus != null) {
writer.writeNameRaw(H_RETWEETED_STATUS)
TweetSerializer.serialize(writer, value.retweetedStatus)
}
writer.endObject()
}
override fun serialize(writer: GhostJsonStringWriter, `value`: Tweet) {
writer.beginObject()
writer.writeNameRaw(HS_METADATA)
TweetMetadataSerializer.serialize(writer, value.metadata)
writer.writeField(HS_CREATED_AT, value.createdAt)
writer.writeField(HS_ID, value.id)
writer.writeField(HS_ID_STR, value.idStr)
writer.writeField(HS_TEXT, value.text)
writer.writeField(HS_SOURCE, value.source)
writer.writeField(HS_TRUNCATED, value.truncated)
if (value.inReplyToStatusId != null) {
writer.writeField(HS_IN_REPLY_TO_STATUS_ID, value.inReplyToStatusId)
}
if (value.inReplyToStatusIdStr != null) {
writer.writeField(HS_IN_REPLY_TO_STATUS_ID_STR, value.inReplyToStatusIdStr)
}
if (value.inReplyToUserId != null) {
writer.writeField(HS_IN_REPLY_TO_USER_ID, value.inReplyToUserId)
}
if (value.inReplyToUserIdStr != null) {
writer.writeField(HS_IN_REPLY_TO_USER_ID_STR, value.inReplyToUserIdStr)
}
if (value.inReplyToScreenName != null) {
writer.writeField(HS_IN_REPLY_TO_SCREEN_NAME, value.inReplyToScreenName)
}
writer.writeNameRaw(HS_USER)
UserSerializer.serialize(writer, value.user)
if (value.geo != null) {
writer.writeField(HS_GEO, value.geo)
}
if (value.coordinates != null) {
writer.writeField(HS_COORDINATES, value.coordinates)
}
if (value.place != null) {
writer.writeField(HS_PLACE, value.place)
}
if (value.contributors != null) {
writer.writeField(HS_CONTRIBUTORS, value.contributors)
}
writer.writeField(HS_RETWEET_COUNT, value.retweetCount)
writer.writeField(HS_FAVORITE_COUNT, value.favoriteCount)
writer.writeNameRaw(HS_ENTITIES)
TweetEntitiesSerializer.serialize(writer, value.entities)
writer.writeField(HS_FAVORITED, value.favorited)
writer.writeField(HS_RETWEETED, value.retweeted)
writer.writeField(HS_POSSIBLY_SENSITIVE, value.possiblySensitive)
if (value.lang != null) {
writer.writeField(HS_LANG, value.lang)
}
if (value.retweetedStatus != null) {
writer.writeNameRaw(HS_RETWEETED_STATUS)
TweetSerializer.serialize(writer, value.retweetedStatus)
}
writer.endObject()
}
override fun warmUp() {
try {
val reader1 = GhostJsonReader("{\"metadata\":{},\"created_at\":\"\",\"id\":0,\"id_str\":\"\",\"text\":\"\",\"source\":\"\",\"truncated\":false,\"user\":{},\"retweet_count\":0,\"favorite_count\":0,\"entities\":{},\"favorited\":false,\"retweeted\":false}".encodeToByteArray())
deserialize(reader1)
} catch (_: Exception) {
}
try {
val reader2 = GhostJsonFlatReader("{\"metadata\":{},\"created_at\":\"\",\"id\":0,\"id_str\":\"\",\"text\":\"\",\"source\":\"\",\"truncated\":false,\"user\":{},\"retweet_count\":0,\"favorite_count\":0,\"entities\":{},\"favorited\":false,\"retweeted\":false}".encodeToByteArray())
deserialize(reader2)
} catch (_: Exception) {
}
try {
val reader3 = GhostJsonStringReader("{\"metadata\":{},\"created_at\":\"\",\"id\":0,\"id_str\":\"\",\"text\":\"\",\"source\":\"\",\"truncated\":false,\"user\":{},\"retweet_count\":0,\"favorite_count\":0,\"entities\":{},\"favorited\":false,\"retweeted\":false}")
deserialize(reader3)
} catch (_: Exception) {
}
}
}