From e11af57399b503d4df57b85a24bdf7c719e2a4cf Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Dec 2024 17:37:05 +0000 Subject: [PATCH 1/2] chore(internal): codegen related update (#129) --- .../main/kotlin/org/onebusaway/core/Utils.kt | 4 +- .../onebusaway/errors/OnebusawaySdkError.kt | 12 +- .../AgenciesWithCoverageListResponse.kt | 185 +- .../models/AgencyRetrieveResponse.kt | 224 +- .../models/ArrivalAndDepartureListResponse.kt | 770 ++++--- .../ArrivalAndDepartureRetrieveResponse.kt | 730 ++++--- .../models/BlockRetrieveResponse.kt | 380 ++-- .../models/ConfigRetrieveResponse.kt | 360 ++-- .../models/CurrentTimeRetrieveResponse.kt | 152 +- .../org/onebusaway/models/References.kt | 1057 +++++----- .../org/onebusaway/models/ResponseWrapper.kt | 52 +- .../models/RouteIdsForAgencyListResponse.kt | 120 +- .../models/RouteRetrieveResponse.kt | 216 +- .../models/RoutesForAgencyListResponse.kt | 224 +- .../models/RoutesForLocationListResponse.kt | 232 +-- .../ScheduleForRouteRetrieveResponse.kt | 596 +++--- .../models/ScheduleForStopRetrieveResponse.kt | 414 ++-- .../models/SearchForRouteListResponse.kt | 232 +-- .../models/SearchForStopListResponse.kt | 240 +-- .../models/ShapeRetrieveResponse.kt | 160 +- .../models/StopIdsForAgencyListResponse.kt | 120 +- .../onebusaway/models/StopRetrieveResponse.kt | 224 +- .../models/StopsForAgencyListResponse.kt | 204 +- .../models/StopsForLocationListResponse.kt | 238 +-- .../models/StopsForRouteListResponse.kt | 366 ++-- .../models/TripDetailRetrieveResponse.kt | 639 +++--- .../models/TripForVehicleRetrieveResponse.kt | 640 +++--- .../onebusaway/models/TripRetrieveResponse.kt | 224 +- .../models/TripsForLocationListResponse.kt | 1836 +++++++++++++++++ .../models/TripsForRouteListResponse.kt | 647 +++--- .../models/VehiclesForAgencyListResponse.kt | 598 +++--- .../onebusaway/services/ErrorHandlingTest.kt | 292 ++- .../onebusaway/services/ServiceParamsTest.kt | 293 ++- 33 files changed, 6812 insertions(+), 5869 deletions(-) diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/core/Utils.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/core/Utils.kt index 3b5d37e..806ac8b 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/core/Utils.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/core/Utils.kt @@ -13,9 +13,7 @@ internal fun List.toImmutable(): List = if (isEmpty()) Collections.emptyList() else Collections.unmodifiableList(toList()) internal fun Map.toImmutable(): Map = - if (isEmpty()) immutableEmptyMap() else Collections.unmodifiableMap(toMap()) - -internal fun immutableEmptyMap(): Map = Collections.emptyMap() + if (isEmpty()) Collections.emptyMap() else Collections.unmodifiableMap(toMap()) internal fun , V> SortedMap.toImmutable(): SortedMap = if (isEmpty()) Collections.emptySortedMap() diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/errors/OnebusawaySdkError.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/errors/OnebusawaySdkError.kt index 7715cdd..b3b82fb 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/errors/OnebusawaySdkError.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/errors/OnebusawaySdkError.kt @@ -4,22 +4,17 @@ package org.onebusaway.errors import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects -import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = OnebusawaySdkError.Builder::class) @NoAutoDetect class OnebusawaySdkError -@JsonCreator private constructor( - @JsonAnyGetter - @ExcludeMissing - @JsonAnySetter - val additionalProperties: Map = immutableEmptyMap(), + @JsonAnyGetter val additionalProperties: Map, ) { fun toBuilder() = Builder().from(this) @@ -42,6 +37,7 @@ private constructor( putAllAdditionalProperties(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { additionalProperties.put(key, value) } diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/AgenciesWithCoverageListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/AgenciesWithCoverageListResponse.kt index 6ae25f8..4ddb579 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/AgenciesWithCoverageListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/AgenciesWithCoverageListResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = AgenciesWithCoverageListResponse.Builder::class) @NoAutoDetect class AgenciesWithCoverageListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): AgenciesWithCoverageListResponse = apply { if (!validated) { code() @@ -94,54 +89,58 @@ private constructor( internal fun from(agenciesWithCoverageListResponse: AgenciesWithCoverageListResponse) = apply { - code = agenciesWithCoverageListResponse.code - currentTime = agenciesWithCoverageListResponse.currentTime - text = agenciesWithCoverageListResponse.text - version = agenciesWithCoverageListResponse.version - data = agenciesWithCoverageListResponse.data - additionalProperties = - agenciesWithCoverageListResponse.additionalProperties.toMutableMap() + this.code = agenciesWithCoverageListResponse.code + this.currentTime = agenciesWithCoverageListResponse.currentTime + this.text = agenciesWithCoverageListResponse.text + this.version = agenciesWithCoverageListResponse.version + this.data = agenciesWithCoverageListResponse.data + additionalProperties(agenciesWithCoverageListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): AgenciesWithCoverageListResponse = AgenciesWithCoverageListResponse( code, @@ -153,23 +152,18 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("limitExceeded") - @ExcludeMissing - private val limitExceeded: JsonField = JsonMissing.of(), - @JsonProperty("list") - @ExcludeMissing - private val list: JsonField> = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val limitExceeded: JsonField, + private val list: JsonField>, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun limitExceeded(): Boolean = limitExceeded.getRequired("limitExceeded") fun list(): kotlin.collections.List = list.getRequired("list") @@ -186,8 +180,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { limitExceeded() @@ -212,47 +204,48 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - limitExceeded = data.limitExceeded - list = data.list - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.limitExceeded = data.limitExceeded + this.list = data.list + this.references = data.references + additionalProperties(data.additionalProperties) } fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + @JsonProperty("limitExceeded") + @ExcludeMissing fun limitExceeded(limitExceeded: JsonField) = apply { this.limitExceeded = limitExceeded } fun list(list: kotlin.collections.List) = list(JsonField.of(list)) + @JsonProperty("list") + @ExcludeMissing fun list(list: JsonField>) = apply { this.list = list } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( limitExceeded, @@ -262,29 +255,20 @@ private constructor( ) } + @JsonDeserialize(builder = List.Builder::class) @NoAutoDetect class List - @JsonCreator private constructor( - @JsonProperty("agencyId") - @ExcludeMissing - private val agencyId: JsonField = JsonMissing.of(), - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("latSpan") - @ExcludeMissing - private val latSpan: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonProperty("lonSpan") - @ExcludeMissing - private val lonSpan: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val agencyId: JsonField, + private val lat: JsonField, + private val latSpan: JsonField, + private val lon: JsonField, + private val lonSpan: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun agencyId(): String = agencyId.getRequired("agencyId") fun lat(): Double = lat.getRequired("lat") @@ -309,8 +293,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): List = apply { if (!validated) { agencyId() @@ -339,41 +321,52 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(list: List) = apply { - agencyId = list.agencyId - lat = list.lat - latSpan = list.latSpan - lon = list.lon - lonSpan = list.lonSpan - additionalProperties = list.additionalProperties.toMutableMap() + this.agencyId = list.agencyId + this.lat = list.lat + this.latSpan = list.latSpan + this.lon = list.lon + this.lonSpan = list.lonSpan + additionalProperties(list.additionalProperties) } fun agencyId(agencyId: String) = agencyId(JsonField.of(agencyId)) + @JsonProperty("agencyId") + @ExcludeMissing fun agencyId(agencyId: JsonField) = apply { this.agencyId = agencyId } fun lat(lat: Double) = lat(JsonField.of(lat)) + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } fun latSpan(latSpan: Double) = latSpan(JsonField.of(latSpan)) + @JsonProperty("latSpan") + @ExcludeMissing fun latSpan(latSpan: JsonField) = apply { this.latSpan = latSpan } fun lon(lon: Double) = lon(JsonField.of(lon)) + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun lonSpan(lonSpan: Double) = lonSpan(JsonField.of(lonSpan)) + @JsonProperty("lonSpan") + @ExcludeMissing fun lonSpan(lonSpan: JsonField) = apply { this.lonSpan = lonSpan } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -381,14 +374,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): List = List( agencyId, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/AgencyRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/AgencyRetrieveResponse.kt index acf60fd..d6f43bc 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/AgencyRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/AgencyRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = AgencyRetrieveResponse.Builder::class) @NoAutoDetect class AgencyRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): AgencyRetrieveResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(agencyRetrieveResponse: AgencyRetrieveResponse) = apply { - code = agencyRetrieveResponse.code - currentTime = agencyRetrieveResponse.currentTime - text = agencyRetrieveResponse.text - version = agencyRetrieveResponse.version - data = agencyRetrieveResponse.data - additionalProperties = agencyRetrieveResponse.additionalProperties.toMutableMap() + this.code = agencyRetrieveResponse.code + this.currentTime = agencyRetrieveResponse.currentTime + this.text = agencyRetrieveResponse.text + this.version = agencyRetrieveResponse.version + this.data = agencyRetrieveResponse.data + additionalProperties(agencyRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): AgencyRetrieveResponse = AgencyRetrieveResponse( code, @@ -151,23 +151,18 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("limitExceeded") - @ExcludeMissing - private val limitExceeded: JsonField = JsonMissing.of(), - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val limitExceeded: JsonField, + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun limitExceeded(): Boolean = limitExceeded.getRequired("limitExceeded") fun entry(): Entry = entry.getRequired("entry") @@ -184,8 +179,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { limitExceeded() @@ -210,47 +203,48 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - limitExceeded = data.limitExceeded - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.limitExceeded = data.limitExceeded + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + @JsonProperty("limitExceeded") + @ExcludeMissing fun limitExceeded(limitExceeded: JsonField) = apply { this.limitExceeded = limitExceeded } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( limitExceeded, @@ -260,44 +254,25 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("disclaimer") - @ExcludeMissing - private val disclaimer: JsonField = JsonMissing.of(), - @JsonProperty("email") - @ExcludeMissing - private val email: JsonField = JsonMissing.of(), - @JsonProperty("fareUrl") - @ExcludeMissing - private val fareUrl: JsonField = JsonMissing.of(), - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("lang") - @ExcludeMissing - private val lang: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("phone") - @ExcludeMissing - private val phone: JsonField = JsonMissing.of(), - @JsonProperty("privateService") - @ExcludeMissing - private val privateService: JsonField = JsonMissing.of(), - @JsonProperty("timezone") - @ExcludeMissing - private val timezone: JsonField = JsonMissing.of(), - @JsonProperty("url") - @ExcludeMissing - private val url: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val disclaimer: JsonField, + private val email: JsonField, + private val fareUrl: JsonField, + private val id: JsonField, + private val lang: JsonField, + private val name: JsonField, + private val phone: JsonField, + private val privateService: JsonField, + private val timezone: JsonField, + private val url: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun disclaimer(): String? = disclaimer.getNullable("disclaimer") fun email(): String? = email.getNullable("email") @@ -342,8 +317,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { disclaimer() @@ -382,71 +355,92 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - disclaimer = entry.disclaimer - email = entry.email - fareUrl = entry.fareUrl - id = entry.id - lang = entry.lang - name = entry.name - phone = entry.phone - privateService = entry.privateService - timezone = entry.timezone - url = entry.url - additionalProperties = entry.additionalProperties.toMutableMap() + this.disclaimer = entry.disclaimer + this.email = entry.email + this.fareUrl = entry.fareUrl + this.id = entry.id + this.lang = entry.lang + this.name = entry.name + this.phone = entry.phone + this.privateService = entry.privateService + this.timezone = entry.timezone + this.url = entry.url + additionalProperties(entry.additionalProperties) } fun disclaimer(disclaimer: String) = disclaimer(JsonField.of(disclaimer)) + @JsonProperty("disclaimer") + @ExcludeMissing fun disclaimer(disclaimer: JsonField) = apply { this.disclaimer = disclaimer } fun email(email: String) = email(JsonField.of(email)) + @JsonProperty("email") + @ExcludeMissing fun email(email: JsonField) = apply { this.email = email } fun fareUrl(fareUrl: String) = fareUrl(JsonField.of(fareUrl)) + @JsonProperty("fareUrl") + @ExcludeMissing fun fareUrl(fareUrl: JsonField) = apply { this.fareUrl = fareUrl } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun lang(lang: String) = lang(JsonField.of(lang)) + @JsonProperty("lang") + @ExcludeMissing fun lang(lang: JsonField) = apply { this.lang = lang } fun name(name: String) = name(JsonField.of(name)) + @JsonProperty("name") + @ExcludeMissing fun name(name: JsonField) = apply { this.name = name } fun phone(phone: String) = phone(JsonField.of(phone)) + @JsonProperty("phone") + @ExcludeMissing fun phone(phone: JsonField) = apply { this.phone = phone } fun privateService(privateService: Boolean) = privateService(JsonField.of(privateService)) + @JsonProperty("privateService") + @ExcludeMissing fun privateService(privateService: JsonField) = apply { this.privateService = privateService } fun timezone(timezone: String) = timezone(JsonField.of(timezone)) + @JsonProperty("timezone") + @ExcludeMissing fun timezone(timezone: JsonField) = apply { this.timezone = timezone } fun url(url: String) = url(JsonField.of(url)) + @JsonProperty("url") + @ExcludeMissing fun url(url: JsonField) = apply { this.url = url } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -454,14 +448,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( disclaimer, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ArrivalAndDepartureListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ArrivalAndDepartureListResponse.kt index ad69ac4..4cae8aa 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ArrivalAndDepartureListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ArrivalAndDepartureListResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = ArrivalAndDepartureListResponse.Builder::class) @NoAutoDetect class ArrivalAndDepartureListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): ArrivalAndDepartureListResponse = apply { if (!validated) { code() @@ -94,54 +89,58 @@ private constructor( internal fun from(arrivalAndDepartureListResponse: ArrivalAndDepartureListResponse) = apply { - code = arrivalAndDepartureListResponse.code - currentTime = arrivalAndDepartureListResponse.currentTime - text = arrivalAndDepartureListResponse.text - version = arrivalAndDepartureListResponse.version - data = arrivalAndDepartureListResponse.data - additionalProperties = - arrivalAndDepartureListResponse.additionalProperties.toMutableMap() + this.code = arrivalAndDepartureListResponse.code + this.currentTime = arrivalAndDepartureListResponse.currentTime + this.text = arrivalAndDepartureListResponse.text + this.version = arrivalAndDepartureListResponse.version + this.data = arrivalAndDepartureListResponse.data + additionalProperties(arrivalAndDepartureListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): ArrivalAndDepartureListResponse = ArrivalAndDepartureListResponse( code, @@ -153,20 +152,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -179,8 +175,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -203,40 +197,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -245,18 +238,16 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("arrivalsAndDepartures") - @ExcludeMissing - private val arrivalsAndDepartures: JsonField> = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val arrivalsAndDepartures: JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun arrivalsAndDepartures(): List = arrivalsAndDepartures.getRequired("arrivalsAndDepartures") @@ -268,8 +259,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { arrivalsAndDepartures().forEach { it.validate() } @@ -291,24 +280,27 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - arrivalsAndDepartures = entry.arrivalsAndDepartures - additionalProperties = entry.additionalProperties.toMutableMap() + this.arrivalsAndDepartures = entry.arrivalsAndDepartures + additionalProperties(entry.additionalProperties) } fun arrivalsAndDepartures(arrivalsAndDepartures: List) = arrivalsAndDepartures(JsonField.of(arrivalsAndDepartures)) + @JsonProperty("arrivalsAndDepartures") + @ExcludeMissing fun arrivalsAndDepartures( arrivalsAndDepartures: JsonField> ) = apply { this.arrivalsAndDepartures = arrivalsAndDepartures } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -316,14 +308,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( arrivalsAndDepartures.map { it.toImmutable() }, @@ -331,116 +315,49 @@ private constructor( ) } + @JsonDeserialize(builder = ArrivalsAndDeparture.Builder::class) @NoAutoDetect class ArrivalsAndDeparture - @JsonCreator private constructor( - @JsonProperty("actualTrack") - @ExcludeMissing - private val actualTrack: JsonField = JsonMissing.of(), - @JsonProperty("arrivalEnabled") - @ExcludeMissing - private val arrivalEnabled: JsonField = JsonMissing.of(), - @JsonProperty("blockTripSequence") - @ExcludeMissing - private val blockTripSequence: JsonField = JsonMissing.of(), - @JsonProperty("departureEnabled") - @ExcludeMissing - private val departureEnabled: JsonField = JsonMissing.of(), - @JsonProperty("distanceFromStop") - @ExcludeMissing - private val distanceFromStop: JsonField = JsonMissing.of(), - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("historicalOccupancy") - @ExcludeMissing - private val historicalOccupancy: JsonField = JsonMissing.of(), - @JsonProperty("lastUpdateTime") - @ExcludeMissing - private val lastUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("numberOfStopsAway") - @ExcludeMissing - private val numberOfStopsAway: JsonField = JsonMissing.of(), - @JsonProperty("occupancyStatus") - @ExcludeMissing - private val occupancyStatus: JsonField = JsonMissing.of(), - @JsonProperty("predicted") - @ExcludeMissing - private val predicted: JsonField = JsonMissing.of(), - @JsonProperty("predictedArrivalInterval") - @ExcludeMissing - private val predictedArrivalInterval: JsonField = JsonMissing.of(), - @JsonProperty("predictedArrivalTime") - @ExcludeMissing - private val predictedArrivalTime: JsonField = JsonMissing.of(), - @JsonProperty("predictedDepartureInterval") - @ExcludeMissing - private val predictedDepartureInterval: JsonField = JsonMissing.of(), - @JsonProperty("predictedDepartureTime") - @ExcludeMissing - private val predictedDepartureTime: JsonField = JsonMissing.of(), - @JsonProperty("predictedOccupancy") - @ExcludeMissing - private val predictedOccupancy: JsonField = JsonMissing.of(), - @JsonProperty("routeId") - @ExcludeMissing - private val routeId: JsonField = JsonMissing.of(), - @JsonProperty("routeLongName") - @ExcludeMissing - private val routeLongName: JsonField = JsonMissing.of(), - @JsonProperty("routeShortName") - @ExcludeMissing - private val routeShortName: JsonField = JsonMissing.of(), - @JsonProperty("scheduledArrivalInterval") - @ExcludeMissing - private val scheduledArrivalInterval: JsonField = JsonMissing.of(), - @JsonProperty("scheduledArrivalTime") - @ExcludeMissing - private val scheduledArrivalTime: JsonField = JsonMissing.of(), - @JsonProperty("scheduledDepartureInterval") - @ExcludeMissing - private val scheduledDepartureInterval: JsonField = JsonMissing.of(), - @JsonProperty("scheduledDepartureTime") - @ExcludeMissing - private val scheduledDepartureTime: JsonField = JsonMissing.of(), - @JsonProperty("scheduledTrack") - @ExcludeMissing - private val scheduledTrack: JsonField = JsonMissing.of(), - @JsonProperty("serviceDate") - @ExcludeMissing - private val serviceDate: JsonField = JsonMissing.of(), - @JsonProperty("situationIds") - @ExcludeMissing - private val situationIds: JsonField> = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("stopId") - @ExcludeMissing - private val stopId: JsonField = JsonMissing.of(), - @JsonProperty("stopSequence") - @ExcludeMissing - private val stopSequence: JsonField = JsonMissing.of(), - @JsonProperty("totalStopsInTrip") - @ExcludeMissing - private val totalStopsInTrip: JsonField = JsonMissing.of(), - @JsonProperty("tripHeadsign") - @ExcludeMissing - private val tripHeadsign: JsonField = JsonMissing.of(), - @JsonProperty("tripId") - @ExcludeMissing - private val tripId: JsonField = JsonMissing.of(), - @JsonProperty("tripStatus") - @ExcludeMissing - private val tripStatus: JsonField = JsonMissing.of(), - @JsonProperty("vehicleId") - @ExcludeMissing - private val vehicleId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val actualTrack: JsonField, + private val arrivalEnabled: JsonField, + private val blockTripSequence: JsonField, + private val departureEnabled: JsonField, + private val distanceFromStop: JsonField, + private val frequency: JsonField, + private val historicalOccupancy: JsonField, + private val lastUpdateTime: JsonField, + private val numberOfStopsAway: JsonField, + private val occupancyStatus: JsonField, + private val predicted: JsonField, + private val predictedArrivalInterval: JsonField, + private val predictedArrivalTime: JsonField, + private val predictedDepartureInterval: JsonField, + private val predictedDepartureTime: JsonField, + private val predictedOccupancy: JsonField, + private val routeId: JsonField, + private val routeLongName: JsonField, + private val routeShortName: JsonField, + private val scheduledArrivalInterval: JsonField, + private val scheduledArrivalTime: JsonField, + private val scheduledDepartureInterval: JsonField, + private val scheduledDepartureTime: JsonField, + private val scheduledTrack: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val status: JsonField, + private val stopId: JsonField, + private val stopSequence: JsonField, + private val totalStopsInTrip: JsonField, + private val tripHeadsign: JsonField, + private val tripId: JsonField, + private val tripStatus: JsonField, + private val vehicleId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** The actual track information of the arriving transit vehicle. */ fun actualTrack(): String? = actualTrack.getNullable("actualTrack") @@ -747,8 +664,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): ArrivalsAndDeparture = apply { if (!validated) { actualTrack() @@ -835,48 +750,53 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(arrivalsAndDeparture: ArrivalsAndDeparture) = apply { - actualTrack = arrivalsAndDeparture.actualTrack - arrivalEnabled = arrivalsAndDeparture.arrivalEnabled - blockTripSequence = arrivalsAndDeparture.blockTripSequence - departureEnabled = arrivalsAndDeparture.departureEnabled - distanceFromStop = arrivalsAndDeparture.distanceFromStop - frequency = arrivalsAndDeparture.frequency - historicalOccupancy = arrivalsAndDeparture.historicalOccupancy - lastUpdateTime = arrivalsAndDeparture.lastUpdateTime - numberOfStopsAway = arrivalsAndDeparture.numberOfStopsAway - occupancyStatus = arrivalsAndDeparture.occupancyStatus - predicted = arrivalsAndDeparture.predicted - predictedArrivalInterval = arrivalsAndDeparture.predictedArrivalInterval - predictedArrivalTime = arrivalsAndDeparture.predictedArrivalTime - predictedDepartureInterval = arrivalsAndDeparture.predictedDepartureInterval - predictedDepartureTime = arrivalsAndDeparture.predictedDepartureTime - predictedOccupancy = arrivalsAndDeparture.predictedOccupancy - routeId = arrivalsAndDeparture.routeId - routeLongName = arrivalsAndDeparture.routeLongName - routeShortName = arrivalsAndDeparture.routeShortName - scheduledArrivalInterval = arrivalsAndDeparture.scheduledArrivalInterval - scheduledArrivalTime = arrivalsAndDeparture.scheduledArrivalTime - scheduledDepartureInterval = arrivalsAndDeparture.scheduledDepartureInterval - scheduledDepartureTime = arrivalsAndDeparture.scheduledDepartureTime - scheduledTrack = arrivalsAndDeparture.scheduledTrack - serviceDate = arrivalsAndDeparture.serviceDate - situationIds = arrivalsAndDeparture.situationIds - status = arrivalsAndDeparture.status - stopId = arrivalsAndDeparture.stopId - stopSequence = arrivalsAndDeparture.stopSequence - totalStopsInTrip = arrivalsAndDeparture.totalStopsInTrip - tripHeadsign = arrivalsAndDeparture.tripHeadsign - tripId = arrivalsAndDeparture.tripId - tripStatus = arrivalsAndDeparture.tripStatus - vehicleId = arrivalsAndDeparture.vehicleId - additionalProperties = - arrivalsAndDeparture.additionalProperties.toMutableMap() + this.actualTrack = arrivalsAndDeparture.actualTrack + this.arrivalEnabled = arrivalsAndDeparture.arrivalEnabled + this.blockTripSequence = arrivalsAndDeparture.blockTripSequence + this.departureEnabled = arrivalsAndDeparture.departureEnabled + this.distanceFromStop = arrivalsAndDeparture.distanceFromStop + this.frequency = arrivalsAndDeparture.frequency + this.historicalOccupancy = arrivalsAndDeparture.historicalOccupancy + this.lastUpdateTime = arrivalsAndDeparture.lastUpdateTime + this.numberOfStopsAway = arrivalsAndDeparture.numberOfStopsAway + this.occupancyStatus = arrivalsAndDeparture.occupancyStatus + this.predicted = arrivalsAndDeparture.predicted + this.predictedArrivalInterval = + arrivalsAndDeparture.predictedArrivalInterval + this.predictedArrivalTime = arrivalsAndDeparture.predictedArrivalTime + this.predictedDepartureInterval = + arrivalsAndDeparture.predictedDepartureInterval + this.predictedDepartureTime = arrivalsAndDeparture.predictedDepartureTime + this.predictedOccupancy = arrivalsAndDeparture.predictedOccupancy + this.routeId = arrivalsAndDeparture.routeId + this.routeLongName = arrivalsAndDeparture.routeLongName + this.routeShortName = arrivalsAndDeparture.routeShortName + this.scheduledArrivalInterval = + arrivalsAndDeparture.scheduledArrivalInterval + this.scheduledArrivalTime = arrivalsAndDeparture.scheduledArrivalTime + this.scheduledDepartureInterval = + arrivalsAndDeparture.scheduledDepartureInterval + this.scheduledDepartureTime = arrivalsAndDeparture.scheduledDepartureTime + this.scheduledTrack = arrivalsAndDeparture.scheduledTrack + this.serviceDate = arrivalsAndDeparture.serviceDate + this.situationIds = arrivalsAndDeparture.situationIds + this.status = arrivalsAndDeparture.status + this.stopId = arrivalsAndDeparture.stopId + this.stopSequence = arrivalsAndDeparture.stopSequence + this.totalStopsInTrip = arrivalsAndDeparture.totalStopsInTrip + this.tripHeadsign = arrivalsAndDeparture.tripHeadsign + this.tripId = arrivalsAndDeparture.tripId + this.tripStatus = arrivalsAndDeparture.tripStatus + this.vehicleId = arrivalsAndDeparture.vehicleId + additionalProperties(arrivalsAndDeparture.additionalProperties) } /** The actual track information of the arriving transit vehicle. */ fun actualTrack(actualTrack: String) = actualTrack(JsonField.of(actualTrack)) /** The actual track information of the arriving transit vehicle. */ + @JsonProperty("actualTrack") + @ExcludeMissing fun actualTrack(actualTrack: JsonField) = apply { this.actualTrack = actualTrack } @@ -886,6 +806,8 @@ private constructor( arrivalEnabled(JsonField.of(arrivalEnabled)) /** Indicates if riders can arrive on this transit vehicle. */ + @JsonProperty("arrivalEnabled") + @ExcludeMissing fun arrivalEnabled(arrivalEnabled: JsonField) = apply { this.arrivalEnabled = arrivalEnabled } @@ -899,6 +821,8 @@ private constructor( /** * Index of this arrivalā€™s trip into the sequence of trips for the active block. */ + @JsonProperty("blockTripSequence") + @ExcludeMissing fun blockTripSequence(blockTripSequence: JsonField) = apply { this.blockTripSequence = blockTripSequence } @@ -908,6 +832,8 @@ private constructor( departureEnabled(JsonField.of(departureEnabled)) /** Indicates if riders can depart from this transit vehicle. */ + @JsonProperty("departureEnabled") + @ExcludeMissing fun departureEnabled(departureEnabled: JsonField) = apply { this.departureEnabled = departureEnabled } @@ -917,6 +843,8 @@ private constructor( distanceFromStop(JsonField.of(distanceFromStop)) /** Distance of the arriving transit vehicle from the stop, in meters. */ + @JsonProperty("distanceFromStop") + @ExcludeMissing fun distanceFromStop(distanceFromStop: JsonField) = apply { this.distanceFromStop = distanceFromStop } @@ -925,6 +853,8 @@ private constructor( fun frequency(frequency: String) = frequency(JsonField.of(frequency)) /** Information about frequency-based scheduling, if applicable to the trip. */ + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } @@ -934,6 +864,8 @@ private constructor( historicalOccupancy(JsonField.of(historicalOccupancy)) /** Historical occupancy information of the transit vehicle. */ + @JsonProperty("historicalOccupancy") + @ExcludeMissing fun historicalOccupancy(historicalOccupancy: JsonField) = apply { this.historicalOccupancy = historicalOccupancy } @@ -943,6 +875,8 @@ private constructor( lastUpdateTime(JsonField.of(lastUpdateTime)) /** Timestamp of the last update time for this arrival. */ + @JsonProperty("lastUpdateTime") + @ExcludeMissing fun lastUpdateTime(lastUpdateTime: JsonField) = apply { this.lastUpdateTime = lastUpdateTime } @@ -958,6 +892,8 @@ private constructor( * Number of stops between the arriving transit vehicle and the current stop * (excluding the current stop). */ + @JsonProperty("numberOfStopsAway") + @ExcludeMissing fun numberOfStopsAway(numberOfStopsAway: JsonField) = apply { this.numberOfStopsAway = numberOfStopsAway } @@ -967,6 +903,8 @@ private constructor( occupancyStatus(JsonField.of(occupancyStatus)) /** Current occupancy status of the transit vehicle. */ + @JsonProperty("occupancyStatus") + @ExcludeMissing fun occupancyStatus(occupancyStatus: JsonField) = apply { this.occupancyStatus = occupancyStatus } @@ -975,6 +913,8 @@ private constructor( fun predicted(predicted: Boolean) = predicted(JsonField.of(predicted)) /** Indicates if real-time arrival info is available for this trip. */ + @JsonProperty("predicted") + @ExcludeMissing fun predicted(predicted: JsonField) = apply { this.predicted = predicted } @@ -984,6 +924,8 @@ private constructor( predictedArrivalInterval(JsonField.of(predictedArrivalInterval)) /** Interval for predicted arrival time, if available. */ + @JsonProperty("predictedArrivalInterval") + @ExcludeMissing fun predictedArrivalInterval(predictedArrivalInterval: JsonField) = apply { this.predictedArrivalInterval = predictedArrivalInterval @@ -1000,6 +942,8 @@ private constructor( * Predicted arrival time, in milliseconds since Unix epoch (zero if no * real-time available). */ + @JsonProperty("predictedArrivalTime") + @ExcludeMissing fun predictedArrivalTime(predictedArrivalTime: JsonField) = apply { this.predictedArrivalTime = predictedArrivalTime } @@ -1009,6 +953,8 @@ private constructor( predictedDepartureInterval(JsonField.of(predictedDepartureInterval)) /** Interval for predicted departure time, if available. */ + @JsonProperty("predictedDepartureInterval") + @ExcludeMissing fun predictedDepartureInterval(predictedDepartureInterval: JsonField) = apply { this.predictedDepartureInterval = predictedDepartureInterval @@ -1025,6 +971,8 @@ private constructor( * Predicted departure time, in milliseconds since Unix epoch (zero if no * real-time available). */ + @JsonProperty("predictedDepartureTime") + @ExcludeMissing fun predictedDepartureTime(predictedDepartureTime: JsonField) = apply { this.predictedDepartureTime = predictedDepartureTime } @@ -1034,6 +982,8 @@ private constructor( predictedOccupancy(JsonField.of(predictedOccupancy)) /** Predicted occupancy status of the transit vehicle. */ + @JsonProperty("predictedOccupancy") + @ExcludeMissing fun predictedOccupancy(predictedOccupancy: JsonField) = apply { this.predictedOccupancy = predictedOccupancy } @@ -1042,6 +992,8 @@ private constructor( fun routeId(routeId: String) = routeId(JsonField.of(routeId)) /** The ID of the route for the arriving vehicle. */ + @JsonProperty("routeId") + @ExcludeMissing fun routeId(routeId: JsonField) = apply { this.routeId = routeId } /** @@ -1055,6 +1007,8 @@ private constructor( * Optional route long name that potentially overrides the route long name in * the referenced route element. */ + @JsonProperty("routeLongName") + @ExcludeMissing fun routeLongName(routeLongName: JsonField) = apply { this.routeLongName = routeLongName } @@ -1070,6 +1024,8 @@ private constructor( * Optional route short name that potentially overrides the route short name in * the referenced route element. */ + @JsonProperty("routeShortName") + @ExcludeMissing fun routeShortName(routeShortName: JsonField) = apply { this.routeShortName = routeShortName } @@ -1079,6 +1035,8 @@ private constructor( scheduledArrivalInterval(JsonField.of(scheduledArrivalInterval)) /** Interval for scheduled arrival time. */ + @JsonProperty("scheduledArrivalInterval") + @ExcludeMissing fun scheduledArrivalInterval(scheduledArrivalInterval: JsonField) = apply { this.scheduledArrivalInterval = scheduledArrivalInterval @@ -1089,6 +1047,8 @@ private constructor( scheduledArrivalTime(JsonField.of(scheduledArrivalTime)) /** Scheduled arrival time, in milliseconds since Unix epoch. */ + @JsonProperty("scheduledArrivalTime") + @ExcludeMissing fun scheduledArrivalTime(scheduledArrivalTime: JsonField) = apply { this.scheduledArrivalTime = scheduledArrivalTime } @@ -1098,6 +1058,8 @@ private constructor( scheduledDepartureInterval(JsonField.of(scheduledDepartureInterval)) /** Interval for scheduled departure time. */ + @JsonProperty("scheduledDepartureInterval") + @ExcludeMissing fun scheduledDepartureInterval(scheduledDepartureInterval: JsonField) = apply { this.scheduledDepartureInterval = scheduledDepartureInterval @@ -1108,6 +1070,8 @@ private constructor( scheduledDepartureTime(JsonField.of(scheduledDepartureTime)) /** Scheduled departure time, in milliseconds since Unix epoch. */ + @JsonProperty("scheduledDepartureTime") + @ExcludeMissing fun scheduledDepartureTime(scheduledDepartureTime: JsonField) = apply { this.scheduledDepartureTime = scheduledDepartureTime } @@ -1117,6 +1081,8 @@ private constructor( scheduledTrack(JsonField.of(scheduledTrack)) /** Scheduled track information of the arriving transit vehicle. */ + @JsonProperty("scheduledTrack") + @ExcludeMissing fun scheduledTrack(scheduledTrack: JsonField) = apply { this.scheduledTrack = scheduledTrack } @@ -1131,6 +1097,8 @@ private constructor( * Time, in milliseconds since the Unix epoch, of midnight for the start of the * service date for the trip. */ + @JsonProperty("serviceDate") + @ExcludeMissing fun serviceDate(serviceDate: JsonField) = apply { this.serviceDate = serviceDate } @@ -1140,6 +1108,8 @@ private constructor( situationIds(JsonField.of(situationIds)) /** References to situation elements (if any) applicable to this arrival. */ + @JsonProperty("situationIds") + @ExcludeMissing fun situationIds(situationIds: JsonField>) = apply { this.situationIds = situationIds } @@ -1148,12 +1118,16 @@ private constructor( fun status(status: String) = status(JsonField.of(status)) /** Current status of the arrival. */ + @JsonProperty("status") + @ExcludeMissing fun status(status: JsonField) = apply { this.status = status } /** The ID of the stop the vehicle is arriving at. */ fun stopId(stopId: String) = stopId(JsonField.of(stopId)) /** The ID of the stop the vehicle is arriving at. */ + @JsonProperty("stopId") + @ExcludeMissing fun stopId(stopId: JsonField) = apply { this.stopId = stopId } /** @@ -1166,6 +1140,8 @@ private constructor( * Index of the stop into the sequence of stops that make up the trip for this * arrival. */ + @JsonProperty("stopSequence") + @ExcludeMissing fun stopSequence(stopSequence: JsonField) = apply { this.stopSequence = stopSequence } @@ -1175,6 +1151,8 @@ private constructor( totalStopsInTrip(JsonField.of(totalStopsInTrip)) /** Total number of stops visited on the trip for this arrival. */ + @JsonProperty("totalStopsInTrip") + @ExcludeMissing fun totalStopsInTrip(totalStopsInTrip: JsonField) = apply { this.totalStopsInTrip = totalStopsInTrip } @@ -1190,6 +1168,8 @@ private constructor( * Optional trip headsign that potentially overrides the trip headsign in the * referenced trip element. */ + @JsonProperty("tripHeadsign") + @ExcludeMissing fun tripHeadsign(tripHeadsign: JsonField) = apply { this.tripHeadsign = tripHeadsign } @@ -1198,12 +1178,16 @@ private constructor( fun tripId(tripId: String) = tripId(JsonField.of(tripId)) /** The ID of the trip for the arriving vehicle. */ + @JsonProperty("tripId") + @ExcludeMissing fun tripId(tripId: JsonField) = apply { this.tripId = tripId } /** Trip-specific status for the arriving transit vehicle. */ fun tripStatus(tripStatus: TripStatus) = tripStatus(JsonField.of(tripStatus)) /** Trip-specific status for the arriving transit vehicle. */ + @JsonProperty("tripStatus") + @ExcludeMissing fun tripStatus(tripStatus: JsonField) = apply { this.tripStatus = tripStatus } @@ -1212,17 +1196,20 @@ private constructor( fun vehicleId(vehicleId: String) = vehicleId(JsonField.of(vehicleId)) /** ID of the transit vehicle serving this trip. */ + @JsonProperty("vehicleId") + @ExcludeMissing fun vehicleId(vehicleId: JsonField) = apply { this.vehicleId = vehicleId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1230,14 +1217,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): ArrivalsAndDeparture = ArrivalsAndDeparture( actualTrack, @@ -1279,95 +1258,42 @@ private constructor( } /** Trip-specific status for the arriving transit vehicle. */ + @JsonDeserialize(builder = TripStatus.Builder::class) @NoAutoDetect class TripStatus - @JsonCreator private constructor( - @JsonProperty("activeTripId") - @ExcludeMissing - private val activeTripId: JsonField = JsonMissing.of(), - @JsonProperty("blockTripSequence") - @ExcludeMissing - private val blockTripSequence: JsonField = JsonMissing.of(), - @JsonProperty("closestStop") - @ExcludeMissing - private val closestStop: JsonField = JsonMissing.of(), - @JsonProperty("closestStopTimeOffset") - @ExcludeMissing - private val closestStopTimeOffset: JsonField = JsonMissing.of(), - @JsonProperty("distanceAlongTrip") - @ExcludeMissing - private val distanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownDistanceAlongTrip") - @ExcludeMissing - private val lastKnownDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownLocation") - @ExcludeMissing - private val lastKnownLocation: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownOrientation") - @ExcludeMissing - private val lastKnownOrientation: JsonField = JsonMissing.of(), - @JsonProperty("lastLocationUpdateTime") - @ExcludeMissing - private val lastLocationUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("lastUpdateTime") - @ExcludeMissing - private val lastUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("nextStop") - @ExcludeMissing - private val nextStop: JsonField = JsonMissing.of(), - @JsonProperty("nextStopTimeOffset") - @ExcludeMissing - private val nextStopTimeOffset: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCapacity") - @ExcludeMissing - private val occupancyCapacity: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCount") - @ExcludeMissing - private val occupancyCount: JsonField = JsonMissing.of(), - @JsonProperty("occupancyStatus") - @ExcludeMissing - private val occupancyStatus: JsonField = JsonMissing.of(), - @JsonProperty("orientation") - @ExcludeMissing - private val orientation: JsonField = JsonMissing.of(), - @JsonProperty("phase") - @ExcludeMissing - private val phase: JsonField = JsonMissing.of(), - @JsonProperty("position") - @ExcludeMissing - private val position: JsonField = JsonMissing.of(), - @JsonProperty("predicted") - @ExcludeMissing - private val predicted: JsonField = JsonMissing.of(), - @JsonProperty("scheduleDeviation") - @ExcludeMissing - private val scheduleDeviation: JsonField = JsonMissing.of(), - @JsonProperty("scheduledDistanceAlongTrip") - @ExcludeMissing - private val scheduledDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("serviceDate") - @ExcludeMissing - private val serviceDate: JsonField = JsonMissing.of(), - @JsonProperty("situationIds") - @ExcludeMissing - private val situationIds: JsonField> = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("totalDistanceAlongTrip") - @ExcludeMissing - private val totalDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("vehicleId") - @ExcludeMissing - private val vehicleId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val activeTripId: JsonField, + private val blockTripSequence: JsonField, + private val closestStop: JsonField, + private val closestStopTimeOffset: JsonField, + private val distanceAlongTrip: JsonField, + private val frequency: JsonField, + private val lastKnownDistanceAlongTrip: JsonField, + private val lastKnownLocation: JsonField, + private val lastKnownOrientation: JsonField, + private val lastLocationUpdateTime: JsonField, + private val lastUpdateTime: JsonField, + private val nextStop: JsonField, + private val nextStopTimeOffset: JsonField, + private val occupancyCapacity: JsonField, + private val occupancyCount: JsonField, + private val occupancyStatus: JsonField, + private val orientation: JsonField, + private val phase: JsonField, + private val position: JsonField, + private val predicted: JsonField, + private val scheduleDeviation: JsonField, + private val scheduledDistanceAlongTrip: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val status: JsonField, + private val totalDistanceAlongTrip: JsonField, + private val vehicleId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Trip ID of the trip the vehicle is actively serving. */ fun activeTripId(): String = activeTripId.getRequired("activeTripId") @@ -1628,8 +1554,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): TripStatus = apply { if (!validated) { activeTripId() @@ -1704,34 +1628,34 @@ private constructor( mutableMapOf() internal fun from(tripStatus: TripStatus) = apply { - activeTripId = tripStatus.activeTripId - blockTripSequence = tripStatus.blockTripSequence - closestStop = tripStatus.closestStop - closestStopTimeOffset = tripStatus.closestStopTimeOffset - distanceAlongTrip = tripStatus.distanceAlongTrip - frequency = tripStatus.frequency - lastKnownDistanceAlongTrip = tripStatus.lastKnownDistanceAlongTrip - lastKnownLocation = tripStatus.lastKnownLocation - lastKnownOrientation = tripStatus.lastKnownOrientation - lastLocationUpdateTime = tripStatus.lastLocationUpdateTime - lastUpdateTime = tripStatus.lastUpdateTime - nextStop = tripStatus.nextStop - nextStopTimeOffset = tripStatus.nextStopTimeOffset - occupancyCapacity = tripStatus.occupancyCapacity - occupancyCount = tripStatus.occupancyCount - occupancyStatus = tripStatus.occupancyStatus - orientation = tripStatus.orientation - phase = tripStatus.phase - position = tripStatus.position - predicted = tripStatus.predicted - scheduleDeviation = tripStatus.scheduleDeviation - scheduledDistanceAlongTrip = tripStatus.scheduledDistanceAlongTrip - serviceDate = tripStatus.serviceDate - situationIds = tripStatus.situationIds - status = tripStatus.status - totalDistanceAlongTrip = tripStatus.totalDistanceAlongTrip - vehicleId = tripStatus.vehicleId - additionalProperties = tripStatus.additionalProperties.toMutableMap() + this.activeTripId = tripStatus.activeTripId + this.blockTripSequence = tripStatus.blockTripSequence + this.closestStop = tripStatus.closestStop + this.closestStopTimeOffset = tripStatus.closestStopTimeOffset + this.distanceAlongTrip = tripStatus.distanceAlongTrip + this.frequency = tripStatus.frequency + this.lastKnownDistanceAlongTrip = tripStatus.lastKnownDistanceAlongTrip + this.lastKnownLocation = tripStatus.lastKnownLocation + this.lastKnownOrientation = tripStatus.lastKnownOrientation + this.lastLocationUpdateTime = tripStatus.lastLocationUpdateTime + this.lastUpdateTime = tripStatus.lastUpdateTime + this.nextStop = tripStatus.nextStop + this.nextStopTimeOffset = tripStatus.nextStopTimeOffset + this.occupancyCapacity = tripStatus.occupancyCapacity + this.occupancyCount = tripStatus.occupancyCount + this.occupancyStatus = tripStatus.occupancyStatus + this.orientation = tripStatus.orientation + this.phase = tripStatus.phase + this.position = tripStatus.position + this.predicted = tripStatus.predicted + this.scheduleDeviation = tripStatus.scheduleDeviation + this.scheduledDistanceAlongTrip = tripStatus.scheduledDistanceAlongTrip + this.serviceDate = tripStatus.serviceDate + this.situationIds = tripStatus.situationIds + this.status = tripStatus.status + this.totalDistanceAlongTrip = tripStatus.totalDistanceAlongTrip + this.vehicleId = tripStatus.vehicleId + additionalProperties(tripStatus.additionalProperties) } /** Trip ID of the trip the vehicle is actively serving. */ @@ -1739,6 +1663,8 @@ private constructor( activeTripId(JsonField.of(activeTripId)) /** Trip ID of the trip the vehicle is actively serving. */ + @JsonProperty("activeTripId") + @ExcludeMissing fun activeTripId(activeTripId: JsonField) = apply { this.activeTripId = activeTripId } @@ -1752,6 +1678,8 @@ private constructor( /** * Index of the active trip into the sequence of trips for the active block. */ + @JsonProperty("blockTripSequence") + @ExcludeMissing fun blockTripSequence(blockTripSequence: JsonField) = apply { this.blockTripSequence = blockTripSequence } @@ -1765,6 +1693,8 @@ private constructor( /** * ID of the closest stop to the current location of the transit vehicle. */ + @JsonProperty("closestStop") + @ExcludeMissing fun closestStop(closestStop: JsonField) = apply { this.closestStop = closestStop } @@ -1780,6 +1710,8 @@ private constructor( * Time offset from the closest stop to the current position of the transit * vehicle (in seconds). */ + @JsonProperty("closestStopTimeOffset") + @ExcludeMissing fun closestStopTimeOffset(closestStopTimeOffset: JsonField) = apply { this.closestStopTimeOffset = closestStopTimeOffset } @@ -1795,6 +1727,8 @@ private constructor( * Distance, in meters, the transit vehicle has progressed along the active * trip. */ + @JsonProperty("distanceAlongTrip") + @ExcludeMissing fun distanceAlongTrip(distanceAlongTrip: JsonField) = apply { this.distanceAlongTrip = distanceAlongTrip } @@ -1807,6 +1741,8 @@ private constructor( /** * Information about frequency-based scheduling, if applicable to the trip. */ + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } @@ -1822,6 +1758,8 @@ private constructor( * Last known distance along the trip received in real-time from the transit * vehicle. */ + @JsonProperty("lastKnownDistanceAlongTrip") + @ExcludeMissing fun lastKnownDistanceAlongTrip( lastKnownDistanceAlongTrip: JsonField ) = apply { this.lastKnownDistanceAlongTrip = lastKnownDistanceAlongTrip } @@ -1831,6 +1769,8 @@ private constructor( lastKnownLocation(JsonField.of(lastKnownLocation)) /** Last known location of the transit vehicle. */ + @JsonProperty("lastKnownLocation") + @ExcludeMissing fun lastKnownLocation(lastKnownLocation: JsonField) = apply { this.lastKnownLocation = lastKnownLocation @@ -1847,6 +1787,8 @@ private constructor( * Last known orientation value received in real-time from the transit * vehicle. */ + @JsonProperty("lastKnownOrientation") + @ExcludeMissing fun lastKnownOrientation(lastKnownOrientation: JsonField) = apply { this.lastKnownOrientation = lastKnownOrientation } @@ -1862,6 +1804,8 @@ private constructor( * Timestamp of the last known real-time location update from the transit * vehicle. */ + @JsonProperty("lastLocationUpdateTime") + @ExcludeMissing fun lastLocationUpdateTime(lastLocationUpdateTime: JsonField) = apply { this.lastLocationUpdateTime = lastLocationUpdateTime @@ -1876,6 +1820,8 @@ private constructor( /** * Timestamp of the last known real-time update from the transit vehicle. */ + @JsonProperty("lastUpdateTime") + @ExcludeMissing fun lastUpdateTime(lastUpdateTime: JsonField) = apply { this.lastUpdateTime = lastUpdateTime } @@ -1884,6 +1830,8 @@ private constructor( fun nextStop(nextStop: String) = nextStop(JsonField.of(nextStop)) /** ID of the next stop the transit vehicle is scheduled to arrive at. */ + @JsonProperty("nextStop") + @ExcludeMissing fun nextStop(nextStop: JsonField) = apply { this.nextStop = nextStop } @@ -1899,6 +1847,8 @@ private constructor( * Time offset from the next stop to the current position of the transit * vehicle (in seconds). */ + @JsonProperty("nextStopTimeOffset") + @ExcludeMissing fun nextStopTimeOffset(nextStopTimeOffset: JsonField) = apply { this.nextStopTimeOffset = nextStopTimeOffset } @@ -1908,6 +1858,8 @@ private constructor( occupancyCapacity(JsonField.of(occupancyCapacity)) /** Capacity of the transit vehicle in terms of occupancy. */ + @JsonProperty("occupancyCapacity") + @ExcludeMissing fun occupancyCapacity(occupancyCapacity: JsonField) = apply { this.occupancyCapacity = occupancyCapacity } @@ -1917,6 +1869,8 @@ private constructor( occupancyCount(JsonField.of(occupancyCount)) /** Current count of occupants in the transit vehicle. */ + @JsonProperty("occupancyCount") + @ExcludeMissing fun occupancyCount(occupancyCount: JsonField) = apply { this.occupancyCount = occupancyCount } @@ -1926,6 +1880,8 @@ private constructor( occupancyStatus(JsonField.of(occupancyStatus)) /** Current occupancy status of the transit vehicle. */ + @JsonProperty("occupancyStatus") + @ExcludeMissing fun occupancyStatus(occupancyStatus: JsonField) = apply { this.occupancyStatus = occupancyStatus } @@ -1939,6 +1895,8 @@ private constructor( /** * Orientation of the transit vehicle, represented as an angle in degrees. */ + @JsonProperty("orientation") + @ExcludeMissing fun orientation(orientation: JsonField) = apply { this.orientation = orientation } @@ -1947,12 +1905,16 @@ private constructor( fun phase(phase: String) = phase(JsonField.of(phase)) /** Current journey phase of the trip. */ + @JsonProperty("phase") + @ExcludeMissing fun phase(phase: JsonField) = apply { this.phase = phase } /** Current position of the transit vehicle. */ fun position(position: Position) = position(JsonField.of(position)) /** Current position of the transit vehicle. */ + @JsonProperty("position") + @ExcludeMissing fun position(position: JsonField) = apply { this.position = position } @@ -1961,6 +1923,8 @@ private constructor( fun predicted(predicted: Boolean) = predicted(JsonField.of(predicted)) /** Indicates if real-time arrival info is available for this trip. */ + @JsonProperty("predicted") + @ExcludeMissing fun predicted(predicted: JsonField) = apply { this.predicted = predicted } @@ -1976,6 +1940,8 @@ private constructor( * Deviation from the schedule in seconds (positive for late, negative for * early). */ + @JsonProperty("scheduleDeviation") + @ExcludeMissing fun scheduleDeviation(scheduleDeviation: JsonField) = apply { this.scheduleDeviation = scheduleDeviation } @@ -1991,6 +1957,8 @@ private constructor( * Distance, in meters, the transit vehicle is scheduled to have progressed * along the active trip. */ + @JsonProperty("scheduledDistanceAlongTrip") + @ExcludeMissing fun scheduledDistanceAlongTrip( scheduledDistanceAlongTrip: JsonField ) = apply { this.scheduledDistanceAlongTrip = scheduledDistanceAlongTrip } @@ -2005,6 +1973,8 @@ private constructor( * Time, in milliseconds since the Unix epoch, of midnight for the start of * the service date for the trip. */ + @JsonProperty("serviceDate") + @ExcludeMissing fun serviceDate(serviceDate: JsonField) = apply { this.serviceDate = serviceDate } @@ -2014,6 +1984,8 @@ private constructor( situationIds(JsonField.of(situationIds)) /** References to situation elements (if any) applicable to this trip. */ + @JsonProperty("situationIds") + @ExcludeMissing fun situationIds(situationIds: JsonField>) = apply { this.situationIds = situationIds } @@ -2022,6 +1994,8 @@ private constructor( fun status(status: String) = status(JsonField.of(status)) /** Current status modifiers for the trip. */ + @JsonProperty("status") + @ExcludeMissing fun status(status: JsonField) = apply { this.status = status } /** Total length of the trip, in meters. */ @@ -2029,6 +2003,8 @@ private constructor( totalDistanceAlongTrip(JsonField.of(totalDistanceAlongTrip)) /** Total length of the trip, in meters. */ + @JsonProperty("totalDistanceAlongTrip") + @ExcludeMissing fun totalDistanceAlongTrip(totalDistanceAlongTrip: JsonField) = apply { this.totalDistanceAlongTrip = totalDistanceAlongTrip @@ -2038,6 +2014,8 @@ private constructor( fun vehicleId(vehicleId: String) = vehicleId(JsonField.of(vehicleId)) /** ID of the transit vehicle currently serving the trip. */ + @JsonProperty("vehicleId") + @ExcludeMissing fun vehicleId(vehicleId: JsonField) = apply { this.vehicleId = vehicleId } @@ -2045,25 +2023,18 @@ private constructor( fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): TripStatus = TripStatus( activeTripId, @@ -2098,21 +2069,17 @@ private constructor( } /** Last known location of the transit vehicle. */ + @JsonDeserialize(builder = LastKnownLocation.Builder::class) @NoAutoDetect class LastKnownLocation - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Latitude of the last known location of the transit vehicle. */ fun lat(): Double? = lat.getNullable("lat") @@ -2129,8 +2096,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): LastKnownLocation = apply { if (!validated) { lat() @@ -2154,46 +2119,42 @@ private constructor( mutableMapOf() internal fun from(lastKnownLocation: LastKnownLocation) = apply { - lat = lastKnownLocation.lat - lon = lastKnownLocation.lon - additionalProperties = - lastKnownLocation.additionalProperties.toMutableMap() + this.lat = lastKnownLocation.lat + this.lon = lastKnownLocation.lon + additionalProperties(lastKnownLocation.additionalProperties) } /** Latitude of the last known location of the transit vehicle. */ fun lat(lat: Double) = lat(JsonField.of(lat)) /** Latitude of the last known location of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } /** Longitude of the last known location of the transit vehicle. */ fun lon(lon: Double) = lon(JsonField.of(lon)) /** Longitude of the last known location of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): LastKnownLocation = LastKnownLocation( lat, @@ -2221,21 +2182,17 @@ private constructor( } /** Current position of the transit vehicle. */ + @JsonDeserialize(builder = Position.Builder::class) @NoAutoDetect class Position - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Latitude of the current position of the transit vehicle. */ fun lat(): Double? = lat.getNullable("lat") @@ -2252,8 +2209,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Position = apply { if (!validated) { lat() @@ -2277,45 +2232,42 @@ private constructor( mutableMapOf() internal fun from(position: Position) = apply { - lat = position.lat - lon = position.lon - additionalProperties = position.additionalProperties.toMutableMap() + this.lat = position.lat + this.lon = position.lon + additionalProperties(position.additionalProperties) } /** Latitude of the current position of the transit vehicle. */ fun lat(lat: Double) = lat(JsonField.of(lat)) /** Latitude of the current position of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } /** Longitude of the current position of the transit vehicle. */ fun lon(lon: Double) = lon(JsonField.of(lon)) /** Longitude of the current position of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Position = Position( lat, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ArrivalAndDepartureRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ArrivalAndDepartureRetrieveResponse.kt index 541b7bd..161beea 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ArrivalAndDepartureRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ArrivalAndDepartureRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = ArrivalAndDepartureRetrieveResponse.Builder::class) @NoAutoDetect class ArrivalAndDepartureRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): ArrivalAndDepartureRetrieveResponse = apply { if (!validated) { code() @@ -95,54 +90,58 @@ private constructor( internal fun from( arrivalAndDepartureRetrieveResponse: ArrivalAndDepartureRetrieveResponse ) = apply { - code = arrivalAndDepartureRetrieveResponse.code - currentTime = arrivalAndDepartureRetrieveResponse.currentTime - text = arrivalAndDepartureRetrieveResponse.text - version = arrivalAndDepartureRetrieveResponse.version - data = arrivalAndDepartureRetrieveResponse.data - additionalProperties = - arrivalAndDepartureRetrieveResponse.additionalProperties.toMutableMap() + this.code = arrivalAndDepartureRetrieveResponse.code + this.currentTime = arrivalAndDepartureRetrieveResponse.currentTime + this.text = arrivalAndDepartureRetrieveResponse.text + this.version = arrivalAndDepartureRetrieveResponse.version + this.data = arrivalAndDepartureRetrieveResponse.data + additionalProperties(arrivalAndDepartureRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): ArrivalAndDepartureRetrieveResponse = ArrivalAndDepartureRetrieveResponse( code, @@ -154,20 +153,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -180,8 +176,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -204,40 +198,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -246,116 +239,49 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("actualTrack") - @ExcludeMissing - private val actualTrack: JsonField = JsonMissing.of(), - @JsonProperty("arrivalEnabled") - @ExcludeMissing - private val arrivalEnabled: JsonField = JsonMissing.of(), - @JsonProperty("blockTripSequence") - @ExcludeMissing - private val blockTripSequence: JsonField = JsonMissing.of(), - @JsonProperty("departureEnabled") - @ExcludeMissing - private val departureEnabled: JsonField = JsonMissing.of(), - @JsonProperty("distanceFromStop") - @ExcludeMissing - private val distanceFromStop: JsonField = JsonMissing.of(), - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("historicalOccupancy") - @ExcludeMissing - private val historicalOccupancy: JsonField = JsonMissing.of(), - @JsonProperty("lastUpdateTime") - @ExcludeMissing - private val lastUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("numberOfStopsAway") - @ExcludeMissing - private val numberOfStopsAway: JsonField = JsonMissing.of(), - @JsonProperty("occupancyStatus") - @ExcludeMissing - private val occupancyStatus: JsonField = JsonMissing.of(), - @JsonProperty("predicted") - @ExcludeMissing - private val predicted: JsonField = JsonMissing.of(), - @JsonProperty("predictedArrivalInterval") - @ExcludeMissing - private val predictedArrivalInterval: JsonField = JsonMissing.of(), - @JsonProperty("predictedArrivalTime") - @ExcludeMissing - private val predictedArrivalTime: JsonField = JsonMissing.of(), - @JsonProperty("predictedDepartureInterval") - @ExcludeMissing - private val predictedDepartureInterval: JsonField = JsonMissing.of(), - @JsonProperty("predictedDepartureTime") - @ExcludeMissing - private val predictedDepartureTime: JsonField = JsonMissing.of(), - @JsonProperty("predictedOccupancy") - @ExcludeMissing - private val predictedOccupancy: JsonField = JsonMissing.of(), - @JsonProperty("routeId") - @ExcludeMissing - private val routeId: JsonField = JsonMissing.of(), - @JsonProperty("routeLongName") - @ExcludeMissing - private val routeLongName: JsonField = JsonMissing.of(), - @JsonProperty("routeShortName") - @ExcludeMissing - private val routeShortName: JsonField = JsonMissing.of(), - @JsonProperty("scheduledArrivalInterval") - @ExcludeMissing - private val scheduledArrivalInterval: JsonField = JsonMissing.of(), - @JsonProperty("scheduledArrivalTime") - @ExcludeMissing - private val scheduledArrivalTime: JsonField = JsonMissing.of(), - @JsonProperty("scheduledDepartureInterval") - @ExcludeMissing - private val scheduledDepartureInterval: JsonField = JsonMissing.of(), - @JsonProperty("scheduledDepartureTime") - @ExcludeMissing - private val scheduledDepartureTime: JsonField = JsonMissing.of(), - @JsonProperty("scheduledTrack") - @ExcludeMissing - private val scheduledTrack: JsonField = JsonMissing.of(), - @JsonProperty("serviceDate") - @ExcludeMissing - private val serviceDate: JsonField = JsonMissing.of(), - @JsonProperty("situationIds") - @ExcludeMissing - private val situationIds: JsonField> = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("stopId") - @ExcludeMissing - private val stopId: JsonField = JsonMissing.of(), - @JsonProperty("stopSequence") - @ExcludeMissing - private val stopSequence: JsonField = JsonMissing.of(), - @JsonProperty("totalStopsInTrip") - @ExcludeMissing - private val totalStopsInTrip: JsonField = JsonMissing.of(), - @JsonProperty("tripHeadsign") - @ExcludeMissing - private val tripHeadsign: JsonField = JsonMissing.of(), - @JsonProperty("tripId") - @ExcludeMissing - private val tripId: JsonField = JsonMissing.of(), - @JsonProperty("tripStatus") - @ExcludeMissing - private val tripStatus: JsonField = JsonMissing.of(), - @JsonProperty("vehicleId") - @ExcludeMissing - private val vehicleId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val actualTrack: JsonField, + private val arrivalEnabled: JsonField, + private val blockTripSequence: JsonField, + private val departureEnabled: JsonField, + private val distanceFromStop: JsonField, + private val frequency: JsonField, + private val historicalOccupancy: JsonField, + private val lastUpdateTime: JsonField, + private val numberOfStopsAway: JsonField, + private val occupancyStatus: JsonField, + private val predicted: JsonField, + private val predictedArrivalInterval: JsonField, + private val predictedArrivalTime: JsonField, + private val predictedDepartureInterval: JsonField, + private val predictedDepartureTime: JsonField, + private val predictedOccupancy: JsonField, + private val routeId: JsonField, + private val routeLongName: JsonField, + private val routeShortName: JsonField, + private val scheduledArrivalInterval: JsonField, + private val scheduledArrivalTime: JsonField, + private val scheduledDepartureInterval: JsonField, + private val scheduledDepartureTime: JsonField, + private val scheduledTrack: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val status: JsonField, + private val stopId: JsonField, + private val stopSequence: JsonField, + private val totalStopsInTrip: JsonField, + private val tripHeadsign: JsonField, + private val tripId: JsonField, + private val tripStatus: JsonField, + private val vehicleId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** The actual track information of the arriving transit vehicle. */ fun actualTrack(): String? = actualTrack.getNullable("actualTrack") @@ -651,8 +577,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { actualTrack() @@ -739,47 +663,49 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - actualTrack = entry.actualTrack - arrivalEnabled = entry.arrivalEnabled - blockTripSequence = entry.blockTripSequence - departureEnabled = entry.departureEnabled - distanceFromStop = entry.distanceFromStop - frequency = entry.frequency - historicalOccupancy = entry.historicalOccupancy - lastUpdateTime = entry.lastUpdateTime - numberOfStopsAway = entry.numberOfStopsAway - occupancyStatus = entry.occupancyStatus - predicted = entry.predicted - predictedArrivalInterval = entry.predictedArrivalInterval - predictedArrivalTime = entry.predictedArrivalTime - predictedDepartureInterval = entry.predictedDepartureInterval - predictedDepartureTime = entry.predictedDepartureTime - predictedOccupancy = entry.predictedOccupancy - routeId = entry.routeId - routeLongName = entry.routeLongName - routeShortName = entry.routeShortName - scheduledArrivalInterval = entry.scheduledArrivalInterval - scheduledArrivalTime = entry.scheduledArrivalTime - scheduledDepartureInterval = entry.scheduledDepartureInterval - scheduledDepartureTime = entry.scheduledDepartureTime - scheduledTrack = entry.scheduledTrack - serviceDate = entry.serviceDate - situationIds = entry.situationIds - status = entry.status - stopId = entry.stopId - stopSequence = entry.stopSequence - totalStopsInTrip = entry.totalStopsInTrip - tripHeadsign = entry.tripHeadsign - tripId = entry.tripId - tripStatus = entry.tripStatus - vehicleId = entry.vehicleId - additionalProperties = entry.additionalProperties.toMutableMap() + this.actualTrack = entry.actualTrack + this.arrivalEnabled = entry.arrivalEnabled + this.blockTripSequence = entry.blockTripSequence + this.departureEnabled = entry.departureEnabled + this.distanceFromStop = entry.distanceFromStop + this.frequency = entry.frequency + this.historicalOccupancy = entry.historicalOccupancy + this.lastUpdateTime = entry.lastUpdateTime + this.numberOfStopsAway = entry.numberOfStopsAway + this.occupancyStatus = entry.occupancyStatus + this.predicted = entry.predicted + this.predictedArrivalInterval = entry.predictedArrivalInterval + this.predictedArrivalTime = entry.predictedArrivalTime + this.predictedDepartureInterval = entry.predictedDepartureInterval + this.predictedDepartureTime = entry.predictedDepartureTime + this.predictedOccupancy = entry.predictedOccupancy + this.routeId = entry.routeId + this.routeLongName = entry.routeLongName + this.routeShortName = entry.routeShortName + this.scheduledArrivalInterval = entry.scheduledArrivalInterval + this.scheduledArrivalTime = entry.scheduledArrivalTime + this.scheduledDepartureInterval = entry.scheduledDepartureInterval + this.scheduledDepartureTime = entry.scheduledDepartureTime + this.scheduledTrack = entry.scheduledTrack + this.serviceDate = entry.serviceDate + this.situationIds = entry.situationIds + this.status = entry.status + this.stopId = entry.stopId + this.stopSequence = entry.stopSequence + this.totalStopsInTrip = entry.totalStopsInTrip + this.tripHeadsign = entry.tripHeadsign + this.tripId = entry.tripId + this.tripStatus = entry.tripStatus + this.vehicleId = entry.vehicleId + additionalProperties(entry.additionalProperties) } /** The actual track information of the arriving transit vehicle. */ fun actualTrack(actualTrack: String) = actualTrack(JsonField.of(actualTrack)) /** The actual track information of the arriving transit vehicle. */ + @JsonProperty("actualTrack") + @ExcludeMissing fun actualTrack(actualTrack: JsonField) = apply { this.actualTrack = actualTrack } @@ -789,6 +715,8 @@ private constructor( arrivalEnabled(JsonField.of(arrivalEnabled)) /** Indicates if riders can arrive on this transit vehicle. */ + @JsonProperty("arrivalEnabled") + @ExcludeMissing fun arrivalEnabled(arrivalEnabled: JsonField) = apply { this.arrivalEnabled = arrivalEnabled } @@ -798,6 +726,8 @@ private constructor( blockTripSequence(JsonField.of(blockTripSequence)) /** Index of this arrivalā€™s trip into the sequence of trips for the active block. */ + @JsonProperty("blockTripSequence") + @ExcludeMissing fun blockTripSequence(blockTripSequence: JsonField) = apply { this.blockTripSequence = blockTripSequence } @@ -807,6 +737,8 @@ private constructor( departureEnabled(JsonField.of(departureEnabled)) /** Indicates if riders can depart from this transit vehicle. */ + @JsonProperty("departureEnabled") + @ExcludeMissing fun departureEnabled(departureEnabled: JsonField) = apply { this.departureEnabled = departureEnabled } @@ -816,6 +748,8 @@ private constructor( distanceFromStop(JsonField.of(distanceFromStop)) /** Distance of the arriving transit vehicle from the stop, in meters. */ + @JsonProperty("distanceFromStop") + @ExcludeMissing fun distanceFromStop(distanceFromStop: JsonField) = apply { this.distanceFromStop = distanceFromStop } @@ -824,6 +758,8 @@ private constructor( fun frequency(frequency: String) = frequency(JsonField.of(frequency)) /** Information about frequency-based scheduling, if applicable to the trip. */ + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } /** Historical occupancy information of the transit vehicle. */ @@ -831,6 +767,8 @@ private constructor( historicalOccupancy(JsonField.of(historicalOccupancy)) /** Historical occupancy information of the transit vehicle. */ + @JsonProperty("historicalOccupancy") + @ExcludeMissing fun historicalOccupancy(historicalOccupancy: JsonField) = apply { this.historicalOccupancy = historicalOccupancy } @@ -840,6 +778,8 @@ private constructor( lastUpdateTime(JsonField.of(lastUpdateTime)) /** Timestamp of the last update time for this arrival. */ + @JsonProperty("lastUpdateTime") + @ExcludeMissing fun lastUpdateTime(lastUpdateTime: JsonField) = apply { this.lastUpdateTime = lastUpdateTime } @@ -855,6 +795,8 @@ private constructor( * Number of stops between the arriving transit vehicle and the current stop * (excluding the current stop). */ + @JsonProperty("numberOfStopsAway") + @ExcludeMissing fun numberOfStopsAway(numberOfStopsAway: JsonField) = apply { this.numberOfStopsAway = numberOfStopsAway } @@ -864,6 +806,8 @@ private constructor( occupancyStatus(JsonField.of(occupancyStatus)) /** Current occupancy status of the transit vehicle. */ + @JsonProperty("occupancyStatus") + @ExcludeMissing fun occupancyStatus(occupancyStatus: JsonField) = apply { this.occupancyStatus = occupancyStatus } @@ -872,6 +816,8 @@ private constructor( fun predicted(predicted: Boolean) = predicted(JsonField.of(predicted)) /** Indicates if real-time arrival info is available for this trip. */ + @JsonProperty("predicted") + @ExcludeMissing fun predicted(predicted: JsonField) = apply { this.predicted = predicted } /** Interval for predicted arrival time, if available. */ @@ -879,6 +825,8 @@ private constructor( predictedArrivalInterval(JsonField.of(predictedArrivalInterval)) /** Interval for predicted arrival time, if available. */ + @JsonProperty("predictedArrivalInterval") + @ExcludeMissing fun predictedArrivalInterval(predictedArrivalInterval: JsonField) = apply { this.predictedArrivalInterval = predictedArrivalInterval } @@ -894,6 +842,8 @@ private constructor( * Predicted arrival time, in milliseconds since Unix epoch (zero if no real-time * available). */ + @JsonProperty("predictedArrivalTime") + @ExcludeMissing fun predictedArrivalTime(predictedArrivalTime: JsonField) = apply { this.predictedArrivalTime = predictedArrivalTime } @@ -903,6 +853,8 @@ private constructor( predictedDepartureInterval(JsonField.of(predictedDepartureInterval)) /** Interval for predicted departure time, if available. */ + @JsonProperty("predictedDepartureInterval") + @ExcludeMissing fun predictedDepartureInterval(predictedDepartureInterval: JsonField) = apply { this.predictedDepartureInterval = predictedDepartureInterval @@ -919,6 +871,8 @@ private constructor( * Predicted departure time, in milliseconds since Unix epoch (zero if no real-time * available). */ + @JsonProperty("predictedDepartureTime") + @ExcludeMissing fun predictedDepartureTime(predictedDepartureTime: JsonField) = apply { this.predictedDepartureTime = predictedDepartureTime } @@ -928,6 +882,8 @@ private constructor( predictedOccupancy(JsonField.of(predictedOccupancy)) /** Predicted occupancy status of the transit vehicle. */ + @JsonProperty("predictedOccupancy") + @ExcludeMissing fun predictedOccupancy(predictedOccupancy: JsonField) = apply { this.predictedOccupancy = predictedOccupancy } @@ -936,6 +892,8 @@ private constructor( fun routeId(routeId: String) = routeId(JsonField.of(routeId)) /** The ID of the route for the arriving vehicle. */ + @JsonProperty("routeId") + @ExcludeMissing fun routeId(routeId: JsonField) = apply { this.routeId = routeId } /** @@ -949,6 +907,8 @@ private constructor( * Optional route long name that potentially overrides the route long name in the * referenced route element. */ + @JsonProperty("routeLongName") + @ExcludeMissing fun routeLongName(routeLongName: JsonField) = apply { this.routeLongName = routeLongName } @@ -964,6 +924,8 @@ private constructor( * Optional route short name that potentially overrides the route short name in the * referenced route element. */ + @JsonProperty("routeShortName") + @ExcludeMissing fun routeShortName(routeShortName: JsonField) = apply { this.routeShortName = routeShortName } @@ -973,6 +935,8 @@ private constructor( scheduledArrivalInterval(JsonField.of(scheduledArrivalInterval)) /** Interval for scheduled arrival time. */ + @JsonProperty("scheduledArrivalInterval") + @ExcludeMissing fun scheduledArrivalInterval(scheduledArrivalInterval: JsonField) = apply { this.scheduledArrivalInterval = scheduledArrivalInterval } @@ -982,6 +946,8 @@ private constructor( scheduledArrivalTime(JsonField.of(scheduledArrivalTime)) /** Scheduled arrival time, in milliseconds since Unix epoch. */ + @JsonProperty("scheduledArrivalTime") + @ExcludeMissing fun scheduledArrivalTime(scheduledArrivalTime: JsonField) = apply { this.scheduledArrivalTime = scheduledArrivalTime } @@ -991,6 +957,8 @@ private constructor( scheduledDepartureInterval(JsonField.of(scheduledDepartureInterval)) /** Interval for scheduled departure time. */ + @JsonProperty("scheduledDepartureInterval") + @ExcludeMissing fun scheduledDepartureInterval(scheduledDepartureInterval: JsonField) = apply { this.scheduledDepartureInterval = scheduledDepartureInterval @@ -1001,6 +969,8 @@ private constructor( scheduledDepartureTime(JsonField.of(scheduledDepartureTime)) /** Scheduled departure time, in milliseconds since Unix epoch. */ + @JsonProperty("scheduledDepartureTime") + @ExcludeMissing fun scheduledDepartureTime(scheduledDepartureTime: JsonField) = apply { this.scheduledDepartureTime = scheduledDepartureTime } @@ -1010,6 +980,8 @@ private constructor( scheduledTrack(JsonField.of(scheduledTrack)) /** Scheduled track information of the arriving transit vehicle. */ + @JsonProperty("scheduledTrack") + @ExcludeMissing fun scheduledTrack(scheduledTrack: JsonField) = apply { this.scheduledTrack = scheduledTrack } @@ -1024,6 +996,8 @@ private constructor( * Time, in milliseconds since the Unix epoch, of midnight for the start of the * service date for the trip. */ + @JsonProperty("serviceDate") + @ExcludeMissing fun serviceDate(serviceDate: JsonField) = apply { this.serviceDate = serviceDate } @@ -1033,6 +1007,8 @@ private constructor( situationIds(JsonField.of(situationIds)) /** References to situation elements (if any) applicable to this arrival. */ + @JsonProperty("situationIds") + @ExcludeMissing fun situationIds(situationIds: JsonField>) = apply { this.situationIds = situationIds } @@ -1041,12 +1017,16 @@ private constructor( fun status(status: String) = status(JsonField.of(status)) /** Current status of the arrival. */ + @JsonProperty("status") + @ExcludeMissing fun status(status: JsonField) = apply { this.status = status } /** The ID of the stop the vehicle is arriving at. */ fun stopId(stopId: String) = stopId(JsonField.of(stopId)) /** The ID of the stop the vehicle is arriving at. */ + @JsonProperty("stopId") + @ExcludeMissing fun stopId(stopId: JsonField) = apply { this.stopId = stopId } /** @@ -1059,6 +1039,8 @@ private constructor( * Index of the stop into the sequence of stops that make up the trip for this * arrival. */ + @JsonProperty("stopSequence") + @ExcludeMissing fun stopSequence(stopSequence: JsonField) = apply { this.stopSequence = stopSequence } @@ -1068,6 +1050,8 @@ private constructor( totalStopsInTrip(JsonField.of(totalStopsInTrip)) /** Total number of stops visited on the trip for this arrival. */ + @JsonProperty("totalStopsInTrip") + @ExcludeMissing fun totalStopsInTrip(totalStopsInTrip: JsonField) = apply { this.totalStopsInTrip = totalStopsInTrip } @@ -1082,6 +1066,8 @@ private constructor( * Optional trip headsign that potentially overrides the trip headsign in the * referenced trip element. */ + @JsonProperty("tripHeadsign") + @ExcludeMissing fun tripHeadsign(tripHeadsign: JsonField) = apply { this.tripHeadsign = tripHeadsign } @@ -1090,12 +1076,16 @@ private constructor( fun tripId(tripId: String) = tripId(JsonField.of(tripId)) /** The ID of the trip for the arriving vehicle. */ + @JsonProperty("tripId") + @ExcludeMissing fun tripId(tripId: JsonField) = apply { this.tripId = tripId } /** Trip-specific status for the arriving transit vehicle. */ fun tripStatus(tripStatus: TripStatus) = tripStatus(JsonField.of(tripStatus)) /** Trip-specific status for the arriving transit vehicle. */ + @JsonProperty("tripStatus") + @ExcludeMissing fun tripStatus(tripStatus: JsonField) = apply { this.tripStatus = tripStatus } @@ -1104,15 +1094,18 @@ private constructor( fun vehicleId(vehicleId: String) = vehicleId(JsonField.of(vehicleId)) /** ID of the transit vehicle serving this trip. */ + @JsonProperty("vehicleId") + @ExcludeMissing fun vehicleId(vehicleId: JsonField) = apply { this.vehicleId = vehicleId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1120,14 +1113,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( actualTrack, @@ -1169,95 +1154,42 @@ private constructor( } /** Trip-specific status for the arriving transit vehicle. */ + @JsonDeserialize(builder = TripStatus.Builder::class) @NoAutoDetect class TripStatus - @JsonCreator private constructor( - @JsonProperty("activeTripId") - @ExcludeMissing - private val activeTripId: JsonField = JsonMissing.of(), - @JsonProperty("blockTripSequence") - @ExcludeMissing - private val blockTripSequence: JsonField = JsonMissing.of(), - @JsonProperty("closestStop") - @ExcludeMissing - private val closestStop: JsonField = JsonMissing.of(), - @JsonProperty("closestStopTimeOffset") - @ExcludeMissing - private val closestStopTimeOffset: JsonField = JsonMissing.of(), - @JsonProperty("distanceAlongTrip") - @ExcludeMissing - private val distanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownDistanceAlongTrip") - @ExcludeMissing - private val lastKnownDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownLocation") - @ExcludeMissing - private val lastKnownLocation: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownOrientation") - @ExcludeMissing - private val lastKnownOrientation: JsonField = JsonMissing.of(), - @JsonProperty("lastLocationUpdateTime") - @ExcludeMissing - private val lastLocationUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("lastUpdateTime") - @ExcludeMissing - private val lastUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("nextStop") - @ExcludeMissing - private val nextStop: JsonField = JsonMissing.of(), - @JsonProperty("nextStopTimeOffset") - @ExcludeMissing - private val nextStopTimeOffset: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCapacity") - @ExcludeMissing - private val occupancyCapacity: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCount") - @ExcludeMissing - private val occupancyCount: JsonField = JsonMissing.of(), - @JsonProperty("occupancyStatus") - @ExcludeMissing - private val occupancyStatus: JsonField = JsonMissing.of(), - @JsonProperty("orientation") - @ExcludeMissing - private val orientation: JsonField = JsonMissing.of(), - @JsonProperty("phase") - @ExcludeMissing - private val phase: JsonField = JsonMissing.of(), - @JsonProperty("position") - @ExcludeMissing - private val position: JsonField = JsonMissing.of(), - @JsonProperty("predicted") - @ExcludeMissing - private val predicted: JsonField = JsonMissing.of(), - @JsonProperty("scheduleDeviation") - @ExcludeMissing - private val scheduleDeviation: JsonField = JsonMissing.of(), - @JsonProperty("scheduledDistanceAlongTrip") - @ExcludeMissing - private val scheduledDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("serviceDate") - @ExcludeMissing - private val serviceDate: JsonField = JsonMissing.of(), - @JsonProperty("situationIds") - @ExcludeMissing - private val situationIds: JsonField> = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("totalDistanceAlongTrip") - @ExcludeMissing - private val totalDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("vehicleId") - @ExcludeMissing - private val vehicleId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val activeTripId: JsonField, + private val blockTripSequence: JsonField, + private val closestStop: JsonField, + private val closestStopTimeOffset: JsonField, + private val distanceAlongTrip: JsonField, + private val frequency: JsonField, + private val lastKnownDistanceAlongTrip: JsonField, + private val lastKnownLocation: JsonField, + private val lastKnownOrientation: JsonField, + private val lastLocationUpdateTime: JsonField, + private val lastUpdateTime: JsonField, + private val nextStop: JsonField, + private val nextStopTimeOffset: JsonField, + private val occupancyCapacity: JsonField, + private val occupancyCount: JsonField, + private val occupancyStatus: JsonField, + private val orientation: JsonField, + private val phase: JsonField, + private val position: JsonField, + private val predicted: JsonField, + private val scheduleDeviation: JsonField, + private val scheduledDistanceAlongTrip: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val status: JsonField, + private val totalDistanceAlongTrip: JsonField, + private val vehicleId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Trip ID of the trip the vehicle is actively serving. */ fun activeTripId(): String = activeTripId.getRequired("activeTripId") @@ -1504,8 +1436,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): TripStatus = apply { if (!validated) { activeTripId() @@ -1578,34 +1508,34 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(tripStatus: TripStatus) = apply { - activeTripId = tripStatus.activeTripId - blockTripSequence = tripStatus.blockTripSequence - closestStop = tripStatus.closestStop - closestStopTimeOffset = tripStatus.closestStopTimeOffset - distanceAlongTrip = tripStatus.distanceAlongTrip - frequency = tripStatus.frequency - lastKnownDistanceAlongTrip = tripStatus.lastKnownDistanceAlongTrip - lastKnownLocation = tripStatus.lastKnownLocation - lastKnownOrientation = tripStatus.lastKnownOrientation - lastLocationUpdateTime = tripStatus.lastLocationUpdateTime - lastUpdateTime = tripStatus.lastUpdateTime - nextStop = tripStatus.nextStop - nextStopTimeOffset = tripStatus.nextStopTimeOffset - occupancyCapacity = tripStatus.occupancyCapacity - occupancyCount = tripStatus.occupancyCount - occupancyStatus = tripStatus.occupancyStatus - orientation = tripStatus.orientation - phase = tripStatus.phase - position = tripStatus.position - predicted = tripStatus.predicted - scheduleDeviation = tripStatus.scheduleDeviation - scheduledDistanceAlongTrip = tripStatus.scheduledDistanceAlongTrip - serviceDate = tripStatus.serviceDate - situationIds = tripStatus.situationIds - status = tripStatus.status - totalDistanceAlongTrip = tripStatus.totalDistanceAlongTrip - vehicleId = tripStatus.vehicleId - additionalProperties = tripStatus.additionalProperties.toMutableMap() + this.activeTripId = tripStatus.activeTripId + this.blockTripSequence = tripStatus.blockTripSequence + this.closestStop = tripStatus.closestStop + this.closestStopTimeOffset = tripStatus.closestStopTimeOffset + this.distanceAlongTrip = tripStatus.distanceAlongTrip + this.frequency = tripStatus.frequency + this.lastKnownDistanceAlongTrip = tripStatus.lastKnownDistanceAlongTrip + this.lastKnownLocation = tripStatus.lastKnownLocation + this.lastKnownOrientation = tripStatus.lastKnownOrientation + this.lastLocationUpdateTime = tripStatus.lastLocationUpdateTime + this.lastUpdateTime = tripStatus.lastUpdateTime + this.nextStop = tripStatus.nextStop + this.nextStopTimeOffset = tripStatus.nextStopTimeOffset + this.occupancyCapacity = tripStatus.occupancyCapacity + this.occupancyCount = tripStatus.occupancyCount + this.occupancyStatus = tripStatus.occupancyStatus + this.orientation = tripStatus.orientation + this.phase = tripStatus.phase + this.position = tripStatus.position + this.predicted = tripStatus.predicted + this.scheduleDeviation = tripStatus.scheduleDeviation + this.scheduledDistanceAlongTrip = tripStatus.scheduledDistanceAlongTrip + this.serviceDate = tripStatus.serviceDate + this.situationIds = tripStatus.situationIds + this.status = tripStatus.status + this.totalDistanceAlongTrip = tripStatus.totalDistanceAlongTrip + this.vehicleId = tripStatus.vehicleId + additionalProperties(tripStatus.additionalProperties) } /** Trip ID of the trip the vehicle is actively serving. */ @@ -1613,6 +1543,8 @@ private constructor( activeTripId(JsonField.of(activeTripId)) /** Trip ID of the trip the vehicle is actively serving. */ + @JsonProperty("activeTripId") + @ExcludeMissing fun activeTripId(activeTripId: JsonField) = apply { this.activeTripId = activeTripId } @@ -1622,6 +1554,8 @@ private constructor( blockTripSequence(JsonField.of(blockTripSequence)) /** Index of the active trip into the sequence of trips for the active block. */ + @JsonProperty("blockTripSequence") + @ExcludeMissing fun blockTripSequence(blockTripSequence: JsonField) = apply { this.blockTripSequence = blockTripSequence } @@ -1630,6 +1564,8 @@ private constructor( fun closestStop(closestStop: String) = closestStop(JsonField.of(closestStop)) /** ID of the closest stop to the current location of the transit vehicle. */ + @JsonProperty("closestStop") + @ExcludeMissing fun closestStop(closestStop: JsonField) = apply { this.closestStop = closestStop } @@ -1645,6 +1581,8 @@ private constructor( * Time offset from the closest stop to the current position of the transit * vehicle (in seconds). */ + @JsonProperty("closestStopTimeOffset") + @ExcludeMissing fun closestStopTimeOffset(closestStopTimeOffset: JsonField) = apply { this.closestStopTimeOffset = closestStopTimeOffset } @@ -1660,6 +1598,8 @@ private constructor( * Distance, in meters, the transit vehicle has progressed along the active * trip. */ + @JsonProperty("distanceAlongTrip") + @ExcludeMissing fun distanceAlongTrip(distanceAlongTrip: JsonField) = apply { this.distanceAlongTrip = distanceAlongTrip } @@ -1668,6 +1608,8 @@ private constructor( fun frequency(frequency: String) = frequency(JsonField.of(frequency)) /** Information about frequency-based scheduling, if applicable to the trip. */ + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } @@ -1683,6 +1625,8 @@ private constructor( * Last known distance along the trip received in real-time from the transit * vehicle. */ + @JsonProperty("lastKnownDistanceAlongTrip") + @ExcludeMissing fun lastKnownDistanceAlongTrip(lastKnownDistanceAlongTrip: JsonField) = apply { this.lastKnownDistanceAlongTrip = lastKnownDistanceAlongTrip @@ -1693,6 +1637,8 @@ private constructor( lastKnownLocation(JsonField.of(lastKnownLocation)) /** Last known location of the transit vehicle. */ + @JsonProperty("lastKnownLocation") + @ExcludeMissing fun lastKnownLocation(lastKnownLocation: JsonField) = apply { this.lastKnownLocation = lastKnownLocation } @@ -1706,6 +1652,8 @@ private constructor( /** * Last known orientation value received in real-time from the transit vehicle. */ + @JsonProperty("lastKnownOrientation") + @ExcludeMissing fun lastKnownOrientation(lastKnownOrientation: JsonField) = apply { this.lastKnownOrientation = lastKnownOrientation } @@ -1721,6 +1669,8 @@ private constructor( * Timestamp of the last known real-time location update from the transit * vehicle. */ + @JsonProperty("lastLocationUpdateTime") + @ExcludeMissing fun lastLocationUpdateTime(lastLocationUpdateTime: JsonField) = apply { this.lastLocationUpdateTime = lastLocationUpdateTime } @@ -1730,6 +1680,8 @@ private constructor( lastUpdateTime(JsonField.of(lastUpdateTime)) /** Timestamp of the last known real-time update from the transit vehicle. */ + @JsonProperty("lastUpdateTime") + @ExcludeMissing fun lastUpdateTime(lastUpdateTime: JsonField) = apply { this.lastUpdateTime = lastUpdateTime } @@ -1738,6 +1690,8 @@ private constructor( fun nextStop(nextStop: String) = nextStop(JsonField.of(nextStop)) /** ID of the next stop the transit vehicle is scheduled to arrive at. */ + @JsonProperty("nextStop") + @ExcludeMissing fun nextStop(nextStop: JsonField) = apply { this.nextStop = nextStop } /** @@ -1751,6 +1705,8 @@ private constructor( * Time offset from the next stop to the current position of the transit vehicle * (in seconds). */ + @JsonProperty("nextStopTimeOffset") + @ExcludeMissing fun nextStopTimeOffset(nextStopTimeOffset: JsonField) = apply { this.nextStopTimeOffset = nextStopTimeOffset } @@ -1760,6 +1716,8 @@ private constructor( occupancyCapacity(JsonField.of(occupancyCapacity)) /** Capacity of the transit vehicle in terms of occupancy. */ + @JsonProperty("occupancyCapacity") + @ExcludeMissing fun occupancyCapacity(occupancyCapacity: JsonField) = apply { this.occupancyCapacity = occupancyCapacity } @@ -1769,6 +1727,8 @@ private constructor( occupancyCount(JsonField.of(occupancyCount)) /** Current count of occupants in the transit vehicle. */ + @JsonProperty("occupancyCount") + @ExcludeMissing fun occupancyCount(occupancyCount: JsonField) = apply { this.occupancyCount = occupancyCount } @@ -1778,6 +1738,8 @@ private constructor( occupancyStatus(JsonField.of(occupancyStatus)) /** Current occupancy status of the transit vehicle. */ + @JsonProperty("occupancyStatus") + @ExcludeMissing fun occupancyStatus(occupancyStatus: JsonField) = apply { this.occupancyStatus = occupancyStatus } @@ -1786,6 +1748,8 @@ private constructor( fun orientation(orientation: Double) = orientation(JsonField.of(orientation)) /** Orientation of the transit vehicle, represented as an angle in degrees. */ + @JsonProperty("orientation") + @ExcludeMissing fun orientation(orientation: JsonField) = apply { this.orientation = orientation } @@ -1794,18 +1758,24 @@ private constructor( fun phase(phase: String) = phase(JsonField.of(phase)) /** Current journey phase of the trip. */ + @JsonProperty("phase") + @ExcludeMissing fun phase(phase: JsonField) = apply { this.phase = phase } /** Current position of the transit vehicle. */ fun position(position: Position) = position(JsonField.of(position)) /** Current position of the transit vehicle. */ + @JsonProperty("position") + @ExcludeMissing fun position(position: JsonField) = apply { this.position = position } /** Indicates if real-time arrival info is available for this trip. */ fun predicted(predicted: Boolean) = predicted(JsonField.of(predicted)) /** Indicates if real-time arrival info is available for this trip. */ + @JsonProperty("predicted") + @ExcludeMissing fun predicted(predicted: JsonField) = apply { this.predicted = predicted } @@ -1821,6 +1791,8 @@ private constructor( * Deviation from the schedule in seconds (positive for late, negative for * early). */ + @JsonProperty("scheduleDeviation") + @ExcludeMissing fun scheduleDeviation(scheduleDeviation: JsonField) = apply { this.scheduleDeviation = scheduleDeviation } @@ -1836,6 +1808,8 @@ private constructor( * Distance, in meters, the transit vehicle is scheduled to have progressed * along the active trip. */ + @JsonProperty("scheduledDistanceAlongTrip") + @ExcludeMissing fun scheduledDistanceAlongTrip(scheduledDistanceAlongTrip: JsonField) = apply { this.scheduledDistanceAlongTrip = scheduledDistanceAlongTrip @@ -1851,6 +1825,8 @@ private constructor( * Time, in milliseconds since the Unix epoch, of midnight for the start of the * service date for the trip. */ + @JsonProperty("serviceDate") + @ExcludeMissing fun serviceDate(serviceDate: JsonField) = apply { this.serviceDate = serviceDate } @@ -1860,6 +1836,8 @@ private constructor( situationIds(JsonField.of(situationIds)) /** References to situation elements (if any) applicable to this trip. */ + @JsonProperty("situationIds") + @ExcludeMissing fun situationIds(situationIds: JsonField>) = apply { this.situationIds = situationIds } @@ -1868,6 +1846,8 @@ private constructor( fun status(status: String) = status(JsonField.of(status)) /** Current status modifiers for the trip. */ + @JsonProperty("status") + @ExcludeMissing fun status(status: JsonField) = apply { this.status = status } /** Total length of the trip, in meters. */ @@ -1875,6 +1855,8 @@ private constructor( totalDistanceAlongTrip(JsonField.of(totalDistanceAlongTrip)) /** Total length of the trip, in meters. */ + @JsonProperty("totalDistanceAlongTrip") + @ExcludeMissing fun totalDistanceAlongTrip(totalDistanceAlongTrip: JsonField) = apply { this.totalDistanceAlongTrip = totalDistanceAlongTrip } @@ -1883,17 +1865,20 @@ private constructor( fun vehicleId(vehicleId: String) = vehicleId(JsonField.of(vehicleId)) /** ID of the transit vehicle currently serving the trip. */ + @JsonProperty("vehicleId") + @ExcludeMissing fun vehicleId(vehicleId: JsonField) = apply { this.vehicleId = vehicleId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1901,14 +1886,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): TripStatus = TripStatus( activeTripId, @@ -1943,20 +1920,17 @@ private constructor( } /** Last known location of the transit vehicle. */ + @JsonDeserialize(builder = LastKnownLocation.Builder::class) @NoAutoDetect class LastKnownLocation - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Latitude of the last known location of the transit vehicle. */ fun lat(): Double? = lat.getNullable("lat") @@ -1973,8 +1947,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): LastKnownLocation = apply { if (!validated) { lat() @@ -1998,46 +1970,42 @@ private constructor( mutableMapOf() internal fun from(lastKnownLocation: LastKnownLocation) = apply { - lat = lastKnownLocation.lat - lon = lastKnownLocation.lon - additionalProperties = - lastKnownLocation.additionalProperties.toMutableMap() + this.lat = lastKnownLocation.lat + this.lon = lastKnownLocation.lon + additionalProperties(lastKnownLocation.additionalProperties) } /** Latitude of the last known location of the transit vehicle. */ fun lat(lat: Double) = lat(JsonField.of(lat)) /** Latitude of the last known location of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } /** Longitude of the last known location of the transit vehicle. */ fun lon(lon: Double) = lon(JsonField.of(lon)) /** Longitude of the last known location of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): LastKnownLocation = LastKnownLocation( lat, @@ -2065,20 +2033,17 @@ private constructor( } /** Current position of the transit vehicle. */ + @JsonDeserialize(builder = Position.Builder::class) @NoAutoDetect class Position - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Latitude of the current position of the transit vehicle. */ fun lat(): Double? = lat.getNullable("lat") @@ -2095,8 +2060,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Position = apply { if (!validated) { lat() @@ -2120,45 +2083,42 @@ private constructor( mutableMapOf() internal fun from(position: Position) = apply { - lat = position.lat - lon = position.lon - additionalProperties = position.additionalProperties.toMutableMap() + this.lat = position.lat + this.lon = position.lon + additionalProperties(position.additionalProperties) } /** Latitude of the current position of the transit vehicle. */ fun lat(lat: Double) = lat(JsonField.of(lat)) /** Latitude of the current position of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } /** Longitude of the current position of the transit vehicle. */ fun lon(lon: Double) = lon(JsonField.of(lon)) /** Longitude of the current position of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Position = Position( lat, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/BlockRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/BlockRetrieveResponse.kt index 2fe5211..d52a640 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/BlockRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/BlockRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = BlockRetrieveResponse.Builder::class) @NoAutoDetect class BlockRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): BlockRetrieveResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(blockRetrieveResponse: BlockRetrieveResponse) = apply { - code = blockRetrieveResponse.code - currentTime = blockRetrieveResponse.currentTime - text = blockRetrieveResponse.text - version = blockRetrieveResponse.version - data = blockRetrieveResponse.data - additionalProperties = blockRetrieveResponse.additionalProperties.toMutableMap() + this.code = blockRetrieveResponse.code + this.currentTime = blockRetrieveResponse.currentTime + this.text = blockRetrieveResponse.text + this.version = blockRetrieveResponse.version + this.data = blockRetrieveResponse.data + additionalProperties(blockRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): BlockRetrieveResponse = BlockRetrieveResponse( code, @@ -151,20 +151,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -177,8 +174,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -201,40 +196,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -243,20 +237,17 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("configurations") - @ExcludeMissing - private val configurations: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val configurations: JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun id(): String = id.getRequired("id") fun configurations(): List = configurations.getRequired("configurations") @@ -269,8 +260,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { id() @@ -293,29 +282,34 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - id = entry.id - configurations = entry.configurations - additionalProperties = entry.additionalProperties.toMutableMap() + this.id = entry.id + this.configurations = entry.configurations + additionalProperties(entry.additionalProperties) } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun configurations(configurations: List) = configurations(JsonField.of(configurations)) + @JsonProperty("configurations") + @ExcludeMissing fun configurations(configurations: JsonField>) = apply { this.configurations = configurations } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -323,14 +317,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( id, @@ -339,23 +325,18 @@ private constructor( ) } + @JsonDeserialize(builder = Configuration.Builder::class) @NoAutoDetect class Configuration - @JsonCreator private constructor( - @JsonProperty("activeServiceIds") - @ExcludeMissing - private val activeServiceIds: JsonField> = JsonMissing.of(), - @JsonProperty("inactiveServiceIds") - @ExcludeMissing - private val inactiveServiceIds: JsonField> = JsonMissing.of(), - @JsonProperty("trips") - @ExcludeMissing - private val trips: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val activeServiceIds: JsonField>, + private val inactiveServiceIds: JsonField>, + private val trips: JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun activeServiceIds(): List = activeServiceIds.getRequired("activeServiceIds") @@ -378,8 +359,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Configuration = apply { if (!validated) { activeServiceIds() @@ -404,15 +383,17 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(configuration: Configuration) = apply { - activeServiceIds = configuration.activeServiceIds - inactiveServiceIds = configuration.inactiveServiceIds - trips = configuration.trips - additionalProperties = configuration.additionalProperties.toMutableMap() + this.activeServiceIds = configuration.activeServiceIds + this.inactiveServiceIds = configuration.inactiveServiceIds + this.trips = configuration.trips + additionalProperties(configuration.additionalProperties) } fun activeServiceIds(activeServiceIds: List) = activeServiceIds(JsonField.of(activeServiceIds)) + @JsonProperty("activeServiceIds") + @ExcludeMissing fun activeServiceIds(activeServiceIds: JsonField>) = apply { this.activeServiceIds = activeServiceIds } @@ -420,21 +401,26 @@ private constructor( fun inactiveServiceIds(inactiveServiceIds: List) = inactiveServiceIds(JsonField.of(inactiveServiceIds)) + @JsonProperty("inactiveServiceIds") + @ExcludeMissing fun inactiveServiceIds(inactiveServiceIds: JsonField>) = apply { this.inactiveServiceIds = inactiveServiceIds } fun trips(trips: List) = trips(JsonField.of(trips)) + @JsonProperty("trips") + @ExcludeMissing fun trips(trips: JsonField>) = apply { this.trips = trips } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -442,14 +428,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Configuration = Configuration( activeServiceIds.map { it.toImmutable() }, @@ -459,26 +437,19 @@ private constructor( ) } + @JsonDeserialize(builder = Trip.Builder::class) @NoAutoDetect class Trip - @JsonCreator private constructor( - @JsonProperty("tripId") - @ExcludeMissing - private val tripId: JsonField = JsonMissing.of(), - @JsonProperty("distanceAlongBlock") - @ExcludeMissing - private val distanceAlongBlock: JsonField = JsonMissing.of(), - @JsonProperty("accumulatedSlackTime") - @ExcludeMissing - private val accumulatedSlackTime: JsonField = JsonMissing.of(), - @JsonProperty("blockStopTimes") - @ExcludeMissing - private val blockStopTimes: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tripId: JsonField, + private val distanceAlongBlock: JsonField, + private val accumulatedSlackTime: JsonField, + private val blockStopTimes: JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun tripId(): String = tripId.getRequired("tripId") fun distanceAlongBlock(): Double = @@ -508,8 +479,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Trip = apply { if (!validated) { tripId() @@ -538,20 +507,24 @@ private constructor( mutableMapOf() internal fun from(trip: Trip) = apply { - tripId = trip.tripId - distanceAlongBlock = trip.distanceAlongBlock - accumulatedSlackTime = trip.accumulatedSlackTime - blockStopTimes = trip.blockStopTimes - additionalProperties = trip.additionalProperties.toMutableMap() + this.tripId = trip.tripId + this.distanceAlongBlock = trip.distanceAlongBlock + this.accumulatedSlackTime = trip.accumulatedSlackTime + this.blockStopTimes = trip.blockStopTimes + additionalProperties(trip.additionalProperties) } fun tripId(tripId: String) = tripId(JsonField.of(tripId)) + @JsonProperty("tripId") + @ExcludeMissing fun tripId(tripId: JsonField) = apply { this.tripId = tripId } fun distanceAlongBlock(distanceAlongBlock: Double) = distanceAlongBlock(JsonField.of(distanceAlongBlock)) + @JsonProperty("distanceAlongBlock") + @ExcludeMissing fun distanceAlongBlock(distanceAlongBlock: JsonField) = apply { this.distanceAlongBlock = distanceAlongBlock } @@ -559,6 +532,8 @@ private constructor( fun accumulatedSlackTime(accumulatedSlackTime: Double) = accumulatedSlackTime(JsonField.of(accumulatedSlackTime)) + @JsonProperty("accumulatedSlackTime") + @ExcludeMissing fun accumulatedSlackTime(accumulatedSlackTime: JsonField) = apply { this.accumulatedSlackTime = accumulatedSlackTime } @@ -566,6 +541,8 @@ private constructor( fun blockStopTimes(blockStopTimes: List) = blockStopTimes(JsonField.of(blockStopTimes)) + @JsonProperty("blockStopTimes") + @ExcludeMissing fun blockStopTimes(blockStopTimes: JsonField>) = apply { this.blockStopTimes = blockStopTimes } @@ -573,25 +550,18 @@ private constructor( fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Trip = Trip( tripId, @@ -602,27 +572,19 @@ private constructor( ) } + @JsonDeserialize(builder = BlockStopTime.Builder::class) @NoAutoDetect class BlockStopTime - @JsonCreator private constructor( - @JsonProperty("blockSequence") - @ExcludeMissing - private val blockSequence: JsonField = JsonMissing.of(), - @JsonProperty("distanceAlongBlock") - @ExcludeMissing - private val distanceAlongBlock: JsonField = JsonMissing.of(), - @JsonProperty("accumulatedSlackTime") - @ExcludeMissing - private val accumulatedSlackTime: JsonField = JsonMissing.of(), - @JsonProperty("stopTime") - @ExcludeMissing - private val stopTime: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val blockSequence: JsonField, + private val distanceAlongBlock: JsonField, + private val accumulatedSlackTime: JsonField, + private val stopTime: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun blockSequence(): Long = blockSequence.getRequired("blockSequence") fun distanceAlongBlock(): Double = @@ -651,8 +613,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): BlockStopTime = apply { if (!validated) { blockSequence() @@ -680,17 +640,18 @@ private constructor( mutableMapOf() internal fun from(blockStopTime: BlockStopTime) = apply { - blockSequence = blockStopTime.blockSequence - distanceAlongBlock = blockStopTime.distanceAlongBlock - accumulatedSlackTime = blockStopTime.accumulatedSlackTime - stopTime = blockStopTime.stopTime - additionalProperties = - blockStopTime.additionalProperties.toMutableMap() + this.blockSequence = blockStopTime.blockSequence + this.distanceAlongBlock = blockStopTime.distanceAlongBlock + this.accumulatedSlackTime = blockStopTime.accumulatedSlackTime + this.stopTime = blockStopTime.stopTime + additionalProperties(blockStopTime.additionalProperties) } fun blockSequence(blockSequence: Long) = blockSequence(JsonField.of(blockSequence)) + @JsonProperty("blockSequence") + @ExcludeMissing fun blockSequence(blockSequence: JsonField) = apply { this.blockSequence = blockSequence } @@ -698,6 +659,8 @@ private constructor( fun distanceAlongBlock(distanceAlongBlock: Double) = distanceAlongBlock(JsonField.of(distanceAlongBlock)) + @JsonProperty("distanceAlongBlock") + @ExcludeMissing fun distanceAlongBlock(distanceAlongBlock: JsonField) = apply { this.distanceAlongBlock = distanceAlongBlock } @@ -705,6 +668,8 @@ private constructor( fun accumulatedSlackTime(accumulatedSlackTime: Double) = accumulatedSlackTime(JsonField.of(accumulatedSlackTime)) + @JsonProperty("accumulatedSlackTime") + @ExcludeMissing fun accumulatedSlackTime(accumulatedSlackTime: JsonField) = apply { this.accumulatedSlackTime = accumulatedSlackTime @@ -712,6 +677,8 @@ private constructor( fun stopTime(stopTime: StopTime) = stopTime(JsonField.of(stopTime)) + @JsonProperty("stopTime") + @ExcludeMissing fun stopTime(stopTime: JsonField) = apply { this.stopTime = stopTime } @@ -719,25 +686,18 @@ private constructor( fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): BlockStopTime = BlockStopTime( blockSequence, @@ -748,30 +708,20 @@ private constructor( ) } + @JsonDeserialize(builder = StopTime.Builder::class) @NoAutoDetect class StopTime - @JsonCreator private constructor( - @JsonProperty("stopId") - @ExcludeMissing - private val stopId: JsonField = JsonMissing.of(), - @JsonProperty("arrivalTime") - @ExcludeMissing - private val arrivalTime: JsonField = JsonMissing.of(), - @JsonProperty("departureTime") - @ExcludeMissing - private val departureTime: JsonField = JsonMissing.of(), - @JsonProperty("pickupType") - @ExcludeMissing - private val pickupType: JsonField = JsonMissing.of(), - @JsonProperty("dropOffType") - @ExcludeMissing - private val dropOffType: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val stopId: JsonField, + private val arrivalTime: JsonField, + private val departureTime: JsonField, + private val pickupType: JsonField, + private val dropOffType: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun stopId(): String = stopId.getRequired("stopId") fun arrivalTime(): Long = arrivalTime.getRequired("arrivalTime") @@ -805,8 +755,6 @@ private constructor( fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): StopTime = apply { if (!validated) { stopId() @@ -836,17 +784,18 @@ private constructor( mutableMapOf() internal fun from(stopTime: StopTime) = apply { - stopId = stopTime.stopId - arrivalTime = stopTime.arrivalTime - departureTime = stopTime.departureTime - pickupType = stopTime.pickupType - dropOffType = stopTime.dropOffType - additionalProperties = - stopTime.additionalProperties.toMutableMap() + this.stopId = stopTime.stopId + this.arrivalTime = stopTime.arrivalTime + this.departureTime = stopTime.departureTime + this.pickupType = stopTime.pickupType + this.dropOffType = stopTime.dropOffType + additionalProperties(stopTime.additionalProperties) } fun stopId(stopId: String) = stopId(JsonField.of(stopId)) + @JsonProperty("stopId") + @ExcludeMissing fun stopId(stopId: JsonField) = apply { this.stopId = stopId } @@ -854,6 +803,8 @@ private constructor( fun arrivalTime(arrivalTime: Long) = arrivalTime(JsonField.of(arrivalTime)) + @JsonProperty("arrivalTime") + @ExcludeMissing fun arrivalTime(arrivalTime: JsonField) = apply { this.arrivalTime = arrivalTime } @@ -861,6 +812,8 @@ private constructor( fun departureTime(departureTime: Long) = departureTime(JsonField.of(departureTime)) + @JsonProperty("departureTime") + @ExcludeMissing fun departureTime(departureTime: JsonField) = apply { this.departureTime = departureTime } @@ -868,6 +821,8 @@ private constructor( fun pickupType(pickupType: Long) = pickupType(JsonField.of(pickupType)) + @JsonProperty("pickupType") + @ExcludeMissing fun pickupType(pickupType: JsonField) = apply { this.pickupType = pickupType } @@ -875,6 +830,8 @@ private constructor( fun dropOffType(dropOffType: Long) = dropOffType(JsonField.of(dropOffType)) + @JsonProperty("dropOffType") + @ExcludeMissing fun dropOffType(dropOffType: JsonField) = apply { this.dropOffType = dropOffType } @@ -883,25 +840,18 @@ private constructor( additionalProperties: Map ) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopTime = StopTime( stopId, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ConfigRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ConfigRetrieveResponse.kt index 4b83547..1a3699c 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ConfigRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ConfigRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = ConfigRetrieveResponse.Builder::class) @NoAutoDetect class ConfigRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): ConfigRetrieveResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(configRetrieveResponse: ConfigRetrieveResponse) = apply { - code = configRetrieveResponse.code - currentTime = configRetrieveResponse.currentTime - text = configRetrieveResponse.text - version = configRetrieveResponse.version - data = configRetrieveResponse.data - additionalProperties = configRetrieveResponse.additionalProperties.toMutableMap() + this.code = configRetrieveResponse.code + this.currentTime = configRetrieveResponse.currentTime + this.text = configRetrieveResponse.text + this.version = configRetrieveResponse.version + this.data = configRetrieveResponse.data + additionalProperties(configRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): ConfigRetrieveResponse = ConfigRetrieveResponse( code, @@ -151,20 +151,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -177,8 +174,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -201,40 +196,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -243,29 +237,20 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("gitProperties") - @ExcludeMissing - private val gitProperties: JsonField = JsonMissing.of(), - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("serviceDateFrom") - @ExcludeMissing - private val serviceDateFrom: JsonField = JsonMissing.of(), - @JsonProperty("serviceDateTo") - @ExcludeMissing - private val serviceDateTo: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val gitProperties: JsonField, + private val id: JsonField, + private val name: JsonField, + private val serviceDateFrom: JsonField, + private val serviceDateTo: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun gitProperties(): GitProperties? = gitProperties.getNullable("gitProperties") fun id(): String? = id.getNullable("id") @@ -292,8 +277,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { gitProperties()?.validate() @@ -322,32 +305,40 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - gitProperties = entry.gitProperties - id = entry.id - name = entry.name - serviceDateFrom = entry.serviceDateFrom - serviceDateTo = entry.serviceDateTo - additionalProperties = entry.additionalProperties.toMutableMap() + this.gitProperties = entry.gitProperties + this.id = entry.id + this.name = entry.name + this.serviceDateFrom = entry.serviceDateFrom + this.serviceDateTo = entry.serviceDateTo + additionalProperties(entry.additionalProperties) } fun gitProperties(gitProperties: GitProperties) = gitProperties(JsonField.of(gitProperties)) + @JsonProperty("gitProperties") + @ExcludeMissing fun gitProperties(gitProperties: JsonField) = apply { this.gitProperties = gitProperties } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun name(name: String) = name(JsonField.of(name)) + @JsonProperty("name") + @ExcludeMissing fun name(name: JsonField) = apply { this.name = name } fun serviceDateFrom(serviceDateFrom: String) = serviceDateFrom(JsonField.of(serviceDateFrom)) + @JsonProperty("serviceDateFrom") + @ExcludeMissing fun serviceDateFrom(serviceDateFrom: JsonField) = apply { this.serviceDateFrom = serviceDateFrom } @@ -355,17 +346,20 @@ private constructor( fun serviceDateTo(serviceDateTo: String) = serviceDateTo(JsonField.of(serviceDateTo)) + @JsonProperty("serviceDateTo") + @ExcludeMissing fun serviceDateTo(serviceDateTo: JsonField) = apply { this.serviceDateTo = serviceDateTo } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -373,14 +367,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( gitProperties, @@ -392,74 +378,35 @@ private constructor( ) } + @JsonDeserialize(builder = GitProperties.Builder::class) @NoAutoDetect class GitProperties - @JsonCreator private constructor( - @JsonProperty("git.branch") - @ExcludeMissing - private val gitBranch: JsonField = JsonMissing.of(), - @JsonProperty("git.build.host") - @ExcludeMissing - private val gitBuildHost: JsonField = JsonMissing.of(), - @JsonProperty("git.build.time") - @ExcludeMissing - private val gitBuildTime: JsonField = JsonMissing.of(), - @JsonProperty("git.build.user.email") - @ExcludeMissing - private val gitBuildUserEmail: JsonField = JsonMissing.of(), - @JsonProperty("git.build.user.name") - @ExcludeMissing - private val gitBuildUserName: JsonField = JsonMissing.of(), - @JsonProperty("git.build.version") - @ExcludeMissing - private val gitBuildVersion: JsonField = JsonMissing.of(), - @JsonProperty("git.closest.tag.commit.count") - @ExcludeMissing - private val gitClosestTagCommitCount: JsonField = JsonMissing.of(), - @JsonProperty("git.closest.tag.name") - @ExcludeMissing - private val gitClosestTagName: JsonField = JsonMissing.of(), - @JsonProperty("git.commit.id") - @ExcludeMissing - private val gitCommitId: JsonField = JsonMissing.of(), - @JsonProperty("git.commit.id.abbrev") - @ExcludeMissing - private val gitCommitIdAbbrev: JsonField = JsonMissing.of(), - @JsonProperty("git.commit.id.describe") - @ExcludeMissing - private val gitCommitIdDescribe: JsonField = JsonMissing.of(), - @JsonProperty("git.commit.id.describe-short") - @ExcludeMissing - private val gitCommitIdDescribeShort: JsonField = JsonMissing.of(), - @JsonProperty("git.commit.message.full") - @ExcludeMissing - private val gitCommitMessageFull: JsonField = JsonMissing.of(), - @JsonProperty("git.commit.message.short") - @ExcludeMissing - private val gitCommitMessageShort: JsonField = JsonMissing.of(), - @JsonProperty("git.commit.time") - @ExcludeMissing - private val gitCommitTime: JsonField = JsonMissing.of(), - @JsonProperty("git.commit.user.email") - @ExcludeMissing - private val gitCommitUserEmail: JsonField = JsonMissing.of(), - @JsonProperty("git.commit.user.name") - @ExcludeMissing - private val gitCommitUserName: JsonField = JsonMissing.of(), - @JsonProperty("git.dirty") - @ExcludeMissing - private val gitDirty: JsonField = JsonMissing.of(), - @JsonProperty("git.remote.origin.url") - @ExcludeMissing - private val gitRemoteOriginUrl: JsonField = JsonMissing.of(), - @JsonProperty("git.tags") - @ExcludeMissing - private val gitTags: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val gitBranch: JsonField, + private val gitBuildHost: JsonField, + private val gitBuildTime: JsonField, + private val gitBuildUserEmail: JsonField, + private val gitBuildUserName: JsonField, + private val gitBuildVersion: JsonField, + private val gitClosestTagCommitCount: JsonField, + private val gitClosestTagName: JsonField, + private val gitCommitId: JsonField, + private val gitCommitIdAbbrev: JsonField, + private val gitCommitIdDescribe: JsonField, + private val gitCommitIdDescribeShort: JsonField, + private val gitCommitMessageFull: JsonField, + private val gitCommitMessageShort: JsonField, + private val gitCommitTime: JsonField, + private val gitCommitUserEmail: JsonField, + private val gitCommitUserName: JsonField, + private val gitDirty: JsonField, + private val gitRemoteOriginUrl: JsonField, + private val gitTags: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun gitBranch(): String? = gitBranch.getNullable("git.branch") fun gitBuildHost(): String? = gitBuildHost.getNullable("git.build.host") @@ -584,8 +531,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): GitProperties = apply { if (!validated) { gitBranch() @@ -644,31 +589,33 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(gitProperties: GitProperties) = apply { - gitBranch = gitProperties.gitBranch - gitBuildHost = gitProperties.gitBuildHost - gitBuildTime = gitProperties.gitBuildTime - gitBuildUserEmail = gitProperties.gitBuildUserEmail - gitBuildUserName = gitProperties.gitBuildUserName - gitBuildVersion = gitProperties.gitBuildVersion - gitClosestTagCommitCount = gitProperties.gitClosestTagCommitCount - gitClosestTagName = gitProperties.gitClosestTagName - gitCommitId = gitProperties.gitCommitId - gitCommitIdAbbrev = gitProperties.gitCommitIdAbbrev - gitCommitIdDescribe = gitProperties.gitCommitIdDescribe - gitCommitIdDescribeShort = gitProperties.gitCommitIdDescribeShort - gitCommitMessageFull = gitProperties.gitCommitMessageFull - gitCommitMessageShort = gitProperties.gitCommitMessageShort - gitCommitTime = gitProperties.gitCommitTime - gitCommitUserEmail = gitProperties.gitCommitUserEmail - gitCommitUserName = gitProperties.gitCommitUserName - gitDirty = gitProperties.gitDirty - gitRemoteOriginUrl = gitProperties.gitRemoteOriginUrl - gitTags = gitProperties.gitTags - additionalProperties = gitProperties.additionalProperties.toMutableMap() + this.gitBranch = gitProperties.gitBranch + this.gitBuildHost = gitProperties.gitBuildHost + this.gitBuildTime = gitProperties.gitBuildTime + this.gitBuildUserEmail = gitProperties.gitBuildUserEmail + this.gitBuildUserName = gitProperties.gitBuildUserName + this.gitBuildVersion = gitProperties.gitBuildVersion + this.gitClosestTagCommitCount = gitProperties.gitClosestTagCommitCount + this.gitClosestTagName = gitProperties.gitClosestTagName + this.gitCommitId = gitProperties.gitCommitId + this.gitCommitIdAbbrev = gitProperties.gitCommitIdAbbrev + this.gitCommitIdDescribe = gitProperties.gitCommitIdDescribe + this.gitCommitIdDescribeShort = gitProperties.gitCommitIdDescribeShort + this.gitCommitMessageFull = gitProperties.gitCommitMessageFull + this.gitCommitMessageShort = gitProperties.gitCommitMessageShort + this.gitCommitTime = gitProperties.gitCommitTime + this.gitCommitUserEmail = gitProperties.gitCommitUserEmail + this.gitCommitUserName = gitProperties.gitCommitUserName + this.gitDirty = gitProperties.gitDirty + this.gitRemoteOriginUrl = gitProperties.gitRemoteOriginUrl + this.gitTags = gitProperties.gitTags + additionalProperties(gitProperties.additionalProperties) } fun gitBranch(gitBranch: String) = gitBranch(JsonField.of(gitBranch)) + @JsonProperty("git.branch") + @ExcludeMissing fun gitBranch(gitBranch: JsonField) = apply { this.gitBranch = gitBranch } @@ -676,6 +623,8 @@ private constructor( fun gitBuildHost(gitBuildHost: String) = gitBuildHost(JsonField.of(gitBuildHost)) + @JsonProperty("git.build.host") + @ExcludeMissing fun gitBuildHost(gitBuildHost: JsonField) = apply { this.gitBuildHost = gitBuildHost } @@ -683,6 +632,8 @@ private constructor( fun gitBuildTime(gitBuildTime: String) = gitBuildTime(JsonField.of(gitBuildTime)) + @JsonProperty("git.build.time") + @ExcludeMissing fun gitBuildTime(gitBuildTime: JsonField) = apply { this.gitBuildTime = gitBuildTime } @@ -690,6 +641,8 @@ private constructor( fun gitBuildUserEmail(gitBuildUserEmail: String) = gitBuildUserEmail(JsonField.of(gitBuildUserEmail)) + @JsonProperty("git.build.user.email") + @ExcludeMissing fun gitBuildUserEmail(gitBuildUserEmail: JsonField) = apply { this.gitBuildUserEmail = gitBuildUserEmail } @@ -697,6 +650,8 @@ private constructor( fun gitBuildUserName(gitBuildUserName: String) = gitBuildUserName(JsonField.of(gitBuildUserName)) + @JsonProperty("git.build.user.name") + @ExcludeMissing fun gitBuildUserName(gitBuildUserName: JsonField) = apply { this.gitBuildUserName = gitBuildUserName } @@ -704,6 +659,8 @@ private constructor( fun gitBuildVersion(gitBuildVersion: String) = gitBuildVersion(JsonField.of(gitBuildVersion)) + @JsonProperty("git.build.version") + @ExcludeMissing fun gitBuildVersion(gitBuildVersion: JsonField) = apply { this.gitBuildVersion = gitBuildVersion } @@ -711,6 +668,8 @@ private constructor( fun gitClosestTagCommitCount(gitClosestTagCommitCount: String) = gitClosestTagCommitCount(JsonField.of(gitClosestTagCommitCount)) + @JsonProperty("git.closest.tag.commit.count") + @ExcludeMissing fun gitClosestTagCommitCount(gitClosestTagCommitCount: JsonField) = apply { this.gitClosestTagCommitCount = gitClosestTagCommitCount @@ -719,12 +678,16 @@ private constructor( fun gitClosestTagName(gitClosestTagName: String) = gitClosestTagName(JsonField.of(gitClosestTagName)) + @JsonProperty("git.closest.tag.name") + @ExcludeMissing fun gitClosestTagName(gitClosestTagName: JsonField) = apply { this.gitClosestTagName = gitClosestTagName } fun gitCommitId(gitCommitId: String) = gitCommitId(JsonField.of(gitCommitId)) + @JsonProperty("git.commit.id") + @ExcludeMissing fun gitCommitId(gitCommitId: JsonField) = apply { this.gitCommitId = gitCommitId } @@ -732,6 +695,8 @@ private constructor( fun gitCommitIdAbbrev(gitCommitIdAbbrev: String) = gitCommitIdAbbrev(JsonField.of(gitCommitIdAbbrev)) + @JsonProperty("git.commit.id.abbrev") + @ExcludeMissing fun gitCommitIdAbbrev(gitCommitIdAbbrev: JsonField) = apply { this.gitCommitIdAbbrev = gitCommitIdAbbrev } @@ -739,6 +704,8 @@ private constructor( fun gitCommitIdDescribe(gitCommitIdDescribe: String) = gitCommitIdDescribe(JsonField.of(gitCommitIdDescribe)) + @JsonProperty("git.commit.id.describe") + @ExcludeMissing fun gitCommitIdDescribe(gitCommitIdDescribe: JsonField) = apply { this.gitCommitIdDescribe = gitCommitIdDescribe } @@ -746,6 +713,8 @@ private constructor( fun gitCommitIdDescribeShort(gitCommitIdDescribeShort: String) = gitCommitIdDescribeShort(JsonField.of(gitCommitIdDescribeShort)) + @JsonProperty("git.commit.id.describe-short") + @ExcludeMissing fun gitCommitIdDescribeShort(gitCommitIdDescribeShort: JsonField) = apply { this.gitCommitIdDescribeShort = gitCommitIdDescribeShort @@ -754,6 +723,8 @@ private constructor( fun gitCommitMessageFull(gitCommitMessageFull: String) = gitCommitMessageFull(JsonField.of(gitCommitMessageFull)) + @JsonProperty("git.commit.message.full") + @ExcludeMissing fun gitCommitMessageFull(gitCommitMessageFull: JsonField) = apply { this.gitCommitMessageFull = gitCommitMessageFull } @@ -761,6 +732,8 @@ private constructor( fun gitCommitMessageShort(gitCommitMessageShort: String) = gitCommitMessageShort(JsonField.of(gitCommitMessageShort)) + @JsonProperty("git.commit.message.short") + @ExcludeMissing fun gitCommitMessageShort(gitCommitMessageShort: JsonField) = apply { this.gitCommitMessageShort = gitCommitMessageShort } @@ -768,6 +741,8 @@ private constructor( fun gitCommitTime(gitCommitTime: String) = gitCommitTime(JsonField.of(gitCommitTime)) + @JsonProperty("git.commit.time") + @ExcludeMissing fun gitCommitTime(gitCommitTime: JsonField) = apply { this.gitCommitTime = gitCommitTime } @@ -775,6 +750,8 @@ private constructor( fun gitCommitUserEmail(gitCommitUserEmail: String) = gitCommitUserEmail(JsonField.of(gitCommitUserEmail)) + @JsonProperty("git.commit.user.email") + @ExcludeMissing fun gitCommitUserEmail(gitCommitUserEmail: JsonField) = apply { this.gitCommitUserEmail = gitCommitUserEmail } @@ -782,32 +759,41 @@ private constructor( fun gitCommitUserName(gitCommitUserName: String) = gitCommitUserName(JsonField.of(gitCommitUserName)) + @JsonProperty("git.commit.user.name") + @ExcludeMissing fun gitCommitUserName(gitCommitUserName: JsonField) = apply { this.gitCommitUserName = gitCommitUserName } fun gitDirty(gitDirty: String) = gitDirty(JsonField.of(gitDirty)) + @JsonProperty("git.dirty") + @ExcludeMissing fun gitDirty(gitDirty: JsonField) = apply { this.gitDirty = gitDirty } fun gitRemoteOriginUrl(gitRemoteOriginUrl: String) = gitRemoteOriginUrl(JsonField.of(gitRemoteOriginUrl)) + @JsonProperty("git.remote.origin.url") + @ExcludeMissing fun gitRemoteOriginUrl(gitRemoteOriginUrl: JsonField) = apply { this.gitRemoteOriginUrl = gitRemoteOriginUrl } fun gitTags(gitTags: String) = gitTags(JsonField.of(gitTags)) + @JsonProperty("git.tags") + @ExcludeMissing fun gitTags(gitTags: JsonField) = apply { this.gitTags = gitTags } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -815,14 +801,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): GitProperties = GitProperties( gitBranch, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/CurrentTimeRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/CurrentTimeRetrieveResponse.kt index 47a6ee4..876cf3e 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/CurrentTimeRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/CurrentTimeRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = CurrentTimeRetrieveResponse.Builder::class) @NoAutoDetect class CurrentTimeRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): CurrentTimeRetrieveResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(currentTimeRetrieveResponse: CurrentTimeRetrieveResponse) = apply { - code = currentTimeRetrieveResponse.code - currentTime = currentTimeRetrieveResponse.currentTime - text = currentTimeRetrieveResponse.text - version = currentTimeRetrieveResponse.version - data = currentTimeRetrieveResponse.data - additionalProperties = currentTimeRetrieveResponse.additionalProperties.toMutableMap() + this.code = currentTimeRetrieveResponse.code + this.currentTime = currentTimeRetrieveResponse.currentTime + this.text = currentTimeRetrieveResponse.text + this.version = currentTimeRetrieveResponse.version + this.data = currentTimeRetrieveResponse.data + additionalProperties(currentTimeRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): CurrentTimeRetrieveResponse = CurrentTimeRetrieveResponse( code, @@ -151,20 +151,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -177,8 +174,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -201,40 +196,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -243,20 +237,17 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("readableTime") - @ExcludeMissing - private val readableTime: JsonField = JsonMissing.of(), - @JsonProperty("time") - @ExcludeMissing - private val time: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val readableTime: JsonField, + private val time: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun readableTime(): String? = readableTime.getNullable("readableTime") fun time(): Long? = time.getNullable("time") @@ -269,8 +260,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { readableTime() @@ -293,28 +282,33 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - readableTime = entry.readableTime - time = entry.time - additionalProperties = entry.additionalProperties.toMutableMap() + this.readableTime = entry.readableTime + this.time = entry.time + additionalProperties(entry.additionalProperties) } fun readableTime(readableTime: String) = readableTime(JsonField.of(readableTime)) + @JsonProperty("readableTime") + @ExcludeMissing fun readableTime(readableTime: JsonField) = apply { this.readableTime = readableTime } fun time(time: Long) = time(JsonField.of(time)) + @JsonProperty("time") + @ExcludeMissing fun time(time: JsonField) = apply { this.time = time } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -322,14 +316,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( readableTime, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/References.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/References.kt index 251b43c..b14db95 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/References.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/References.kt @@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.Enum import org.onebusaway.core.ExcludeMissing @@ -13,35 +14,24 @@ import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable import org.onebusaway.errors.OnebusawaySdkInvalidDataException +@JsonDeserialize(builder = References.Builder::class) @NoAutoDetect class References -@JsonCreator private constructor( - @JsonProperty("agencies") - @ExcludeMissing - private val agencies: JsonField> = JsonMissing.of(), - @JsonProperty("routes") - @ExcludeMissing - private val routes: JsonField> = JsonMissing.of(), - @JsonProperty("situations") - @ExcludeMissing - private val situations: JsonField> = JsonMissing.of(), - @JsonProperty("stopTimes") - @ExcludeMissing - private val stopTimes: JsonField> = JsonMissing.of(), - @JsonProperty("stops") - @ExcludeMissing - private val stops: JsonField> = JsonMissing.of(), - @JsonProperty("trips") - @ExcludeMissing - private val trips: JsonField> = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val agencies: JsonField>, + private val routes: JsonField>, + private val situations: JsonField>, + private val stopTimes: JsonField>, + private val stops: JsonField>, + private val trips: JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun agencies(): List = agencies.getRequired("agencies") fun routes(): List = routes.getRequired("routes") @@ -70,8 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): References = apply { if (!validated) { agencies().forEach { it.validate() } @@ -102,60 +90,67 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(references: References) = apply { - agencies = references.agencies - routes = references.routes - situations = references.situations - stopTimes = references.stopTimes - stops = references.stops - trips = references.trips - additionalProperties = references.additionalProperties.toMutableMap() + this.agencies = references.agencies + this.routes = references.routes + this.situations = references.situations + this.stopTimes = references.stopTimes + this.stops = references.stops + this.trips = references.trips + additionalProperties(references.additionalProperties) } fun agencies(agencies: List) = agencies(JsonField.of(agencies)) + @JsonProperty("agencies") + @ExcludeMissing fun agencies(agencies: JsonField>) = apply { this.agencies = agencies } fun routes(routes: List) = routes(JsonField.of(routes)) + @JsonProperty("routes") + @ExcludeMissing fun routes(routes: JsonField>) = apply { this.routes = routes } fun situations(situations: List) = situations(JsonField.of(situations)) + @JsonProperty("situations") + @ExcludeMissing fun situations(situations: JsonField>) = apply { this.situations = situations } fun stopTimes(stopTimes: List) = stopTimes(JsonField.of(stopTimes)) + @JsonProperty("stopTimes") + @ExcludeMissing fun stopTimes(stopTimes: JsonField>) = apply { this.stopTimes = stopTimes } fun stops(stops: List) = stops(JsonField.of(stops)) + @JsonProperty("stops") + @ExcludeMissing fun stops(stops: JsonField>) = apply { this.stops = stops } fun trips(trips: List) = trips(JsonField.of(trips)) + @JsonProperty("trips") + @ExcludeMissing fun trips(trips: JsonField>) = apply { this.trips = trips } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): References = References( agencies.map { it.toImmutable() }, @@ -168,40 +163,25 @@ private constructor( ) } + @JsonDeserialize(builder = Agency.Builder::class) @NoAutoDetect class Agency - @JsonCreator private constructor( - @JsonProperty("disclaimer") - @ExcludeMissing - private val disclaimer: JsonField = JsonMissing.of(), - @JsonProperty("email") - @ExcludeMissing - private val email: JsonField = JsonMissing.of(), - @JsonProperty("fareUrl") - @ExcludeMissing - private val fareUrl: JsonField = JsonMissing.of(), - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("lang") - @ExcludeMissing - private val lang: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("phone") - @ExcludeMissing - private val phone: JsonField = JsonMissing.of(), - @JsonProperty("privateService") - @ExcludeMissing - private val privateService: JsonField = JsonMissing.of(), - @JsonProperty("timezone") - @ExcludeMissing - private val timezone: JsonField = JsonMissing.of(), - @JsonProperty("url") @ExcludeMissing private val url: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val disclaimer: JsonField, + private val email: JsonField, + private val fareUrl: JsonField, + private val id: JsonField, + private val lang: JsonField, + private val name: JsonField, + private val phone: JsonField, + private val privateService: JsonField, + private val timezone: JsonField, + private val url: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun disclaimer(): String? = disclaimer.getNullable("disclaimer") fun email(): String? = email.getNullable("email") @@ -246,8 +226,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Agency = apply { if (!validated) { disclaimer() @@ -286,81 +264,96 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(agency: Agency) = apply { - disclaimer = agency.disclaimer - email = agency.email - fareUrl = agency.fareUrl - id = agency.id - lang = agency.lang - name = agency.name - phone = agency.phone - privateService = agency.privateService - timezone = agency.timezone - url = agency.url - additionalProperties = agency.additionalProperties.toMutableMap() + this.disclaimer = agency.disclaimer + this.email = agency.email + this.fareUrl = agency.fareUrl + this.id = agency.id + this.lang = agency.lang + this.name = agency.name + this.phone = agency.phone + this.privateService = agency.privateService + this.timezone = agency.timezone + this.url = agency.url + additionalProperties(agency.additionalProperties) } fun disclaimer(disclaimer: String) = disclaimer(JsonField.of(disclaimer)) + @JsonProperty("disclaimer") + @ExcludeMissing fun disclaimer(disclaimer: JsonField) = apply { this.disclaimer = disclaimer } fun email(email: String) = email(JsonField.of(email)) + @JsonProperty("email") + @ExcludeMissing fun email(email: JsonField) = apply { this.email = email } fun fareUrl(fareUrl: String) = fareUrl(JsonField.of(fareUrl)) + @JsonProperty("fareUrl") + @ExcludeMissing fun fareUrl(fareUrl: JsonField) = apply { this.fareUrl = fareUrl } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun lang(lang: String) = lang(JsonField.of(lang)) + @JsonProperty("lang") + @ExcludeMissing fun lang(lang: JsonField) = apply { this.lang = lang } fun name(name: String) = name(JsonField.of(name)) + @JsonProperty("name") + @ExcludeMissing fun name(name: JsonField) = apply { this.name = name } fun phone(phone: String) = phone(JsonField.of(phone)) + @JsonProperty("phone") + @ExcludeMissing fun phone(phone: JsonField) = apply { this.phone = phone } fun privateService(privateService: Boolean) = privateService(JsonField.of(privateService)) + @JsonProperty("privateService") + @ExcludeMissing fun privateService(privateService: JsonField) = apply { this.privateService = privateService } fun timezone(timezone: String) = timezone(JsonField.of(timezone)) + @JsonProperty("timezone") + @ExcludeMissing fun timezone(timezone: JsonField) = apply { this.timezone = timezone } fun url(url: String) = url(JsonField.of(url)) + @JsonProperty("url") + @ExcludeMissing fun url(url: JsonField) = apply { this.url = url } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Agency = Agency( disclaimer, @@ -395,38 +388,25 @@ private constructor( "Agency{disclaimer=$disclaimer, email=$email, fareUrl=$fareUrl, id=$id, lang=$lang, name=$name, phone=$phone, privateService=$privateService, timezone=$timezone, url=$url, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = Route.Builder::class) @NoAutoDetect class Route - @JsonCreator private constructor( - @JsonProperty("agencyId") - @ExcludeMissing - private val agencyId: JsonField = JsonMissing.of(), - @JsonProperty("color") - @ExcludeMissing - private val color: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("longName") - @ExcludeMissing - private val longName: JsonField = JsonMissing.of(), - @JsonProperty("nullSafeShortName") - @ExcludeMissing - private val nullSafeShortName: JsonField = JsonMissing.of(), - @JsonProperty("shortName") - @ExcludeMissing - private val shortName: JsonField = JsonMissing.of(), - @JsonProperty("textColor") - @ExcludeMissing - private val textColor: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonProperty("url") @ExcludeMissing private val url: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val agencyId: JsonField, + private val color: JsonField, + private val description: JsonField, + private val id: JsonField, + private val longName: JsonField, + private val nullSafeShortName: JsonField, + private val shortName: JsonField, + private val textColor: JsonField, + private val type: JsonField, + private val url: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun agencyId(): String = agencyId.getRequired("agencyId") fun color(): String? = color.getNullable("color") @@ -473,8 +453,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Route = apply { if (!validated) { agencyId() @@ -513,83 +491,98 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(route: Route) = apply { - agencyId = route.agencyId - color = route.color - description = route.description - id = route.id - longName = route.longName - nullSafeShortName = route.nullSafeShortName - shortName = route.shortName - textColor = route.textColor - type = route.type - url = route.url - additionalProperties = route.additionalProperties.toMutableMap() + this.agencyId = route.agencyId + this.color = route.color + this.description = route.description + this.id = route.id + this.longName = route.longName + this.nullSafeShortName = route.nullSafeShortName + this.shortName = route.shortName + this.textColor = route.textColor + this.type = route.type + this.url = route.url + additionalProperties(route.additionalProperties) } fun agencyId(agencyId: String) = agencyId(JsonField.of(agencyId)) + @JsonProperty("agencyId") + @ExcludeMissing fun agencyId(agencyId: JsonField) = apply { this.agencyId = agencyId } fun color(color: String) = color(JsonField.of(color)) + @JsonProperty("color") + @ExcludeMissing fun color(color: JsonField) = apply { this.color = color } fun description(description: String) = description(JsonField.of(description)) + @JsonProperty("description") + @ExcludeMissing fun description(description: JsonField) = apply { this.description = description } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun longName(longName: String) = longName(JsonField.of(longName)) + @JsonProperty("longName") + @ExcludeMissing fun longName(longName: JsonField) = apply { this.longName = longName } fun nullSafeShortName(nullSafeShortName: String) = nullSafeShortName(JsonField.of(nullSafeShortName)) + @JsonProperty("nullSafeShortName") + @ExcludeMissing fun nullSafeShortName(nullSafeShortName: JsonField) = apply { this.nullSafeShortName = nullSafeShortName } fun shortName(shortName: String) = shortName(JsonField.of(shortName)) + @JsonProperty("shortName") + @ExcludeMissing fun shortName(shortName: JsonField) = apply { this.shortName = shortName } fun textColor(textColor: String) = textColor(JsonField.of(textColor)) + @JsonProperty("textColor") + @ExcludeMissing fun textColor(textColor: JsonField) = apply { this.textColor = textColor } fun type(type: Long) = type(JsonField.of(type)) + @JsonProperty("type") + @ExcludeMissing fun type(type: JsonField) = apply { this.type = type } fun url(url: String) = url(JsonField.of(url)) + @JsonProperty("url") + @ExcludeMissing fun url(url: JsonField) = apply { this.url = url } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Route = Route( agencyId, @@ -624,46 +617,27 @@ private constructor( "Route{agencyId=$agencyId, color=$color, description=$description, id=$id, longName=$longName, nullSafeShortName=$nullSafeShortName, shortName=$shortName, textColor=$textColor, type=$type, url=$url, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = Situation.Builder::class) @NoAutoDetect class Situation - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("creationTime") - @ExcludeMissing - private val creationTime: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("summary") - @ExcludeMissing - private val summary: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("url") @ExcludeMissing private val url: JsonField = JsonMissing.of(), - @JsonProperty("activeWindows") - @ExcludeMissing - private val activeWindows: JsonField> = JsonMissing.of(), - @JsonProperty("allAffects") - @ExcludeMissing - private val allAffects: JsonField> = JsonMissing.of(), - @JsonProperty("consequences") - @ExcludeMissing - private val consequences: JsonField> = JsonMissing.of(), - @JsonProperty("publicationWindows") - @ExcludeMissing - private val publicationWindows: JsonField> = JsonMissing.of(), - @JsonProperty("severity") - @ExcludeMissing - private val severity: JsonField = JsonMissing.of(), - @JsonProperty("consequenceMessage") - @ExcludeMissing - private val consequenceMessage: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val creationTime: JsonField, + private val reason: JsonField, + private val summary: JsonField, + private val description: JsonField, + private val url: JsonField, + private val activeWindows: JsonField>, + private val allAffects: JsonField>, + private val consequences: JsonField>, + private val publicationWindows: JsonField>, + private val severity: JsonField, + private val consequenceMessage: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Unique identifier for the situation. */ fun id(): String = id.getRequired("id") @@ -731,8 +705,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Situation = apply { if (!validated) { id() @@ -775,31 +747,35 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(situation: Situation) = apply { - id = situation.id - creationTime = situation.creationTime - reason = situation.reason - summary = situation.summary - description = situation.description - url = situation.url - activeWindows = situation.activeWindows - allAffects = situation.allAffects - consequences = situation.consequences - publicationWindows = situation.publicationWindows - severity = situation.severity - consequenceMessage = situation.consequenceMessage - additionalProperties = situation.additionalProperties.toMutableMap() + this.id = situation.id + this.creationTime = situation.creationTime + this.reason = situation.reason + this.summary = situation.summary + this.description = situation.description + this.url = situation.url + this.activeWindows = situation.activeWindows + this.allAffects = situation.allAffects + this.consequences = situation.consequences + this.publicationWindows = situation.publicationWindows + this.severity = situation.severity + this.consequenceMessage = situation.consequenceMessage + additionalProperties(situation.additionalProperties) } /** Unique identifier for the situation. */ fun id(id: String) = id(JsonField.of(id)) /** Unique identifier for the situation. */ + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } /** Unix timestamp of when this situation was created. */ fun creationTime(creationTime: Long) = creationTime(JsonField.of(creationTime)) /** Unix timestamp of when this situation was created. */ + @JsonProperty("creationTime") + @ExcludeMissing fun creationTime(creationTime: JsonField) = apply { this.creationTime = creationTime } @@ -808,31 +784,43 @@ private constructor( fun reason(reason: Reason) = reason(JsonField.of(reason)) /** Reason for the service alert, taken from TPEG codes. */ + @JsonProperty("reason") + @ExcludeMissing fun reason(reason: JsonField) = apply { this.reason = reason } fun summary(summary: Summary) = summary(JsonField.of(summary)) + @JsonProperty("summary") + @ExcludeMissing fun summary(summary: JsonField) = apply { this.summary = summary } fun description(description: Description) = description(JsonField.of(description)) + @JsonProperty("description") + @ExcludeMissing fun description(description: JsonField) = apply { this.description = description } fun url(url: Url) = url(JsonField.of(url)) + @JsonProperty("url") + @ExcludeMissing fun url(url: JsonField) = apply { this.url = url } fun activeWindows(activeWindows: List) = activeWindows(JsonField.of(activeWindows)) + @JsonProperty("activeWindows") + @ExcludeMissing fun activeWindows(activeWindows: JsonField>) = apply { this.activeWindows = activeWindows } fun allAffects(allAffects: List) = allAffects(JsonField.of(allAffects)) + @JsonProperty("allAffects") + @ExcludeMissing fun allAffects(allAffects: JsonField>) = apply { this.allAffects = allAffects } @@ -840,6 +828,8 @@ private constructor( fun consequences(consequences: List) = consequences(JsonField.of(consequences)) + @JsonProperty("consequences") + @ExcludeMissing fun consequences(consequences: JsonField>) = apply { this.consequences = consequences } @@ -847,6 +837,8 @@ private constructor( fun publicationWindows(publicationWindows: List) = publicationWindows(JsonField.of(publicationWindows)) + @JsonProperty("publicationWindows") + @ExcludeMissing fun publicationWindows(publicationWindows: JsonField>) = apply { this.publicationWindows = publicationWindows } @@ -855,6 +847,8 @@ private constructor( fun severity(severity: String) = severity(JsonField.of(severity)) /** Severity of the situation. */ + @JsonProperty("severity") + @ExcludeMissing fun severity(severity: JsonField) = apply { this.severity = severity } /** Message regarding the consequence of the situation. */ @@ -862,29 +856,26 @@ private constructor( consequenceMessage(JsonField.of(consequenceMessage)) /** Message regarding the consequence of the situation. */ + @JsonProperty("consequenceMessage") + @ExcludeMissing fun consequenceMessage(consequenceMessage: JsonField) = apply { this.consequenceMessage = consequenceMessage } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Situation = Situation( id, @@ -903,18 +894,17 @@ private constructor( ) } + @JsonDeserialize(builder = ActiveWindow.Builder::class) @NoAutoDetect class ActiveWindow - @JsonCreator private constructor( - @JsonProperty("from") - @ExcludeMissing - private val from: JsonField = JsonMissing.of(), - @JsonProperty("to") @ExcludeMissing private val to: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val from: JsonField, + private val to: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Start time of the active window as a Unix timestamp. */ fun from(): Long? = from.getNullable("from") @@ -931,8 +921,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): ActiveWindow = apply { if (!validated) { from() @@ -955,30 +943,35 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(activeWindow: ActiveWindow) = apply { - from = activeWindow.from - to = activeWindow.to - additionalProperties = activeWindow.additionalProperties.toMutableMap() + this.from = activeWindow.from + this.to = activeWindow.to + additionalProperties(activeWindow.additionalProperties) } /** Start time of the active window as a Unix timestamp. */ fun from(from: Long) = from(JsonField.of(from)) /** Start time of the active window as a Unix timestamp. */ + @JsonProperty("from") + @ExcludeMissing fun from(from: JsonField) = apply { this.from = from } /** End time of the active window as a Unix timestamp. */ fun to(to: Long) = to(JsonField.of(to)) /** End time of the active window as a Unix timestamp. */ + @JsonProperty("to") + @ExcludeMissing fun to(to: JsonField) = apply { this.to = to } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -986,14 +979,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): ActiveWindow = ActiveWindow( from, @@ -1020,32 +1005,21 @@ private constructor( "ActiveWindow{from=$from, to=$to, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = AllAffect.Builder::class) @NoAutoDetect class AllAffect - @JsonCreator private constructor( - @JsonProperty("agencyId") - @ExcludeMissing - private val agencyId: JsonField = JsonMissing.of(), - @JsonProperty("applicationId") - @ExcludeMissing - private val applicationId: JsonField = JsonMissing.of(), - @JsonProperty("directionId") - @ExcludeMissing - private val directionId: JsonField = JsonMissing.of(), - @JsonProperty("routeId") - @ExcludeMissing - private val routeId: JsonField = JsonMissing.of(), - @JsonProperty("stopId") - @ExcludeMissing - private val stopId: JsonField = JsonMissing.of(), - @JsonProperty("tripId") - @ExcludeMissing - private val tripId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val agencyId: JsonField, + private val applicationId: JsonField, + private val directionId: JsonField, + private val routeId: JsonField, + private val stopId: JsonField, + private val tripId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Identifier for the agency. */ fun agencyId(): String? = agencyId.getNullable("agencyId") @@ -1086,8 +1060,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): AllAffect = apply { if (!validated) { agencyId() @@ -1118,19 +1090,21 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(allAffect: AllAffect) = apply { - agencyId = allAffect.agencyId - applicationId = allAffect.applicationId - directionId = allAffect.directionId - routeId = allAffect.routeId - stopId = allAffect.stopId - tripId = allAffect.tripId - additionalProperties = allAffect.additionalProperties.toMutableMap() + this.agencyId = allAffect.agencyId + this.applicationId = allAffect.applicationId + this.directionId = allAffect.directionId + this.routeId = allAffect.routeId + this.stopId = allAffect.stopId + this.tripId = allAffect.tripId + additionalProperties(allAffect.additionalProperties) } /** Identifier for the agency. */ fun agencyId(agencyId: String) = agencyId(JsonField.of(agencyId)) /** Identifier for the agency. */ + @JsonProperty("agencyId") + @ExcludeMissing fun agencyId(agencyId: JsonField) = apply { this.agencyId = agencyId } /** Identifier for the application. */ @@ -1138,6 +1112,8 @@ private constructor( applicationId(JsonField.of(applicationId)) /** Identifier for the application. */ + @JsonProperty("applicationId") + @ExcludeMissing fun applicationId(applicationId: JsonField) = apply { this.applicationId = applicationId } @@ -1146,6 +1122,8 @@ private constructor( fun directionId(directionId: String) = directionId(JsonField.of(directionId)) /** Identifier for the direction. */ + @JsonProperty("directionId") + @ExcludeMissing fun directionId(directionId: JsonField) = apply { this.directionId = directionId } @@ -1154,27 +1132,34 @@ private constructor( fun routeId(routeId: String) = routeId(JsonField.of(routeId)) /** Identifier for the route. */ + @JsonProperty("routeId") + @ExcludeMissing fun routeId(routeId: JsonField) = apply { this.routeId = routeId } /** Identifier for the stop. */ fun stopId(stopId: String) = stopId(JsonField.of(stopId)) /** Identifier for the stop. */ + @JsonProperty("stopId") + @ExcludeMissing fun stopId(stopId: JsonField) = apply { this.stopId = stopId } /** Identifier for the trip. */ fun tripId(tripId: String) = tripId(JsonField.of(tripId)) /** Identifier for the trip. */ + @JsonProperty("tripId") + @ExcludeMissing fun tripId(tripId: JsonField) = apply { this.tripId = tripId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1182,14 +1167,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): AllAffect = AllAffect( agencyId, @@ -1220,20 +1197,17 @@ private constructor( "AllAffect{agencyId=$agencyId, applicationId=$applicationId, directionId=$directionId, routeId=$routeId, stopId=$stopId, tripId=$tripId, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = Consequence.Builder::class) @NoAutoDetect class Consequence - @JsonCreator private constructor( - @JsonProperty("condition") - @ExcludeMissing - private val condition: JsonField = JsonMissing.of(), - @JsonProperty("conditionDetails") - @ExcludeMissing - private val conditionDetails: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val condition: JsonField, + private val conditionDetails: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Condition of the consequence. */ fun condition(): String? = condition.getNullable("condition") @@ -1251,8 +1225,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Consequence = apply { if (!validated) { condition() @@ -1275,31 +1247,36 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(consequence: Consequence) = apply { - condition = consequence.condition - conditionDetails = consequence.conditionDetails - additionalProperties = consequence.additionalProperties.toMutableMap() + this.condition = consequence.condition + this.conditionDetails = consequence.conditionDetails + additionalProperties(consequence.additionalProperties) } /** Condition of the consequence. */ fun condition(condition: String) = condition(JsonField.of(condition)) /** Condition of the consequence. */ + @JsonProperty("condition") + @ExcludeMissing fun condition(condition: JsonField) = apply { this.condition = condition } fun conditionDetails(conditionDetails: ConditionDetails) = conditionDetails(JsonField.of(conditionDetails)) + @JsonProperty("conditionDetails") + @ExcludeMissing fun conditionDetails(conditionDetails: JsonField) = apply { this.conditionDetails = conditionDetails } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1307,14 +1284,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Consequence = Consequence( condition, @@ -1323,20 +1292,17 @@ private constructor( ) } + @JsonDeserialize(builder = ConditionDetails.Builder::class) @NoAutoDetect class ConditionDetails - @JsonCreator private constructor( - @JsonProperty("diversionPath") - @ExcludeMissing - private val diversionPath: JsonField = JsonMissing.of(), - @JsonProperty("diversionStopIds") - @ExcludeMissing - private val diversionStopIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val diversionPath: JsonField, + private val diversionStopIds: JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun diversionPath(): DiversionPath? = diversionPath.getNullable("diversionPath") fun diversionStopIds(): List? = @@ -1352,8 +1318,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): ConditionDetails = apply { if (!validated) { diversionPath()?.validate() @@ -1376,14 +1340,16 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(conditionDetails: ConditionDetails) = apply { - diversionPath = conditionDetails.diversionPath - diversionStopIds = conditionDetails.diversionStopIds - additionalProperties = conditionDetails.additionalProperties.toMutableMap() + this.diversionPath = conditionDetails.diversionPath + this.diversionStopIds = conditionDetails.diversionStopIds + additionalProperties(conditionDetails.additionalProperties) } fun diversionPath(diversionPath: DiversionPath) = diversionPath(JsonField.of(diversionPath)) + @JsonProperty("diversionPath") + @ExcludeMissing fun diversionPath(diversionPath: JsonField) = apply { this.diversionPath = diversionPath } @@ -1391,17 +1357,20 @@ private constructor( fun diversionStopIds(diversionStopIds: List) = diversionStopIds(JsonField.of(diversionStopIds)) + @JsonProperty("diversionStopIds") + @ExcludeMissing fun diversionStopIds(diversionStopIds: JsonField>) = apply { this.diversionStopIds = diversionStopIds } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1409,14 +1378,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): ConditionDetails = ConditionDetails( diversionPath, @@ -1425,23 +1386,18 @@ private constructor( ) } + @JsonDeserialize(builder = DiversionPath.Builder::class) @NoAutoDetect class DiversionPath - @JsonCreator private constructor( - @JsonProperty("length") - @ExcludeMissing - private val length: JsonField = JsonMissing.of(), - @JsonProperty("levels") - @ExcludeMissing - private val levels: JsonField = JsonMissing.of(), - @JsonProperty("points") - @ExcludeMissing - private val points: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val length: JsonField, + private val levels: JsonField, + private val points: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Length of the diversion path. */ fun length(): Long? = length.getNullable("length") @@ -1464,8 +1420,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): DiversionPath = apply { if (!validated) { length() @@ -1491,52 +1445,51 @@ private constructor( mutableMapOf() internal fun from(diversionPath: DiversionPath) = apply { - length = diversionPath.length - levels = diversionPath.levels - points = diversionPath.points - additionalProperties = diversionPath.additionalProperties.toMutableMap() + this.length = diversionPath.length + this.levels = diversionPath.levels + this.points = diversionPath.points + additionalProperties(diversionPath.additionalProperties) } /** Length of the diversion path. */ fun length(length: Long) = length(JsonField.of(length)) /** Length of the diversion path. */ + @JsonProperty("length") + @ExcludeMissing fun length(length: JsonField) = apply { this.length = length } /** Levels of the diversion path. */ fun levels(levels: String) = levels(JsonField.of(levels)) /** Levels of the diversion path. */ + @JsonProperty("levels") + @ExcludeMissing fun levels(levels: JsonField) = apply { this.levels = levels } /** Points of the diversion path. */ fun points(points: String) = points(JsonField.of(points)) /** Points of the diversion path. */ + @JsonProperty("points") + @ExcludeMissing fun points(points: JsonField) = apply { this.points = points } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): DiversionPath = DiversionPath( length, @@ -1600,20 +1553,17 @@ private constructor( "Consequence{condition=$condition, conditionDetails=$conditionDetails, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = Description.Builder::class) @NoAutoDetect class Description - @JsonCreator private constructor( - @JsonProperty("lang") - @ExcludeMissing - private val lang: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lang: JsonField, + private val value: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Language of the description. */ fun lang(): String? = lang.getNullable("lang") @@ -1630,8 +1580,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Description = apply { if (!validated) { lang() @@ -1654,30 +1602,35 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(description: Description) = apply { - lang = description.lang - value = description.value - additionalProperties = description.additionalProperties.toMutableMap() + this.lang = description.lang + this.value = description.value + additionalProperties(description.additionalProperties) } /** Language of the description. */ fun lang(lang: String) = lang(JsonField.of(lang)) /** Language of the description. */ + @JsonProperty("lang") + @ExcludeMissing fun lang(lang: JsonField) = apply { this.lang = lang } /** Longer description of the situation. */ fun value(value: String) = value(JsonField.of(value)) /** Longer description of the situation. */ + @JsonProperty("value") + @ExcludeMissing fun value(value: JsonField) = apply { this.value = value } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1685,14 +1638,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Description = Description( lang, @@ -1719,18 +1664,17 @@ private constructor( "Description{lang=$lang, value=$value, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = PublicationWindow.Builder::class) @NoAutoDetect class PublicationWindow - @JsonCreator private constructor( - @JsonProperty("from") - @ExcludeMissing - private val from: JsonField = JsonMissing.of(), - @JsonProperty("to") @ExcludeMissing private val to: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val from: JsonField, + private val to: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Start time of the time window as a Unix timestamp. */ fun from(): Long = from.getRequired("from") @@ -1747,8 +1691,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): PublicationWindow = apply { if (!validated) { from() @@ -1771,30 +1713,35 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(publicationWindow: PublicationWindow) = apply { - from = publicationWindow.from - to = publicationWindow.to - additionalProperties = publicationWindow.additionalProperties.toMutableMap() + this.from = publicationWindow.from + this.to = publicationWindow.to + additionalProperties(publicationWindow.additionalProperties) } /** Start time of the time window as a Unix timestamp. */ fun from(from: Long) = from(JsonField.of(from)) /** Start time of the time window as a Unix timestamp. */ + @JsonProperty("from") + @ExcludeMissing fun from(from: JsonField) = apply { this.from = from } /** End time of the time window as a Unix timestamp. */ fun to(to: Long) = to(JsonField.of(to)) /** End time of the time window as a Unix timestamp. */ + @JsonProperty("to") + @ExcludeMissing fun to(to: JsonField) = apply { this.to = to } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1802,14 +1749,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): PublicationWindow = PublicationWindow( from, @@ -1911,20 +1850,17 @@ private constructor( override fun toString() = value.toString() } + @JsonDeserialize(builder = Summary.Builder::class) @NoAutoDetect class Summary - @JsonCreator private constructor( - @JsonProperty("lang") - @ExcludeMissing - private val lang: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lang: JsonField, + private val value: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Language of the summary. */ fun lang(): String? = lang.getNullable("lang") @@ -1941,8 +1877,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Summary = apply { if (!validated) { lang() @@ -1965,30 +1899,35 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(summary: Summary) = apply { - lang = summary.lang - value = summary.value - additionalProperties = summary.additionalProperties.toMutableMap() + this.lang = summary.lang + this.value = summary.value + additionalProperties(summary.additionalProperties) } /** Language of the summary. */ fun lang(lang: String) = lang(JsonField.of(lang)) /** Language of the summary. */ + @JsonProperty("lang") + @ExcludeMissing fun lang(lang: JsonField) = apply { this.lang = lang } /** Short summary of the situation. */ fun value(value: String) = value(JsonField.of(value)) /** Short summary of the situation. */ + @JsonProperty("value") + @ExcludeMissing fun value(value: JsonField) = apply { this.value = value } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1996,14 +1935,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Summary = Summary( lang, @@ -2030,20 +1961,17 @@ private constructor( "Summary{lang=$lang, value=$value, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = Url.Builder::class) @NoAutoDetect class Url - @JsonCreator private constructor( - @JsonProperty("lang") - @ExcludeMissing - private val lang: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lang: JsonField, + private val value: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Language of the URL. */ fun lang(): String? = lang.getNullable("lang") @@ -2060,8 +1988,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Url = apply { if (!validated) { lang() @@ -2084,30 +2010,35 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(url: Url) = apply { - lang = url.lang - value = url.value - additionalProperties = url.additionalProperties.toMutableMap() + this.lang = url.lang + this.value = url.value + additionalProperties(url.additionalProperties) } /** Language of the URL. */ fun lang(lang: String) = lang(JsonField.of(lang)) /** Language of the URL. */ + @JsonProperty("lang") + @ExcludeMissing fun lang(lang: JsonField) = apply { this.lang = lang } /** URL for more information about the situation. */ fun value(value: String) = value(JsonField.of(value)) /** URL for more information about the situation. */ + @JsonProperty("value") + @ExcludeMissing fun value(value: JsonField) = apply { this.value = value } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -2115,14 +2046,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Url = Url( lang, @@ -2167,41 +2090,26 @@ private constructor( "Situation{id=$id, creationTime=$creationTime, reason=$reason, summary=$summary, description=$description, url=$url, activeWindows=$activeWindows, allAffects=$allAffects, consequences=$consequences, publicationWindows=$publicationWindows, severity=$severity, consequenceMessage=$consequenceMessage, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = Stop.Builder::class) @NoAutoDetect class Stop - @JsonCreator private constructor( - @JsonProperty("code") - @ExcludeMissing - private val code: JsonField = JsonMissing.of(), - @JsonProperty("direction") - @ExcludeMissing - private val direction: JsonField = JsonMissing.of(), - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("lat") @ExcludeMissing private val lat: JsonField = JsonMissing.of(), - @JsonProperty("locationType") - @ExcludeMissing - private val locationType: JsonField = JsonMissing.of(), - @JsonProperty("lon") @ExcludeMissing private val lon: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("parent") - @ExcludeMissing - private val parent: JsonField = JsonMissing.of(), - @JsonProperty("routeIds") - @ExcludeMissing - private val routeIds: JsonField> = JsonMissing.of(), - @JsonProperty("staticRouteIds") - @ExcludeMissing - private val staticRouteIds: JsonField> = JsonMissing.of(), - @JsonProperty("wheelchairBoarding") - @ExcludeMissing - private val wheelchairBoarding: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val direction: JsonField, + private val id: JsonField, + private val lat: JsonField, + private val locationType: JsonField, + private val lon: JsonField, + private val name: JsonField, + private val parent: JsonField, + private val routeIds: JsonField>, + private val staticRouteIds: JsonField>, + private val wheelchairBoarding: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): String? = code.getNullable("code") fun direction(): String? = direction.getNullable("direction") @@ -2252,8 +2160,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Stop = apply { if (!validated) { code() @@ -2294,61 +2200,81 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(stop: Stop) = apply { - code = stop.code - direction = stop.direction - id = stop.id - lat = stop.lat - locationType = stop.locationType - lon = stop.lon - name = stop.name - parent = stop.parent - routeIds = stop.routeIds - staticRouteIds = stop.staticRouteIds - wheelchairBoarding = stop.wheelchairBoarding - additionalProperties = stop.additionalProperties.toMutableMap() + this.code = stop.code + this.direction = stop.direction + this.id = stop.id + this.lat = stop.lat + this.locationType = stop.locationType + this.lon = stop.lon + this.name = stop.name + this.parent = stop.parent + this.routeIds = stop.routeIds + this.staticRouteIds = stop.staticRouteIds + this.wheelchairBoarding = stop.wheelchairBoarding + additionalProperties(stop.additionalProperties) } fun code(code: String) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun direction(direction: String) = direction(JsonField.of(direction)) + @JsonProperty("direction") + @ExcludeMissing fun direction(direction: JsonField) = apply { this.direction = direction } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun lat(lat: Double) = lat(JsonField.of(lat)) + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } fun locationType(locationType: Long) = locationType(JsonField.of(locationType)) + @JsonProperty("locationType") + @ExcludeMissing fun locationType(locationType: JsonField) = apply { this.locationType = locationType } fun lon(lon: Double) = lon(JsonField.of(lon)) + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun name(name: String) = name(JsonField.of(name)) + @JsonProperty("name") + @ExcludeMissing fun name(name: JsonField) = apply { this.name = name } fun parent(parent: String) = parent(JsonField.of(parent)) + @JsonProperty("parent") + @ExcludeMissing fun parent(parent: JsonField) = apply { this.parent = parent } fun routeIds(routeIds: List) = routeIds(JsonField.of(routeIds)) + @JsonProperty("routeIds") + @ExcludeMissing fun routeIds(routeIds: JsonField>) = apply { this.routeIds = routeIds } fun staticRouteIds(staticRouteIds: List) = staticRouteIds(JsonField.of(staticRouteIds)) + @JsonProperty("staticRouteIds") + @ExcludeMissing fun staticRouteIds(staticRouteIds: JsonField>) = apply { this.staticRouteIds = staticRouteIds } @@ -2356,29 +2282,26 @@ private constructor( fun wheelchairBoarding(wheelchairBoarding: String) = wheelchairBoarding(JsonField.of(wheelchairBoarding)) + @JsonProperty("wheelchairBoarding") + @ExcludeMissing fun wheelchairBoarding(wheelchairBoarding: JsonField) = apply { this.wheelchairBoarding = wheelchairBoarding } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Stop = Stop( code, @@ -2414,32 +2337,21 @@ private constructor( "Stop{code=$code, direction=$direction, id=$id, lat=$lat, locationType=$locationType, lon=$lon, name=$name, parent=$parent, routeIds=$routeIds, staticRouteIds=$staticRouteIds, wheelchairBoarding=$wheelchairBoarding, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = StopTime.Builder::class) @NoAutoDetect class StopTime - @JsonCreator private constructor( - @JsonProperty("arrivalTime") - @ExcludeMissing - private val arrivalTime: JsonField = JsonMissing.of(), - @JsonProperty("departureTime") - @ExcludeMissing - private val departureTime: JsonField = JsonMissing.of(), - @JsonProperty("distanceAlongTrip") - @ExcludeMissing - private val distanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("historicalOccupancy") - @ExcludeMissing - private val historicalOccupancy: JsonField = JsonMissing.of(), - @JsonProperty("stopHeadsign") - @ExcludeMissing - private val stopHeadsign: JsonField = JsonMissing.of(), - @JsonProperty("stopId") - @ExcludeMissing - private val stopId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val arrivalTime: JsonField, + private val departureTime: JsonField, + private val distanceAlongTrip: JsonField, + private val historicalOccupancy: JsonField, + private val stopHeadsign: JsonField, + private val stopId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun arrivalTime(): Long? = arrivalTime.getNullable("arrivalTime") fun departureTime(): Long? = departureTime.getNullable("departureTime") @@ -2472,8 +2384,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): StopTime = apply { if (!validated) { arrivalTime() @@ -2504,21 +2414,25 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(stopTime: StopTime) = apply { - arrivalTime = stopTime.arrivalTime - departureTime = stopTime.departureTime - distanceAlongTrip = stopTime.distanceAlongTrip - historicalOccupancy = stopTime.historicalOccupancy - stopHeadsign = stopTime.stopHeadsign - stopId = stopTime.stopId - additionalProperties = stopTime.additionalProperties.toMutableMap() + this.arrivalTime = stopTime.arrivalTime + this.departureTime = stopTime.departureTime + this.distanceAlongTrip = stopTime.distanceAlongTrip + this.historicalOccupancy = stopTime.historicalOccupancy + this.stopHeadsign = stopTime.stopHeadsign + this.stopId = stopTime.stopId + additionalProperties(stopTime.additionalProperties) } fun arrivalTime(arrivalTime: Long) = arrivalTime(JsonField.of(arrivalTime)) + @JsonProperty("arrivalTime") + @ExcludeMissing fun arrivalTime(arrivalTime: JsonField) = apply { this.arrivalTime = arrivalTime } fun departureTime(departureTime: Long) = departureTime(JsonField.of(departureTime)) + @JsonProperty("departureTime") + @ExcludeMissing fun departureTime(departureTime: JsonField) = apply { this.departureTime = departureTime } @@ -2526,6 +2440,8 @@ private constructor( fun distanceAlongTrip(distanceAlongTrip: Double) = distanceAlongTrip(JsonField.of(distanceAlongTrip)) + @JsonProperty("distanceAlongTrip") + @ExcludeMissing fun distanceAlongTrip(distanceAlongTrip: JsonField) = apply { this.distanceAlongTrip = distanceAlongTrip } @@ -2533,39 +2449,40 @@ private constructor( fun historicalOccupancy(historicalOccupancy: String) = historicalOccupancy(JsonField.of(historicalOccupancy)) + @JsonProperty("historicalOccupancy") + @ExcludeMissing fun historicalOccupancy(historicalOccupancy: JsonField) = apply { this.historicalOccupancy = historicalOccupancy } fun stopHeadsign(stopHeadsign: String) = stopHeadsign(JsonField.of(stopHeadsign)) + @JsonProperty("stopHeadsign") + @ExcludeMissing fun stopHeadsign(stopHeadsign: JsonField) = apply { this.stopHeadsign = stopHeadsign } fun stopId(stopId: String) = stopId(JsonField.of(stopId)) + @JsonProperty("stopId") + @ExcludeMissing fun stopId(stopId: JsonField) = apply { this.stopId = stopId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopTime = StopTime( arrivalTime, @@ -2596,45 +2513,26 @@ private constructor( "StopTime{arrivalTime=$arrivalTime, departureTime=$departureTime, distanceAlongTrip=$distanceAlongTrip, historicalOccupancy=$historicalOccupancy, stopHeadsign=$stopHeadsign, stopId=$stopId, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = Trip.Builder::class) @NoAutoDetect class Trip - @JsonCreator private constructor( - @JsonProperty("blockId") - @ExcludeMissing - private val blockId: JsonField = JsonMissing.of(), - @JsonProperty("directionId") - @ExcludeMissing - private val directionId: JsonField = JsonMissing.of(), - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("peakOffpeak") - @ExcludeMissing - private val peakOffpeak: JsonField = JsonMissing.of(), - @JsonProperty("routeId") - @ExcludeMissing - private val routeId: JsonField = JsonMissing.of(), - @JsonProperty("routeShortName") - @ExcludeMissing - private val routeShortName: JsonField = JsonMissing.of(), - @JsonProperty("serviceId") - @ExcludeMissing - private val serviceId: JsonField = JsonMissing.of(), - @JsonProperty("shapeId") - @ExcludeMissing - private val shapeId: JsonField = JsonMissing.of(), - @JsonProperty("timeZone") - @ExcludeMissing - private val timeZone: JsonField = JsonMissing.of(), - @JsonProperty("tripHeadsign") - @ExcludeMissing - private val tripHeadsign: JsonField = JsonMissing.of(), - @JsonProperty("tripShortName") - @ExcludeMissing - private val tripShortName: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val blockId: JsonField, + private val directionId: JsonField, + private val id: JsonField, + private val peakOffpeak: JsonField, + private val routeId: JsonField, + private val routeShortName: JsonField, + private val serviceId: JsonField, + private val shapeId: JsonField, + private val timeZone: JsonField, + private val tripHeadsign: JsonField, + private val tripShortName: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun blockId(): String? = blockId.getNullable("blockId") fun directionId(): String? = directionId.getNullable("directionId") @@ -2683,8 +2581,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Trip = apply { if (!validated) { blockId() @@ -2725,92 +2621,109 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(trip: Trip) = apply { - blockId = trip.blockId - directionId = trip.directionId - id = trip.id - peakOffpeak = trip.peakOffpeak - routeId = trip.routeId - routeShortName = trip.routeShortName - serviceId = trip.serviceId - shapeId = trip.shapeId - timeZone = trip.timeZone - tripHeadsign = trip.tripHeadsign - tripShortName = trip.tripShortName - additionalProperties = trip.additionalProperties.toMutableMap() + this.blockId = trip.blockId + this.directionId = trip.directionId + this.id = trip.id + this.peakOffpeak = trip.peakOffpeak + this.routeId = trip.routeId + this.routeShortName = trip.routeShortName + this.serviceId = trip.serviceId + this.shapeId = trip.shapeId + this.timeZone = trip.timeZone + this.tripHeadsign = trip.tripHeadsign + this.tripShortName = trip.tripShortName + additionalProperties(trip.additionalProperties) } fun blockId(blockId: String) = blockId(JsonField.of(blockId)) + @JsonProperty("blockId") + @ExcludeMissing fun blockId(blockId: JsonField) = apply { this.blockId = blockId } fun directionId(directionId: String) = directionId(JsonField.of(directionId)) + @JsonProperty("directionId") + @ExcludeMissing fun directionId(directionId: JsonField) = apply { this.directionId = directionId } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun peakOffpeak(peakOffpeak: Long) = peakOffpeak(JsonField.of(peakOffpeak)) + @JsonProperty("peakOffpeak") + @ExcludeMissing fun peakOffpeak(peakOffpeak: JsonField) = apply { this.peakOffpeak = peakOffpeak } fun routeId(routeId: String) = routeId(JsonField.of(routeId)) + @JsonProperty("routeId") + @ExcludeMissing fun routeId(routeId: JsonField) = apply { this.routeId = routeId } fun routeShortName(routeShortName: String) = routeShortName(JsonField.of(routeShortName)) + @JsonProperty("routeShortName") + @ExcludeMissing fun routeShortName(routeShortName: JsonField) = apply { this.routeShortName = routeShortName } fun serviceId(serviceId: String) = serviceId(JsonField.of(serviceId)) + @JsonProperty("serviceId") + @ExcludeMissing fun serviceId(serviceId: JsonField) = apply { this.serviceId = serviceId } fun shapeId(shapeId: String) = shapeId(JsonField.of(shapeId)) + @JsonProperty("shapeId") + @ExcludeMissing fun shapeId(shapeId: JsonField) = apply { this.shapeId = shapeId } fun timeZone(timeZone: String) = timeZone(JsonField.of(timeZone)) + @JsonProperty("timeZone") + @ExcludeMissing fun timeZone(timeZone: JsonField) = apply { this.timeZone = timeZone } fun tripHeadsign(tripHeadsign: String) = tripHeadsign(JsonField.of(tripHeadsign)) + @JsonProperty("tripHeadsign") + @ExcludeMissing fun tripHeadsign(tripHeadsign: JsonField) = apply { this.tripHeadsign = tripHeadsign } fun tripShortName(tripShortName: String) = tripShortName(JsonField.of(tripShortName)) + @JsonProperty("tripShortName") + @ExcludeMissing fun tripShortName(tripShortName: JsonField) = apply { this.tripShortName = tripShortName } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Trip = Trip( blockId, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ResponseWrapper.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ResponseWrapper.kt index 7b81b9e..3524e4c 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ResponseWrapper.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ResponseWrapper.kt @@ -4,32 +4,29 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = ResponseWrapper.Builder::class) @NoAutoDetect class ResponseWrapper -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -50,8 +47,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): ResponseWrapper = apply { if (!validated) { code() @@ -78,48 +73,51 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(responseWrapper: ResponseWrapper) = apply { - code = responseWrapper.code - currentTime = responseWrapper.currentTime - text = responseWrapper.text - version = responseWrapper.version - additionalProperties = responseWrapper.additionalProperties.toMutableMap() + this.code = responseWrapper.code + this.currentTime = responseWrapper.currentTime + this.text = responseWrapper.text + this.version = responseWrapper.version + additionalProperties(responseWrapper.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): ResponseWrapper = ResponseWrapper( code, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RouteIdsForAgencyListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RouteIdsForAgencyListResponse.kt index 6d7ffb5..26f8905 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RouteIdsForAgencyListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RouteIdsForAgencyListResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = RouteIdsForAgencyListResponse.Builder::class) @NoAutoDetect class RouteIdsForAgencyListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): RouteIdsForAgencyListResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(routeIdsForAgencyListResponse: RouteIdsForAgencyListResponse) = apply { - code = routeIdsForAgencyListResponse.code - currentTime = routeIdsForAgencyListResponse.currentTime - text = routeIdsForAgencyListResponse.text - version = routeIdsForAgencyListResponse.version - data = routeIdsForAgencyListResponse.data - additionalProperties = routeIdsForAgencyListResponse.additionalProperties.toMutableMap() + this.code = routeIdsForAgencyListResponse.code + this.currentTime = routeIdsForAgencyListResponse.currentTime + this.text = routeIdsForAgencyListResponse.text + this.version = routeIdsForAgencyListResponse.version + this.data = routeIdsForAgencyListResponse.data + additionalProperties(routeIdsForAgencyListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): RouteIdsForAgencyListResponse = RouteIdsForAgencyListResponse( code, @@ -151,23 +151,18 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("limitExceeded") - @ExcludeMissing - private val limitExceeded: JsonField = JsonMissing.of(), - @JsonProperty("list") - @ExcludeMissing - private val list: JsonField> = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val limitExceeded: JsonField, + private val list: JsonField>, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun limitExceeded(): Boolean = limitExceeded.getRequired("limitExceeded") fun list(): List = list.getRequired("list") @@ -184,8 +179,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { limitExceeded() @@ -210,47 +203,48 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - limitExceeded = data.limitExceeded - list = data.list - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.limitExceeded = data.limitExceeded + this.list = data.list + this.references = data.references + additionalProperties(data.additionalProperties) } fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + @JsonProperty("limitExceeded") + @ExcludeMissing fun limitExceeded(limitExceeded: JsonField) = apply { this.limitExceeded = limitExceeded } fun list(list: List) = list(JsonField.of(list)) + @JsonProperty("list") + @ExcludeMissing fun list(list: JsonField>) = apply { this.list = list } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( limitExceeded, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RouteRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RouteRetrieveResponse.kt index 34f6f0a..573f63c 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RouteRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RouteRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = RouteRetrieveResponse.Builder::class) @NoAutoDetect class RouteRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): RouteRetrieveResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(routeRetrieveResponse: RouteRetrieveResponse) = apply { - code = routeRetrieveResponse.code - currentTime = routeRetrieveResponse.currentTime - text = routeRetrieveResponse.text - version = routeRetrieveResponse.version - data = routeRetrieveResponse.data - additionalProperties = routeRetrieveResponse.additionalProperties.toMutableMap() + this.code = routeRetrieveResponse.code + this.currentTime = routeRetrieveResponse.currentTime + this.text = routeRetrieveResponse.text + this.version = routeRetrieveResponse.version + this.data = routeRetrieveResponse.data + additionalProperties(routeRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): RouteRetrieveResponse = RouteRetrieveResponse( code, @@ -151,20 +151,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -177,8 +174,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -201,40 +196,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -243,44 +237,25 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("agencyId") - @ExcludeMissing - private val agencyId: JsonField = JsonMissing.of(), - @JsonProperty("color") - @ExcludeMissing - private val color: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("longName") - @ExcludeMissing - private val longName: JsonField = JsonMissing.of(), - @JsonProperty("nullSafeShortName") - @ExcludeMissing - private val nullSafeShortName: JsonField = JsonMissing.of(), - @JsonProperty("shortName") - @ExcludeMissing - private val shortName: JsonField = JsonMissing.of(), - @JsonProperty("textColor") - @ExcludeMissing - private val textColor: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonProperty("url") - @ExcludeMissing - private val url: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val agencyId: JsonField, + private val color: JsonField, + private val description: JsonField, + private val id: JsonField, + private val longName: JsonField, + private val nullSafeShortName: JsonField, + private val shortName: JsonField, + private val textColor: JsonField, + private val type: JsonField, + private val url: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun agencyId(): String = agencyId.getRequired("agencyId") fun color(): String? = color.getNullable("color") @@ -327,8 +302,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { agencyId() @@ -367,71 +340,92 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - agencyId = entry.agencyId - color = entry.color - description = entry.description - id = entry.id - longName = entry.longName - nullSafeShortName = entry.nullSafeShortName - shortName = entry.shortName - textColor = entry.textColor - type = entry.type - url = entry.url - additionalProperties = entry.additionalProperties.toMutableMap() + this.agencyId = entry.agencyId + this.color = entry.color + this.description = entry.description + this.id = entry.id + this.longName = entry.longName + this.nullSafeShortName = entry.nullSafeShortName + this.shortName = entry.shortName + this.textColor = entry.textColor + this.type = entry.type + this.url = entry.url + additionalProperties(entry.additionalProperties) } fun agencyId(agencyId: String) = agencyId(JsonField.of(agencyId)) + @JsonProperty("agencyId") + @ExcludeMissing fun agencyId(agencyId: JsonField) = apply { this.agencyId = agencyId } fun color(color: String) = color(JsonField.of(color)) + @JsonProperty("color") + @ExcludeMissing fun color(color: JsonField) = apply { this.color = color } fun description(description: String) = description(JsonField.of(description)) + @JsonProperty("description") + @ExcludeMissing fun description(description: JsonField) = apply { this.description = description } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun longName(longName: String) = longName(JsonField.of(longName)) + @JsonProperty("longName") + @ExcludeMissing fun longName(longName: JsonField) = apply { this.longName = longName } fun nullSafeShortName(nullSafeShortName: String) = nullSafeShortName(JsonField.of(nullSafeShortName)) + @JsonProperty("nullSafeShortName") + @ExcludeMissing fun nullSafeShortName(nullSafeShortName: JsonField) = apply { this.nullSafeShortName = nullSafeShortName } fun shortName(shortName: String) = shortName(JsonField.of(shortName)) + @JsonProperty("shortName") + @ExcludeMissing fun shortName(shortName: JsonField) = apply { this.shortName = shortName } fun textColor(textColor: String) = textColor(JsonField.of(textColor)) + @JsonProperty("textColor") + @ExcludeMissing fun textColor(textColor: JsonField) = apply { this.textColor = textColor } fun type(type: Long) = type(JsonField.of(type)) + @JsonProperty("type") + @ExcludeMissing fun type(type: JsonField) = apply { this.type = type } fun url(url: String) = url(JsonField.of(url)) + @JsonProperty("url") + @ExcludeMissing fun url(url: JsonField) = apply { this.url = url } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -439,14 +433,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( agencyId, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RoutesForAgencyListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RoutesForAgencyListResponse.kt index 4cd3e53..8412c93 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RoutesForAgencyListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RoutesForAgencyListResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = RoutesForAgencyListResponse.Builder::class) @NoAutoDetect class RoutesForAgencyListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): RoutesForAgencyListResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(routesForAgencyListResponse: RoutesForAgencyListResponse) = apply { - code = routesForAgencyListResponse.code - currentTime = routesForAgencyListResponse.currentTime - text = routesForAgencyListResponse.text - version = routesForAgencyListResponse.version - data = routesForAgencyListResponse.data - additionalProperties = routesForAgencyListResponse.additionalProperties.toMutableMap() + this.code = routesForAgencyListResponse.code + this.currentTime = routesForAgencyListResponse.currentTime + this.text = routesForAgencyListResponse.text + this.version = routesForAgencyListResponse.version + this.data = routesForAgencyListResponse.data + additionalProperties(routesForAgencyListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): RoutesForAgencyListResponse = RoutesForAgencyListResponse( code, @@ -151,23 +151,18 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("limitExceeded") - @ExcludeMissing - private val limitExceeded: JsonField = JsonMissing.of(), - @JsonProperty("list") - @ExcludeMissing - private val list: JsonField> = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val limitExceeded: JsonField, + private val list: JsonField>, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun limitExceeded(): Boolean = limitExceeded.getRequired("limitExceeded") fun list(): kotlin.collections.List = list.getRequired("list") @@ -184,8 +179,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { limitExceeded() @@ -210,47 +203,48 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - limitExceeded = data.limitExceeded - list = data.list - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.limitExceeded = data.limitExceeded + this.list = data.list + this.references = data.references + additionalProperties(data.additionalProperties) } fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + @JsonProperty("limitExceeded") + @ExcludeMissing fun limitExceeded(limitExceeded: JsonField) = apply { this.limitExceeded = limitExceeded } fun list(list: kotlin.collections.List) = list(JsonField.of(list)) + @JsonProperty("list") + @ExcludeMissing fun list(list: JsonField>) = apply { this.list = list } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( limitExceeded, @@ -260,44 +254,25 @@ private constructor( ) } + @JsonDeserialize(builder = List.Builder::class) @NoAutoDetect class List - @JsonCreator private constructor( - @JsonProperty("agencyId") - @ExcludeMissing - private val agencyId: JsonField = JsonMissing.of(), - @JsonProperty("color") - @ExcludeMissing - private val color: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("longName") - @ExcludeMissing - private val longName: JsonField = JsonMissing.of(), - @JsonProperty("nullSafeShortName") - @ExcludeMissing - private val nullSafeShortName: JsonField = JsonMissing.of(), - @JsonProperty("shortName") - @ExcludeMissing - private val shortName: JsonField = JsonMissing.of(), - @JsonProperty("textColor") - @ExcludeMissing - private val textColor: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonProperty("url") - @ExcludeMissing - private val url: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val agencyId: JsonField, + private val color: JsonField, + private val description: JsonField, + private val id: JsonField, + private val longName: JsonField, + private val nullSafeShortName: JsonField, + private val shortName: JsonField, + private val textColor: JsonField, + private val type: JsonField, + private val url: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun agencyId(): String = agencyId.getRequired("agencyId") fun color(): String? = color.getNullable("color") @@ -344,8 +319,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): List = apply { if (!validated) { agencyId() @@ -384,71 +357,92 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(list: List) = apply { - agencyId = list.agencyId - color = list.color - description = list.description - id = list.id - longName = list.longName - nullSafeShortName = list.nullSafeShortName - shortName = list.shortName - textColor = list.textColor - type = list.type - url = list.url - additionalProperties = list.additionalProperties.toMutableMap() + this.agencyId = list.agencyId + this.color = list.color + this.description = list.description + this.id = list.id + this.longName = list.longName + this.nullSafeShortName = list.nullSafeShortName + this.shortName = list.shortName + this.textColor = list.textColor + this.type = list.type + this.url = list.url + additionalProperties(list.additionalProperties) } fun agencyId(agencyId: String) = agencyId(JsonField.of(agencyId)) + @JsonProperty("agencyId") + @ExcludeMissing fun agencyId(agencyId: JsonField) = apply { this.agencyId = agencyId } fun color(color: String) = color(JsonField.of(color)) + @JsonProperty("color") + @ExcludeMissing fun color(color: JsonField) = apply { this.color = color } fun description(description: String) = description(JsonField.of(description)) + @JsonProperty("description") + @ExcludeMissing fun description(description: JsonField) = apply { this.description = description } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun longName(longName: String) = longName(JsonField.of(longName)) + @JsonProperty("longName") + @ExcludeMissing fun longName(longName: JsonField) = apply { this.longName = longName } fun nullSafeShortName(nullSafeShortName: String) = nullSafeShortName(JsonField.of(nullSafeShortName)) + @JsonProperty("nullSafeShortName") + @ExcludeMissing fun nullSafeShortName(nullSafeShortName: JsonField) = apply { this.nullSafeShortName = nullSafeShortName } fun shortName(shortName: String) = shortName(JsonField.of(shortName)) + @JsonProperty("shortName") + @ExcludeMissing fun shortName(shortName: JsonField) = apply { this.shortName = shortName } fun textColor(textColor: String) = textColor(JsonField.of(textColor)) + @JsonProperty("textColor") + @ExcludeMissing fun textColor(textColor: JsonField) = apply { this.textColor = textColor } fun type(type: Long) = type(JsonField.of(type)) + @JsonProperty("type") + @ExcludeMissing fun type(type: JsonField) = apply { this.type = type } fun url(url: String) = url(JsonField.of(url)) + @JsonProperty("url") + @ExcludeMissing fun url(url: JsonField) = apply { this.url = url } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -456,14 +450,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): List = List( agencyId, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RoutesForLocationListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RoutesForLocationListResponse.kt index a0576a7..c95a767 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RoutesForLocationListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/RoutesForLocationListResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = RoutesForLocationListResponse.Builder::class) @NoAutoDetect class RoutesForLocationListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): RoutesForLocationListResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(routesForLocationListResponse: RoutesForLocationListResponse) = apply { - code = routesForLocationListResponse.code - currentTime = routesForLocationListResponse.currentTime - text = routesForLocationListResponse.text - version = routesForLocationListResponse.version - data = routesForLocationListResponse.data - additionalProperties = routesForLocationListResponse.additionalProperties.toMutableMap() + this.code = routesForLocationListResponse.code + this.currentTime = routesForLocationListResponse.currentTime + this.text = routesForLocationListResponse.text + this.version = routesForLocationListResponse.version + this.data = routesForLocationListResponse.data + additionalProperties(routesForLocationListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): RoutesForLocationListResponse = RoutesForLocationListResponse( code, @@ -151,26 +151,19 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("limitExceeded") - @ExcludeMissing - private val limitExceeded: JsonField = JsonMissing.of(), - @JsonProperty("list") - @ExcludeMissing - private val list: JsonField> = JsonMissing.of(), - @JsonProperty("outOfRange") - @ExcludeMissing - private val outOfRange: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val limitExceeded: JsonField, + private val list: JsonField>, + private val outOfRange: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun limitExceeded(): Boolean = limitExceeded.getRequired("limitExceeded") fun list(): kotlin.collections.List = list.getRequired("list") @@ -191,8 +184,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { limitExceeded() @@ -219,52 +210,55 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - limitExceeded = data.limitExceeded - list = data.list - outOfRange = data.outOfRange - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.limitExceeded = data.limitExceeded + this.list = data.list + this.outOfRange = data.outOfRange + this.references = data.references + additionalProperties(data.additionalProperties) } fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + @JsonProperty("limitExceeded") + @ExcludeMissing fun limitExceeded(limitExceeded: JsonField) = apply { this.limitExceeded = limitExceeded } fun list(list: kotlin.collections.List) = list(JsonField.of(list)) + @JsonProperty("list") + @ExcludeMissing fun list(list: JsonField>) = apply { this.list = list } fun outOfRange(outOfRange: Boolean) = outOfRange(JsonField.of(outOfRange)) + @JsonProperty("outOfRange") + @ExcludeMissing fun outOfRange(outOfRange: JsonField) = apply { this.outOfRange = outOfRange } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( limitExceeded, @@ -275,44 +269,25 @@ private constructor( ) } + @JsonDeserialize(builder = List.Builder::class) @NoAutoDetect class List - @JsonCreator private constructor( - @JsonProperty("agencyId") - @ExcludeMissing - private val agencyId: JsonField = JsonMissing.of(), - @JsonProperty("color") - @ExcludeMissing - private val color: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("longName") - @ExcludeMissing - private val longName: JsonField = JsonMissing.of(), - @JsonProperty("nullSafeShortName") - @ExcludeMissing - private val nullSafeShortName: JsonField = JsonMissing.of(), - @JsonProperty("shortName") - @ExcludeMissing - private val shortName: JsonField = JsonMissing.of(), - @JsonProperty("textColor") - @ExcludeMissing - private val textColor: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonProperty("url") - @ExcludeMissing - private val url: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val agencyId: JsonField, + private val color: JsonField, + private val description: JsonField, + private val id: JsonField, + private val longName: JsonField, + private val nullSafeShortName: JsonField, + private val shortName: JsonField, + private val textColor: JsonField, + private val type: JsonField, + private val url: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun agencyId(): String = agencyId.getRequired("agencyId") fun color(): String? = color.getNullable("color") @@ -359,8 +334,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): List = apply { if (!validated) { agencyId() @@ -399,71 +372,92 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(list: List) = apply { - agencyId = list.agencyId - color = list.color - description = list.description - id = list.id - longName = list.longName - nullSafeShortName = list.nullSafeShortName - shortName = list.shortName - textColor = list.textColor - type = list.type - url = list.url - additionalProperties = list.additionalProperties.toMutableMap() + this.agencyId = list.agencyId + this.color = list.color + this.description = list.description + this.id = list.id + this.longName = list.longName + this.nullSafeShortName = list.nullSafeShortName + this.shortName = list.shortName + this.textColor = list.textColor + this.type = list.type + this.url = list.url + additionalProperties(list.additionalProperties) } fun agencyId(agencyId: String) = agencyId(JsonField.of(agencyId)) + @JsonProperty("agencyId") + @ExcludeMissing fun agencyId(agencyId: JsonField) = apply { this.agencyId = agencyId } fun color(color: String) = color(JsonField.of(color)) + @JsonProperty("color") + @ExcludeMissing fun color(color: JsonField) = apply { this.color = color } fun description(description: String) = description(JsonField.of(description)) + @JsonProperty("description") + @ExcludeMissing fun description(description: JsonField) = apply { this.description = description } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun longName(longName: String) = longName(JsonField.of(longName)) + @JsonProperty("longName") + @ExcludeMissing fun longName(longName: JsonField) = apply { this.longName = longName } fun nullSafeShortName(nullSafeShortName: String) = nullSafeShortName(JsonField.of(nullSafeShortName)) + @JsonProperty("nullSafeShortName") + @ExcludeMissing fun nullSafeShortName(nullSafeShortName: JsonField) = apply { this.nullSafeShortName = nullSafeShortName } fun shortName(shortName: String) = shortName(JsonField.of(shortName)) + @JsonProperty("shortName") + @ExcludeMissing fun shortName(shortName: JsonField) = apply { this.shortName = shortName } fun textColor(textColor: String) = textColor(JsonField.of(textColor)) + @JsonProperty("textColor") + @ExcludeMissing fun textColor(textColor: JsonField) = apply { this.textColor = textColor } fun type(type: Long) = type(JsonField.of(type)) + @JsonProperty("type") + @ExcludeMissing fun type(type: JsonField) = apply { this.type = type } fun url(url: String) = url(JsonField.of(url)) + @JsonProperty("url") + @ExcludeMissing fun url(url: JsonField) = apply { this.url = url } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -471,14 +465,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): List = List( agencyId, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ScheduleForRouteRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ScheduleForRouteRetrieveResponse.kt index 9d326b5..3869998 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ScheduleForRouteRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ScheduleForRouteRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = ScheduleForRouteRetrieveResponse.Builder::class) @NoAutoDetect class ScheduleForRouteRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): ScheduleForRouteRetrieveResponse = apply { if (!validated) { code() @@ -94,54 +89,58 @@ private constructor( internal fun from(scheduleForRouteRetrieveResponse: ScheduleForRouteRetrieveResponse) = apply { - code = scheduleForRouteRetrieveResponse.code - currentTime = scheduleForRouteRetrieveResponse.currentTime - text = scheduleForRouteRetrieveResponse.text - version = scheduleForRouteRetrieveResponse.version - data = scheduleForRouteRetrieveResponse.data - additionalProperties = - scheduleForRouteRetrieveResponse.additionalProperties.toMutableMap() + this.code = scheduleForRouteRetrieveResponse.code + this.currentTime = scheduleForRouteRetrieveResponse.currentTime + this.text = scheduleForRouteRetrieveResponse.text + this.version = scheduleForRouteRetrieveResponse.version + this.data = scheduleForRouteRetrieveResponse.data + additionalProperties(scheduleForRouteRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): ScheduleForRouteRetrieveResponse = ScheduleForRouteRetrieveResponse( code, @@ -153,17 +152,16 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") @JsonProperty("entry") @ExcludeMissing fun _entry() = entry @@ -172,8 +170,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -194,62 +190,48 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data(entry, additionalProperties.toImmutable()) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("routeId") - @ExcludeMissing - private val routeId: JsonField = JsonMissing.of(), - @JsonProperty("scheduleDate") - @ExcludeMissing - private val scheduleDate: JsonField = JsonMissing.of(), - @JsonProperty("serviceIds") - @ExcludeMissing - private val serviceIds: JsonField> = JsonMissing.of(), - @JsonProperty("stopTripGroupings") - @ExcludeMissing - private val stopTripGroupings: JsonField> = JsonMissing.of(), - @JsonProperty("stops") - @ExcludeMissing - private val stops: JsonField> = JsonMissing.of(), - @JsonProperty("trips") - @ExcludeMissing - private val trips: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val routeId: JsonField, + private val scheduleDate: JsonField, + private val serviceIds: JsonField>, + private val stopTripGroupings: JsonField>, + private val stops: JsonField>, + private val trips: JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun routeId(): String = routeId.getRequired("routeId") fun scheduleDate(): Long = scheduleDate.getRequired("scheduleDate") @@ -281,8 +263,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { routeId() @@ -313,27 +293,33 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - routeId = entry.routeId - scheduleDate = entry.scheduleDate - serviceIds = entry.serviceIds - stopTripGroupings = entry.stopTripGroupings - stops = entry.stops - trips = entry.trips - additionalProperties = entry.additionalProperties.toMutableMap() + this.routeId = entry.routeId + this.scheduleDate = entry.scheduleDate + this.serviceIds = entry.serviceIds + this.stopTripGroupings = entry.stopTripGroupings + this.stops = entry.stops + this.trips = entry.trips + additionalProperties(entry.additionalProperties) } fun routeId(routeId: String) = routeId(JsonField.of(routeId)) + @JsonProperty("routeId") + @ExcludeMissing fun routeId(routeId: JsonField) = apply { this.routeId = routeId } fun scheduleDate(scheduleDate: Long) = scheduleDate(JsonField.of(scheduleDate)) + @JsonProperty("scheduleDate") + @ExcludeMissing fun scheduleDate(scheduleDate: JsonField) = apply { this.scheduleDate = scheduleDate } fun serviceIds(serviceIds: List) = serviceIds(JsonField.of(serviceIds)) + @JsonProperty("serviceIds") + @ExcludeMissing fun serviceIds(serviceIds: JsonField>) = apply { this.serviceIds = serviceIds } @@ -341,6 +327,8 @@ private constructor( fun stopTripGroupings(stopTripGroupings: List) = stopTripGroupings(JsonField.of(stopTripGroupings)) + @JsonProperty("stopTripGroupings") + @ExcludeMissing fun stopTripGroupings(stopTripGroupings: JsonField>) = apply { this.stopTripGroupings = stopTripGroupings @@ -348,19 +336,24 @@ private constructor( fun stops(stops: List) = stops(JsonField.of(stops)) + @JsonProperty("stops") + @ExcludeMissing fun stops(stops: JsonField>) = apply { this.stops = stops } fun trips(trips: List) = trips(JsonField.of(trips)) + @JsonProperty("trips") + @ExcludeMissing fun trips(trips: JsonField>) = apply { this.trips = trips } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -368,14 +361,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( routeId, @@ -388,47 +373,26 @@ private constructor( ) } + @JsonDeserialize(builder = Stop.Builder::class) @NoAutoDetect class Stop - @JsonCreator private constructor( - @JsonProperty("code") - @ExcludeMissing - private val code: JsonField = JsonMissing.of(), - @JsonProperty("direction") - @ExcludeMissing - private val direction: JsonField = JsonMissing.of(), - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("locationType") - @ExcludeMissing - private val locationType: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("parent") - @ExcludeMissing - private val parent: JsonField = JsonMissing.of(), - @JsonProperty("routeIds") - @ExcludeMissing - private val routeIds: JsonField> = JsonMissing.of(), - @JsonProperty("staticRouteIds") - @ExcludeMissing - private val staticRouteIds: JsonField> = JsonMissing.of(), - @JsonProperty("wheelchairBoarding") - @ExcludeMissing - private val wheelchairBoarding: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val direction: JsonField, + private val id: JsonField, + private val lat: JsonField, + private val locationType: JsonField, + private val lon: JsonField, + private val name: JsonField, + private val parent: JsonField, + private val routeIds: JsonField>, + private val staticRouteIds: JsonField>, + private val wheelchairBoarding: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): String? = code.getNullable("code") fun direction(): String? = direction.getNullable("direction") @@ -482,8 +446,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Stop = apply { if (!validated) { code() @@ -524,58 +486,76 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(stop: Stop) = apply { - code = stop.code - direction = stop.direction - id = stop.id - lat = stop.lat - locationType = stop.locationType - lon = stop.lon - name = stop.name - parent = stop.parent - routeIds = stop.routeIds - staticRouteIds = stop.staticRouteIds - wheelchairBoarding = stop.wheelchairBoarding - additionalProperties = stop.additionalProperties.toMutableMap() + this.code = stop.code + this.direction = stop.direction + this.id = stop.id + this.lat = stop.lat + this.locationType = stop.locationType + this.lon = stop.lon + this.name = stop.name + this.parent = stop.parent + this.routeIds = stop.routeIds + this.staticRouteIds = stop.staticRouteIds + this.wheelchairBoarding = stop.wheelchairBoarding + additionalProperties(stop.additionalProperties) } fun code(code: String) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun direction(direction: String) = direction(JsonField.of(direction)) + @JsonProperty("direction") + @ExcludeMissing fun direction(direction: JsonField) = apply { this.direction = direction } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun lat(lat: Double) = lat(JsonField.of(lat)) + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } fun locationType(locationType: Long) = locationType(JsonField.of(locationType)) + @JsonProperty("locationType") + @ExcludeMissing fun locationType(locationType: JsonField) = apply { this.locationType = locationType } fun lon(lon: Double) = lon(JsonField.of(lon)) + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun name(name: String) = name(JsonField.of(name)) + @JsonProperty("name") + @ExcludeMissing fun name(name: JsonField) = apply { this.name = name } fun parent(parent: String) = parent(JsonField.of(parent)) + @JsonProperty("parent") + @ExcludeMissing fun parent(parent: JsonField) = apply { this.parent = parent } fun routeIds(routeIds: List) = routeIds(JsonField.of(routeIds)) + @JsonProperty("routeIds") + @ExcludeMissing fun routeIds(routeIds: JsonField>) = apply { this.routeIds = routeIds } @@ -583,6 +563,8 @@ private constructor( fun staticRouteIds(staticRouteIds: List) = staticRouteIds(JsonField.of(staticRouteIds)) + @JsonProperty("staticRouteIds") + @ExcludeMissing fun staticRouteIds(staticRouteIds: JsonField>) = apply { this.staticRouteIds = staticRouteIds } @@ -590,17 +572,20 @@ private constructor( fun wheelchairBoarding(wheelchairBoarding: String) = wheelchairBoarding(JsonField.of(wheelchairBoarding)) + @JsonProperty("wheelchairBoarding") + @ExcludeMissing fun wheelchairBoarding(wheelchairBoarding: JsonField) = apply { this.wheelchairBoarding = wheelchairBoarding } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -608,14 +593,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Stop = Stop( code, @@ -651,30 +628,20 @@ private constructor( "Stop{code=$code, direction=$direction, id=$id, lat=$lat, locationType=$locationType, lon=$lon, name=$name, parent=$parent, routeIds=$routeIds, staticRouteIds=$staticRouteIds, wheelchairBoarding=$wheelchairBoarding, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = StopTripGrouping.Builder::class) @NoAutoDetect class StopTripGrouping - @JsonCreator private constructor( - @JsonProperty("directionId") - @ExcludeMissing - private val directionId: JsonField = JsonMissing.of(), - @JsonProperty("stopIds") - @ExcludeMissing - private val stopIds: JsonField> = JsonMissing.of(), - @JsonProperty("tripHeadsigns") - @ExcludeMissing - private val tripHeadsigns: JsonField> = JsonMissing.of(), - @JsonProperty("tripIds") - @ExcludeMissing - private val tripIds: JsonField> = JsonMissing.of(), - @JsonProperty("tripsWithStopTimes") - @ExcludeMissing - private val tripsWithStopTimes: JsonField> = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val directionId: JsonField, + private val stopIds: JsonField>, + private val tripHeadsigns: JsonField>, + private val tripIds: JsonField>, + private val tripsWithStopTimes: JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun directionId(): String = directionId.getRequired("directionId") fun stopIds(): List = stopIds.getRequired("stopIds") @@ -702,8 +669,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): StopTripGrouping = apply { if (!validated) { directionId() @@ -733,38 +698,48 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(stopTripGrouping: StopTripGrouping) = apply { - directionId = stopTripGrouping.directionId - stopIds = stopTripGrouping.stopIds - tripHeadsigns = stopTripGrouping.tripHeadsigns - tripIds = stopTripGrouping.tripIds - tripsWithStopTimes = stopTripGrouping.tripsWithStopTimes - additionalProperties = stopTripGrouping.additionalProperties.toMutableMap() + this.directionId = stopTripGrouping.directionId + this.stopIds = stopTripGrouping.stopIds + this.tripHeadsigns = stopTripGrouping.tripHeadsigns + this.tripIds = stopTripGrouping.tripIds + this.tripsWithStopTimes = stopTripGrouping.tripsWithStopTimes + additionalProperties(stopTripGrouping.additionalProperties) } fun directionId(directionId: String) = directionId(JsonField.of(directionId)) + @JsonProperty("directionId") + @ExcludeMissing fun directionId(directionId: JsonField) = apply { this.directionId = directionId } fun stopIds(stopIds: List) = stopIds(JsonField.of(stopIds)) + @JsonProperty("stopIds") + @ExcludeMissing fun stopIds(stopIds: JsonField>) = apply { this.stopIds = stopIds } fun tripHeadsigns(tripHeadsigns: List) = tripHeadsigns(JsonField.of(tripHeadsigns)) + @JsonProperty("tripHeadsigns") + @ExcludeMissing fun tripHeadsigns(tripHeadsigns: JsonField>) = apply { this.tripHeadsigns = tripHeadsigns } fun tripIds(tripIds: List) = tripIds(JsonField.of(tripIds)) + @JsonProperty("tripIds") + @ExcludeMissing fun tripIds(tripIds: JsonField>) = apply { this.tripIds = tripIds } fun tripsWithStopTimes(tripsWithStopTimes: List) = tripsWithStopTimes(JsonField.of(tripsWithStopTimes)) + @JsonProperty("tripsWithStopTimes") + @ExcludeMissing fun tripsWithStopTimes(tripsWithStopTimes: JsonField>) = apply { this.tripsWithStopTimes = tripsWithStopTimes @@ -772,11 +747,12 @@ private constructor( fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -784,14 +760,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopTripGrouping = StopTripGrouping( directionId, @@ -803,20 +771,17 @@ private constructor( ) } + @JsonDeserialize(builder = TripsWithStopTime.Builder::class) @NoAutoDetect class TripsWithStopTime - @JsonCreator private constructor( - @JsonProperty("tripId") - @ExcludeMissing - private val tripId: JsonField = JsonMissing.of(), - @JsonProperty("stopTimes") - @ExcludeMissing - private val stopTimes: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tripId: JsonField, + private val stopTimes: JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun tripId(): String = tripId.getRequired("tripId") fun stopTimes(): List = stopTimes.getRequired("stopTimes") @@ -829,8 +794,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): TripsWithStopTime = apply { if (!validated) { tripId() @@ -854,19 +817,22 @@ private constructor( mutableMapOf() internal fun from(tripsWithStopTime: TripsWithStopTime) = apply { - tripId = tripsWithStopTime.tripId - stopTimes = tripsWithStopTime.stopTimes - additionalProperties = - tripsWithStopTime.additionalProperties.toMutableMap() + this.tripId = tripsWithStopTime.tripId + this.stopTimes = tripsWithStopTime.stopTimes + additionalProperties(tripsWithStopTime.additionalProperties) } fun tripId(tripId: String) = tripId(JsonField.of(tripId)) + @JsonProperty("tripId") + @ExcludeMissing fun tripId(tripId: JsonField) = apply { this.tripId = tripId } fun stopTimes(stopTimes: List) = stopTimes(JsonField.of(stopTimes)) + @JsonProperty("stopTimes") + @ExcludeMissing fun stopTimes(stopTimes: JsonField>) = apply { this.stopTimes = stopTimes } @@ -874,25 +840,18 @@ private constructor( fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): TripsWithStopTime = TripsWithStopTime( tripId, @@ -901,39 +860,23 @@ private constructor( ) } + @JsonDeserialize(builder = StopTime.Builder::class) @NoAutoDetect class StopTime - @JsonCreator private constructor( - @JsonProperty("arrivalEnabled") - @ExcludeMissing - private val arrivalEnabled: JsonField = JsonMissing.of(), - @JsonProperty("arrivalTime") - @ExcludeMissing - private val arrivalTime: JsonField = JsonMissing.of(), - @JsonProperty("departureEnabled") - @ExcludeMissing - private val departureEnabled: JsonField = JsonMissing.of(), - @JsonProperty("departureTime") - @ExcludeMissing - private val departureTime: JsonField = JsonMissing.of(), - @JsonProperty("serviceId") - @ExcludeMissing - private val serviceId: JsonField = JsonMissing.of(), - @JsonProperty("stopHeadsign") - @ExcludeMissing - private val stopHeadsign: JsonField = JsonMissing.of(), - @JsonProperty("stopId") - @ExcludeMissing - private val stopId: JsonField = JsonMissing.of(), - @JsonProperty("tripId") - @ExcludeMissing - private val tripId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val arrivalEnabled: JsonField, + private val arrivalTime: JsonField, + private val departureEnabled: JsonField, + private val departureTime: JsonField, + private val serviceId: JsonField, + private val stopHeadsign: JsonField, + private val stopId: JsonField, + private val tripId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun arrivalEnabled(): Boolean = arrivalEnabled.getRequired("arrivalEnabled") fun arrivalTime(): Long = arrivalTime.getRequired("arrivalTime") @@ -981,8 +924,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): StopTime = apply { if (!validated) { arrivalEnabled() @@ -1018,20 +959,22 @@ private constructor( mutableMapOf() internal fun from(stopTime: StopTime) = apply { - arrivalEnabled = stopTime.arrivalEnabled - arrivalTime = stopTime.arrivalTime - departureEnabled = stopTime.departureEnabled - departureTime = stopTime.departureTime - serviceId = stopTime.serviceId - stopHeadsign = stopTime.stopHeadsign - stopId = stopTime.stopId - tripId = stopTime.tripId - additionalProperties = stopTime.additionalProperties.toMutableMap() + this.arrivalEnabled = stopTime.arrivalEnabled + this.arrivalTime = stopTime.arrivalTime + this.departureEnabled = stopTime.departureEnabled + this.departureTime = stopTime.departureTime + this.serviceId = stopTime.serviceId + this.stopHeadsign = stopTime.stopHeadsign + this.stopId = stopTime.stopId + this.tripId = stopTime.tripId + additionalProperties(stopTime.additionalProperties) } fun arrivalEnabled(arrivalEnabled: Boolean) = arrivalEnabled(JsonField.of(arrivalEnabled)) + @JsonProperty("arrivalEnabled") + @ExcludeMissing fun arrivalEnabled(arrivalEnabled: JsonField) = apply { this.arrivalEnabled = arrivalEnabled } @@ -1039,6 +982,8 @@ private constructor( fun arrivalTime(arrivalTime: Long) = arrivalTime(JsonField.of(arrivalTime)) + @JsonProperty("arrivalTime") + @ExcludeMissing fun arrivalTime(arrivalTime: JsonField) = apply { this.arrivalTime = arrivalTime } @@ -1046,6 +991,8 @@ private constructor( fun departureEnabled(departureEnabled: Boolean) = departureEnabled(JsonField.of(departureEnabled)) + @JsonProperty("departureEnabled") + @ExcludeMissing fun departureEnabled(departureEnabled: JsonField) = apply { this.departureEnabled = departureEnabled } @@ -1053,12 +1000,16 @@ private constructor( fun departureTime(departureTime: Long) = departureTime(JsonField.of(departureTime)) + @JsonProperty("departureTime") + @ExcludeMissing fun departureTime(departureTime: JsonField) = apply { this.departureTime = departureTime } fun serviceId(serviceId: String) = serviceId(JsonField.of(serviceId)) + @JsonProperty("serviceId") + @ExcludeMissing fun serviceId(serviceId: JsonField) = apply { this.serviceId = serviceId } @@ -1066,40 +1017,39 @@ private constructor( fun stopHeadsign(stopHeadsign: String) = stopHeadsign(JsonField.of(stopHeadsign)) + @JsonProperty("stopHeadsign") + @ExcludeMissing fun stopHeadsign(stopHeadsign: JsonField) = apply { this.stopHeadsign = stopHeadsign } fun stopId(stopId: String) = stopId(JsonField.of(stopId)) + @JsonProperty("stopId") + @ExcludeMissing fun stopId(stopId: JsonField) = apply { this.stopId = stopId } fun tripId(tripId: String) = tripId(JsonField.of(tripId)) + @JsonProperty("tripId") + @ExcludeMissing fun tripId(tripId: JsonField) = apply { this.tripId = tripId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopTime = StopTime( arrivalEnabled, @@ -1168,47 +1118,26 @@ private constructor( "StopTripGrouping{directionId=$directionId, stopIds=$stopIds, tripHeadsigns=$tripHeadsigns, tripIds=$tripIds, tripsWithStopTimes=$tripsWithStopTimes, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = Trip.Builder::class) @NoAutoDetect class Trip - @JsonCreator private constructor( - @JsonProperty("blockId") - @ExcludeMissing - private val blockId: JsonField = JsonMissing.of(), - @JsonProperty("directionId") - @ExcludeMissing - private val directionId: JsonField = JsonMissing.of(), - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("peakOffpeak") - @ExcludeMissing - private val peakOffpeak: JsonField = JsonMissing.of(), - @JsonProperty("routeId") - @ExcludeMissing - private val routeId: JsonField = JsonMissing.of(), - @JsonProperty("routeShortName") - @ExcludeMissing - private val routeShortName: JsonField = JsonMissing.of(), - @JsonProperty("serviceId") - @ExcludeMissing - private val serviceId: JsonField = JsonMissing.of(), - @JsonProperty("shapeId") - @ExcludeMissing - private val shapeId: JsonField = JsonMissing.of(), - @JsonProperty("timeZone") - @ExcludeMissing - private val timeZone: JsonField = JsonMissing.of(), - @JsonProperty("tripHeadsign") - @ExcludeMissing - private val tripHeadsign: JsonField = JsonMissing.of(), - @JsonProperty("tripShortName") - @ExcludeMissing - private val tripShortName: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val blockId: JsonField, + private val directionId: JsonField, + private val id: JsonField, + private val peakOffpeak: JsonField, + private val routeId: JsonField, + private val routeShortName: JsonField, + private val serviceId: JsonField, + private val shapeId: JsonField, + private val timeZone: JsonField, + private val tripHeadsign: JsonField, + private val tripShortName: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun blockId(): String? = blockId.getNullable("blockId") fun directionId(): String? = directionId.getNullable("directionId") @@ -1259,8 +1188,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Trip = apply { if (!validated) { blockId() @@ -1301,68 +1228,88 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(trip: Trip) = apply { - blockId = trip.blockId - directionId = trip.directionId - id = trip.id - peakOffpeak = trip.peakOffpeak - routeId = trip.routeId - routeShortName = trip.routeShortName - serviceId = trip.serviceId - shapeId = trip.shapeId - timeZone = trip.timeZone - tripHeadsign = trip.tripHeadsign - tripShortName = trip.tripShortName - additionalProperties = trip.additionalProperties.toMutableMap() + this.blockId = trip.blockId + this.directionId = trip.directionId + this.id = trip.id + this.peakOffpeak = trip.peakOffpeak + this.routeId = trip.routeId + this.routeShortName = trip.routeShortName + this.serviceId = trip.serviceId + this.shapeId = trip.shapeId + this.timeZone = trip.timeZone + this.tripHeadsign = trip.tripHeadsign + this.tripShortName = trip.tripShortName + additionalProperties(trip.additionalProperties) } fun blockId(blockId: String) = blockId(JsonField.of(blockId)) + @JsonProperty("blockId") + @ExcludeMissing fun blockId(blockId: JsonField) = apply { this.blockId = blockId } fun directionId(directionId: String) = directionId(JsonField.of(directionId)) + @JsonProperty("directionId") + @ExcludeMissing fun directionId(directionId: JsonField) = apply { this.directionId = directionId } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun peakOffpeak(peakOffpeak: Long) = peakOffpeak(JsonField.of(peakOffpeak)) + @JsonProperty("peakOffpeak") + @ExcludeMissing fun peakOffpeak(peakOffpeak: JsonField) = apply { this.peakOffpeak = peakOffpeak } fun routeId(routeId: String) = routeId(JsonField.of(routeId)) + @JsonProperty("routeId") + @ExcludeMissing fun routeId(routeId: JsonField) = apply { this.routeId = routeId } fun routeShortName(routeShortName: String) = routeShortName(JsonField.of(routeShortName)) + @JsonProperty("routeShortName") + @ExcludeMissing fun routeShortName(routeShortName: JsonField) = apply { this.routeShortName = routeShortName } fun serviceId(serviceId: String) = serviceId(JsonField.of(serviceId)) + @JsonProperty("serviceId") + @ExcludeMissing fun serviceId(serviceId: JsonField) = apply { this.serviceId = serviceId } fun shapeId(shapeId: String) = shapeId(JsonField.of(shapeId)) + @JsonProperty("shapeId") + @ExcludeMissing fun shapeId(shapeId: JsonField) = apply { this.shapeId = shapeId } fun timeZone(timeZone: String) = timeZone(JsonField.of(timeZone)) + @JsonProperty("timeZone") + @ExcludeMissing fun timeZone(timeZone: JsonField) = apply { this.timeZone = timeZone } fun tripHeadsign(tripHeadsign: String) = tripHeadsign(JsonField.of(tripHeadsign)) + @JsonProperty("tripHeadsign") + @ExcludeMissing fun tripHeadsign(tripHeadsign: JsonField) = apply { this.tripHeadsign = tripHeadsign } @@ -1370,17 +1317,20 @@ private constructor( fun tripShortName(tripShortName: String) = tripShortName(JsonField.of(tripShortName)) + @JsonProperty("tripShortName") + @ExcludeMissing fun tripShortName(tripShortName: JsonField) = apply { this.tripShortName = tripShortName } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1388,14 +1338,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Trip = Trip( blockId, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ScheduleForStopRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ScheduleForStopRetrieveResponse.kt index 29c9377..ddac500 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ScheduleForStopRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ScheduleForStopRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = ScheduleForStopRetrieveResponse.Builder::class) @NoAutoDetect class ScheduleForStopRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): ScheduleForStopRetrieveResponse = apply { if (!validated) { code() @@ -94,54 +89,58 @@ private constructor( internal fun from(scheduleForStopRetrieveResponse: ScheduleForStopRetrieveResponse) = apply { - code = scheduleForStopRetrieveResponse.code - currentTime = scheduleForStopRetrieveResponse.currentTime - text = scheduleForStopRetrieveResponse.text - version = scheduleForStopRetrieveResponse.version - data = scheduleForStopRetrieveResponse.data - additionalProperties = - scheduleForStopRetrieveResponse.additionalProperties.toMutableMap() + this.code = scheduleForStopRetrieveResponse.code + this.currentTime = scheduleForStopRetrieveResponse.currentTime + this.text = scheduleForStopRetrieveResponse.text + this.version = scheduleForStopRetrieveResponse.version + this.data = scheduleForStopRetrieveResponse.data + additionalProperties(scheduleForStopRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): ScheduleForStopRetrieveResponse = ScheduleForStopRetrieveResponse( code, @@ -153,20 +152,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -179,8 +175,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -203,40 +197,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -245,23 +238,18 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("date") - @ExcludeMissing - private val date: JsonField = JsonMissing.of(), - @JsonProperty("stopId") - @ExcludeMissing - private val stopId: JsonField = JsonMissing.of(), - @JsonProperty("stopRouteSchedules") - @ExcludeMissing - private val stopRouteSchedules: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val date: JsonField, + private val stopId: JsonField, + private val stopRouteSchedules: JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun date(): Long = date.getRequired("date") fun stopId(): String = stopId.getRequired("stopId") @@ -281,8 +269,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { date() @@ -308,23 +294,29 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - date = entry.date - stopId = entry.stopId - stopRouteSchedules = entry.stopRouteSchedules - additionalProperties = entry.additionalProperties.toMutableMap() + this.date = entry.date + this.stopId = entry.stopId + this.stopRouteSchedules = entry.stopRouteSchedules + additionalProperties(entry.additionalProperties) } fun date(date: Long) = date(JsonField.of(date)) + @JsonProperty("date") + @ExcludeMissing fun date(date: JsonField) = apply { this.date = date } fun stopId(stopId: String) = stopId(JsonField.of(stopId)) + @JsonProperty("stopId") + @ExcludeMissing fun stopId(stopId: JsonField) = apply { this.stopId = stopId } fun stopRouteSchedules(stopRouteSchedules: List) = stopRouteSchedules(JsonField.of(stopRouteSchedules)) + @JsonProperty("stopRouteSchedules") + @ExcludeMissing fun stopRouteSchedules(stopRouteSchedules: JsonField>) = apply { this.stopRouteSchedules = stopRouteSchedules @@ -332,11 +324,12 @@ private constructor( fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -344,14 +337,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( date, @@ -361,22 +346,18 @@ private constructor( ) } + @JsonDeserialize(builder = StopRouteSchedule.Builder::class) @NoAutoDetect class StopRouteSchedule - @JsonCreator private constructor( - @JsonProperty("routeId") - @ExcludeMissing - private val routeId: JsonField = JsonMissing.of(), - @JsonProperty("stopRouteDirectionSchedules") - @ExcludeMissing + private val routeId: JsonField, private val stopRouteDirectionSchedules: - JsonField> = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun routeId(): String = routeId.getRequired("routeId") fun stopRouteDirectionSchedules(): List = @@ -392,8 +373,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): StopRouteSchedule = apply { if (!validated) { routeId() @@ -418,30 +397,36 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(stopRouteSchedule: StopRouteSchedule) = apply { - routeId = stopRouteSchedule.routeId - stopRouteDirectionSchedules = stopRouteSchedule.stopRouteDirectionSchedules - additionalProperties = stopRouteSchedule.additionalProperties.toMutableMap() + this.routeId = stopRouteSchedule.routeId + this.stopRouteDirectionSchedules = + stopRouteSchedule.stopRouteDirectionSchedules + additionalProperties(stopRouteSchedule.additionalProperties) } fun routeId(routeId: String) = routeId(JsonField.of(routeId)) + @JsonProperty("routeId") + @ExcludeMissing fun routeId(routeId: JsonField) = apply { this.routeId = routeId } fun stopRouteDirectionSchedules( stopRouteDirectionSchedules: List ) = stopRouteDirectionSchedules(JsonField.of(stopRouteDirectionSchedules)) + @JsonProperty("stopRouteDirectionSchedules") + @ExcludeMissing fun stopRouteDirectionSchedules( stopRouteDirectionSchedules: JsonField> ) = apply { this.stopRouteDirectionSchedules = stopRouteDirectionSchedules } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -449,14 +434,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopRouteSchedule = StopRouteSchedule( routeId, @@ -465,25 +442,18 @@ private constructor( ) } + @JsonDeserialize(builder = StopRouteDirectionSchedule.Builder::class) @NoAutoDetect class StopRouteDirectionSchedule - @JsonCreator private constructor( - @JsonProperty("scheduleFrequencies") - @ExcludeMissing - private val scheduleFrequencies: JsonField> = - JsonMissing.of(), - @JsonProperty("scheduleStopTimes") - @ExcludeMissing - private val scheduleStopTimes: JsonField> = - JsonMissing.of(), - @JsonProperty("tripHeadsign") - @ExcludeMissing - private val tripHeadsign: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val scheduleFrequencies: JsonField>, + private val scheduleStopTimes: JsonField>, + private val tripHeadsign: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun scheduleFrequencies(): List? = scheduleFrequencies.getNullable("scheduleFrequencies") @@ -506,8 +476,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): StopRouteDirectionSchedule = apply { if (!validated) { scheduleFrequencies()?.forEach { it.validate() } @@ -536,16 +504,21 @@ private constructor( internal fun from(stopRouteDirectionSchedule: StopRouteDirectionSchedule) = apply { - scheduleFrequencies = stopRouteDirectionSchedule.scheduleFrequencies - scheduleStopTimes = stopRouteDirectionSchedule.scheduleStopTimes - tripHeadsign = stopRouteDirectionSchedule.tripHeadsign - additionalProperties = - stopRouteDirectionSchedule.additionalProperties.toMutableMap() + this.scheduleFrequencies = + stopRouteDirectionSchedule.scheduleFrequencies + this.scheduleStopTimes = + stopRouteDirectionSchedule.scheduleStopTimes + this.tripHeadsign = stopRouteDirectionSchedule.tripHeadsign + additionalProperties( + stopRouteDirectionSchedule.additionalProperties + ) } fun scheduleFrequencies(scheduleFrequencies: List) = scheduleFrequencies(JsonField.of(scheduleFrequencies)) + @JsonProperty("scheduleFrequencies") + @ExcludeMissing fun scheduleFrequencies( scheduleFrequencies: JsonField> ) = apply { this.scheduleFrequencies = scheduleFrequencies } @@ -553,6 +526,8 @@ private constructor( fun scheduleStopTimes(scheduleStopTimes: List) = scheduleStopTimes(JsonField.of(scheduleStopTimes)) + @JsonProperty("scheduleStopTimes") + @ExcludeMissing fun scheduleStopTimes( scheduleStopTimes: JsonField> ) = apply { this.scheduleStopTimes = scheduleStopTimes } @@ -560,6 +535,8 @@ private constructor( fun tripHeadsign(tripHeadsign: String) = tripHeadsign(JsonField.of(tripHeadsign)) + @JsonProperty("tripHeadsign") + @ExcludeMissing fun tripHeadsign(tripHeadsign: JsonField) = apply { this.tripHeadsign = tripHeadsign } @@ -567,25 +544,18 @@ private constructor( fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopRouteDirectionSchedule = StopRouteDirectionSchedule( scheduleFrequencies.map { it.toImmutable() }, @@ -595,36 +565,22 @@ private constructor( ) } + @JsonDeserialize(builder = ScheduleStopTime.Builder::class) @NoAutoDetect class ScheduleStopTime - @JsonCreator private constructor( - @JsonProperty("arrivalEnabled") - @ExcludeMissing - private val arrivalEnabled: JsonField = JsonMissing.of(), - @JsonProperty("arrivalTime") - @ExcludeMissing - private val arrivalTime: JsonField = JsonMissing.of(), - @JsonProperty("departureEnabled") - @ExcludeMissing - private val departureEnabled: JsonField = JsonMissing.of(), - @JsonProperty("departureTime") - @ExcludeMissing - private val departureTime: JsonField = JsonMissing.of(), - @JsonProperty("serviceId") - @ExcludeMissing - private val serviceId: JsonField = JsonMissing.of(), - @JsonProperty("stopHeadsign") - @ExcludeMissing - private val stopHeadsign: JsonField = JsonMissing.of(), - @JsonProperty("tripId") - @ExcludeMissing - private val tripId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val arrivalEnabled: JsonField, + private val arrivalTime: JsonField, + private val departureEnabled: JsonField, + private val departureTime: JsonField, + private val serviceId: JsonField, + private val stopHeadsign: JsonField, + private val tripId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun arrivalEnabled(): Boolean = arrivalEnabled.getRequired("arrivalEnabled") fun arrivalTime(): Long = arrivalTime.getRequired("arrivalTime") @@ -668,8 +624,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): ScheduleStopTime = apply { if (!validated) { arrivalEnabled() @@ -703,20 +657,21 @@ private constructor( mutableMapOf() internal fun from(scheduleStopTime: ScheduleStopTime) = apply { - arrivalEnabled = scheduleStopTime.arrivalEnabled - arrivalTime = scheduleStopTime.arrivalTime - departureEnabled = scheduleStopTime.departureEnabled - departureTime = scheduleStopTime.departureTime - serviceId = scheduleStopTime.serviceId - stopHeadsign = scheduleStopTime.stopHeadsign - tripId = scheduleStopTime.tripId - additionalProperties = - scheduleStopTime.additionalProperties.toMutableMap() + this.arrivalEnabled = scheduleStopTime.arrivalEnabled + this.arrivalTime = scheduleStopTime.arrivalTime + this.departureEnabled = scheduleStopTime.departureEnabled + this.departureTime = scheduleStopTime.departureTime + this.serviceId = scheduleStopTime.serviceId + this.stopHeadsign = scheduleStopTime.stopHeadsign + this.tripId = scheduleStopTime.tripId + additionalProperties(scheduleStopTime.additionalProperties) } fun arrivalEnabled(arrivalEnabled: Boolean) = arrivalEnabled(JsonField.of(arrivalEnabled)) + @JsonProperty("arrivalEnabled") + @ExcludeMissing fun arrivalEnabled(arrivalEnabled: JsonField) = apply { this.arrivalEnabled = arrivalEnabled } @@ -724,6 +679,8 @@ private constructor( fun arrivalTime(arrivalTime: Long) = arrivalTime(JsonField.of(arrivalTime)) + @JsonProperty("arrivalTime") + @ExcludeMissing fun arrivalTime(arrivalTime: JsonField) = apply { this.arrivalTime = arrivalTime } @@ -731,6 +688,8 @@ private constructor( fun departureEnabled(departureEnabled: Boolean) = departureEnabled(JsonField.of(departureEnabled)) + @JsonProperty("departureEnabled") + @ExcludeMissing fun departureEnabled(departureEnabled: JsonField) = apply { this.departureEnabled = departureEnabled } @@ -738,12 +697,16 @@ private constructor( fun departureTime(departureTime: Long) = departureTime(JsonField.of(departureTime)) + @JsonProperty("departureTime") + @ExcludeMissing fun departureTime(departureTime: JsonField) = apply { this.departureTime = departureTime } fun serviceId(serviceId: String) = serviceId(JsonField.of(serviceId)) + @JsonProperty("serviceId") + @ExcludeMissing fun serviceId(serviceId: JsonField) = apply { this.serviceId = serviceId } @@ -751,36 +714,33 @@ private constructor( fun stopHeadsign(stopHeadsign: String) = stopHeadsign(JsonField.of(stopHeadsign)) + @JsonProperty("stopHeadsign") + @ExcludeMissing fun stopHeadsign(stopHeadsign: JsonField) = apply { this.stopHeadsign = stopHeadsign } fun tripId(tripId: String) = tripId(JsonField.of(tripId)) + @JsonProperty("tripId") + @ExcludeMissing fun tripId(tripId: JsonField) = apply { this.tripId = tripId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): ScheduleStopTime = ScheduleStopTime( arrivalEnabled, @@ -812,33 +772,21 @@ private constructor( "ScheduleStopTime{arrivalEnabled=$arrivalEnabled, arrivalTime=$arrivalTime, departureEnabled=$departureEnabled, departureTime=$departureTime, serviceId=$serviceId, stopHeadsign=$stopHeadsign, tripId=$tripId, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = ScheduleFrequency.Builder::class) @NoAutoDetect class ScheduleFrequency - @JsonCreator private constructor( - @JsonProperty("serviceDate") - @ExcludeMissing - private val serviceDate: JsonField = JsonMissing.of(), - @JsonProperty("startTime") - @ExcludeMissing - private val startTime: JsonField = JsonMissing.of(), - @JsonProperty("endTime") - @ExcludeMissing - private val endTime: JsonField = JsonMissing.of(), - @JsonProperty("headway") - @ExcludeMissing - private val headway: JsonField = JsonMissing.of(), - @JsonProperty("serviceId") - @ExcludeMissing - private val serviceId: JsonField = JsonMissing.of(), - @JsonProperty("tripId") - @ExcludeMissing - private val tripId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val serviceDate: JsonField, + private val startTime: JsonField, + private val endTime: JsonField, + private val headway: JsonField, + private val serviceId: JsonField, + private val tripId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun serviceDate(): Long = serviceDate.getRequired("serviceDate") fun startTime(): Long = startTime.getRequired("startTime") @@ -869,8 +817,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): ScheduleFrequency = apply { if (!validated) { serviceDate() @@ -902,69 +848,73 @@ private constructor( mutableMapOf() internal fun from(scheduleFrequency: ScheduleFrequency) = apply { - serviceDate = scheduleFrequency.serviceDate - startTime = scheduleFrequency.startTime - endTime = scheduleFrequency.endTime - headway = scheduleFrequency.headway - serviceId = scheduleFrequency.serviceId - tripId = scheduleFrequency.tripId - additionalProperties = - scheduleFrequency.additionalProperties.toMutableMap() + this.serviceDate = scheduleFrequency.serviceDate + this.startTime = scheduleFrequency.startTime + this.endTime = scheduleFrequency.endTime + this.headway = scheduleFrequency.headway + this.serviceId = scheduleFrequency.serviceId + this.tripId = scheduleFrequency.tripId + additionalProperties(scheduleFrequency.additionalProperties) } fun serviceDate(serviceDate: Long) = serviceDate(JsonField.of(serviceDate)) + @JsonProperty("serviceDate") + @ExcludeMissing fun serviceDate(serviceDate: JsonField) = apply { this.serviceDate = serviceDate } fun startTime(startTime: Long) = startTime(JsonField.of(startTime)) + @JsonProperty("startTime") + @ExcludeMissing fun startTime(startTime: JsonField) = apply { this.startTime = startTime } fun endTime(endTime: Long) = endTime(JsonField.of(endTime)) + @JsonProperty("endTime") + @ExcludeMissing fun endTime(endTime: JsonField) = apply { this.endTime = endTime } fun headway(headway: Long) = headway(JsonField.of(headway)) + @JsonProperty("headway") + @ExcludeMissing fun headway(headway: JsonField) = apply { this.headway = headway } fun serviceId(serviceId: String) = serviceId(JsonField.of(serviceId)) + @JsonProperty("serviceId") + @ExcludeMissing fun serviceId(serviceId: JsonField) = apply { this.serviceId = serviceId } fun tripId(tripId: String) = tripId(JsonField.of(tripId)) + @JsonProperty("tripId") + @ExcludeMissing fun tripId(tripId: JsonField) = apply { this.tripId = tripId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): ScheduleFrequency = ScheduleFrequency( serviceDate, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/SearchForRouteListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/SearchForRouteListResponse.kt index d713ac7..811bf03 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/SearchForRouteListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/SearchForRouteListResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = SearchForRouteListResponse.Builder::class) @NoAutoDetect class SearchForRouteListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data? = data.getNullable("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): SearchForRouteListResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(searchForRouteListResponse: SearchForRouteListResponse) = apply { - code = searchForRouteListResponse.code - currentTime = searchForRouteListResponse.currentTime - text = searchForRouteListResponse.text - version = searchForRouteListResponse.version - data = searchForRouteListResponse.data - additionalProperties = searchForRouteListResponse.additionalProperties.toMutableMap() + this.code = searchForRouteListResponse.code + this.currentTime = searchForRouteListResponse.currentTime + this.text = searchForRouteListResponse.text + this.version = searchForRouteListResponse.version + this.data = searchForRouteListResponse.data + additionalProperties(searchForRouteListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): SearchForRouteListResponse = SearchForRouteListResponse( code, @@ -151,26 +151,19 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("limitExceeded") - @ExcludeMissing - private val limitExceeded: JsonField = JsonMissing.of(), - @JsonProperty("list") - @ExcludeMissing - private val list: JsonField> = JsonMissing.of(), - @JsonProperty("outOfRange") - @ExcludeMissing - private val outOfRange: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val limitExceeded: JsonField, + private val list: JsonField>, + private val outOfRange: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun limitExceeded(): Boolean = limitExceeded.getRequired("limitExceeded") fun list(): kotlin.collections.List = list.getRequired("list") @@ -191,8 +184,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { limitExceeded() @@ -219,52 +210,55 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - limitExceeded = data.limitExceeded - list = data.list - outOfRange = data.outOfRange - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.limitExceeded = data.limitExceeded + this.list = data.list + this.outOfRange = data.outOfRange + this.references = data.references + additionalProperties(data.additionalProperties) } fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + @JsonProperty("limitExceeded") + @ExcludeMissing fun limitExceeded(limitExceeded: JsonField) = apply { this.limitExceeded = limitExceeded } fun list(list: kotlin.collections.List) = list(JsonField.of(list)) + @JsonProperty("list") + @ExcludeMissing fun list(list: JsonField>) = apply { this.list = list } fun outOfRange(outOfRange: Boolean) = outOfRange(JsonField.of(outOfRange)) + @JsonProperty("outOfRange") + @ExcludeMissing fun outOfRange(outOfRange: JsonField) = apply { this.outOfRange = outOfRange } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( limitExceeded, @@ -275,44 +269,25 @@ private constructor( ) } + @JsonDeserialize(builder = List.Builder::class) @NoAutoDetect class List - @JsonCreator private constructor( - @JsonProperty("agencyId") - @ExcludeMissing - private val agencyId: JsonField = JsonMissing.of(), - @JsonProperty("color") - @ExcludeMissing - private val color: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("longName") - @ExcludeMissing - private val longName: JsonField = JsonMissing.of(), - @JsonProperty("nullSafeShortName") - @ExcludeMissing - private val nullSafeShortName: JsonField = JsonMissing.of(), - @JsonProperty("shortName") - @ExcludeMissing - private val shortName: JsonField = JsonMissing.of(), - @JsonProperty("textColor") - @ExcludeMissing - private val textColor: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonProperty("url") - @ExcludeMissing - private val url: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val agencyId: JsonField, + private val color: JsonField, + private val description: JsonField, + private val id: JsonField, + private val longName: JsonField, + private val nullSafeShortName: JsonField, + private val shortName: JsonField, + private val textColor: JsonField, + private val type: JsonField, + private val url: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun agencyId(): String = agencyId.getRequired("agencyId") fun color(): String? = color.getNullable("color") @@ -359,8 +334,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): List = apply { if (!validated) { agencyId() @@ -399,71 +372,92 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(list: List) = apply { - agencyId = list.agencyId - color = list.color - description = list.description - id = list.id - longName = list.longName - nullSafeShortName = list.nullSafeShortName - shortName = list.shortName - textColor = list.textColor - type = list.type - url = list.url - additionalProperties = list.additionalProperties.toMutableMap() + this.agencyId = list.agencyId + this.color = list.color + this.description = list.description + this.id = list.id + this.longName = list.longName + this.nullSafeShortName = list.nullSafeShortName + this.shortName = list.shortName + this.textColor = list.textColor + this.type = list.type + this.url = list.url + additionalProperties(list.additionalProperties) } fun agencyId(agencyId: String) = agencyId(JsonField.of(agencyId)) + @JsonProperty("agencyId") + @ExcludeMissing fun agencyId(agencyId: JsonField) = apply { this.agencyId = agencyId } fun color(color: String) = color(JsonField.of(color)) + @JsonProperty("color") + @ExcludeMissing fun color(color: JsonField) = apply { this.color = color } fun description(description: String) = description(JsonField.of(description)) + @JsonProperty("description") + @ExcludeMissing fun description(description: JsonField) = apply { this.description = description } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun longName(longName: String) = longName(JsonField.of(longName)) + @JsonProperty("longName") + @ExcludeMissing fun longName(longName: JsonField) = apply { this.longName = longName } fun nullSafeShortName(nullSafeShortName: String) = nullSafeShortName(JsonField.of(nullSafeShortName)) + @JsonProperty("nullSafeShortName") + @ExcludeMissing fun nullSafeShortName(nullSafeShortName: JsonField) = apply { this.nullSafeShortName = nullSafeShortName } fun shortName(shortName: String) = shortName(JsonField.of(shortName)) + @JsonProperty("shortName") + @ExcludeMissing fun shortName(shortName: JsonField) = apply { this.shortName = shortName } fun textColor(textColor: String) = textColor(JsonField.of(textColor)) + @JsonProperty("textColor") + @ExcludeMissing fun textColor(textColor: JsonField) = apply { this.textColor = textColor } fun type(type: Long) = type(JsonField.of(type)) + @JsonProperty("type") + @ExcludeMissing fun type(type: JsonField) = apply { this.type = type } fun url(url: String) = url(JsonField.of(url)) + @JsonProperty("url") + @ExcludeMissing fun url(url: JsonField) = apply { this.url = url } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -471,14 +465,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): List = List( agencyId, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/SearchForStopListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/SearchForStopListResponse.kt index e0263bd..7b79e50 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/SearchForStopListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/SearchForStopListResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = SearchForStopListResponse.Builder::class) @NoAutoDetect class SearchForStopListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data? = data.getNullable("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): SearchForStopListResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(searchForStopListResponse: SearchForStopListResponse) = apply { - code = searchForStopListResponse.code - currentTime = searchForStopListResponse.currentTime - text = searchForStopListResponse.text - version = searchForStopListResponse.version - data = searchForStopListResponse.data - additionalProperties = searchForStopListResponse.additionalProperties.toMutableMap() + this.code = searchForStopListResponse.code + this.currentTime = searchForStopListResponse.currentTime + this.text = searchForStopListResponse.text + this.version = searchForStopListResponse.version + this.data = searchForStopListResponse.data + additionalProperties(searchForStopListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): SearchForStopListResponse = SearchForStopListResponse( code, @@ -151,26 +151,19 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("limitExceeded") - @ExcludeMissing - private val limitExceeded: JsonField = JsonMissing.of(), - @JsonProperty("list") - @ExcludeMissing - private val list: JsonField> = JsonMissing.of(), - @JsonProperty("outOfRange") - @ExcludeMissing - private val outOfRange: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val limitExceeded: JsonField, + private val list: JsonField>, + private val outOfRange: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun limitExceeded(): Boolean = limitExceeded.getRequired("limitExceeded") fun list(): kotlin.collections.List = list.getRequired("list") @@ -191,8 +184,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { limitExceeded() @@ -219,52 +210,55 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - limitExceeded = data.limitExceeded - list = data.list - outOfRange = data.outOfRange - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.limitExceeded = data.limitExceeded + this.list = data.list + this.outOfRange = data.outOfRange + this.references = data.references + additionalProperties(data.additionalProperties) } fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + @JsonProperty("limitExceeded") + @ExcludeMissing fun limitExceeded(limitExceeded: JsonField) = apply { this.limitExceeded = limitExceeded } fun list(list: kotlin.collections.List) = list(JsonField.of(list)) + @JsonProperty("list") + @ExcludeMissing fun list(list: JsonField>) = apply { this.list = list } fun outOfRange(outOfRange: Boolean) = outOfRange(JsonField.of(outOfRange)) + @JsonProperty("outOfRange") + @ExcludeMissing fun outOfRange(outOfRange: JsonField) = apply { this.outOfRange = outOfRange } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( limitExceeded, @@ -275,47 +269,26 @@ private constructor( ) } + @JsonDeserialize(builder = List.Builder::class) @NoAutoDetect class List - @JsonCreator private constructor( - @JsonProperty("code") - @ExcludeMissing - private val code: JsonField = JsonMissing.of(), - @JsonProperty("direction") - @ExcludeMissing - private val direction: JsonField = JsonMissing.of(), - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("locationType") - @ExcludeMissing - private val locationType: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("parent") - @ExcludeMissing - private val parent: JsonField = JsonMissing.of(), - @JsonProperty("routeIds") - @ExcludeMissing - private val routeIds: JsonField> = JsonMissing.of(), - @JsonProperty("staticRouteIds") - @ExcludeMissing - private val staticRouteIds: JsonField> = JsonMissing.of(), - @JsonProperty("wheelchairBoarding") - @ExcludeMissing - private val wheelchairBoarding: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val direction: JsonField, + private val id: JsonField, + private val lat: JsonField, + private val locationType: JsonField, + private val lon: JsonField, + private val name: JsonField, + private val parent: JsonField, + private val routeIds: JsonField>, + private val staticRouteIds: JsonField>, + private val wheelchairBoarding: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): String? = code.getNullable("code") fun direction(): String? = direction.getNullable("direction") @@ -367,8 +340,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): List = apply { if (!validated) { code() @@ -410,57 +381,75 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(list: List) = apply { - code = list.code - direction = list.direction - id = list.id - lat = list.lat - locationType = list.locationType - lon = list.lon - name = list.name - parent = list.parent - routeIds = list.routeIds - staticRouteIds = list.staticRouteIds - wheelchairBoarding = list.wheelchairBoarding - additionalProperties = list.additionalProperties.toMutableMap() + this.code = list.code + this.direction = list.direction + this.id = list.id + this.lat = list.lat + this.locationType = list.locationType + this.lon = list.lon + this.name = list.name + this.parent = list.parent + this.routeIds = list.routeIds + this.staticRouteIds = list.staticRouteIds + this.wheelchairBoarding = list.wheelchairBoarding + additionalProperties(list.additionalProperties) } fun code(code: String) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun direction(direction: String) = direction(JsonField.of(direction)) + @JsonProperty("direction") + @ExcludeMissing fun direction(direction: JsonField) = apply { this.direction = direction } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun lat(lat: Double) = lat(JsonField.of(lat)) + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } fun locationType(locationType: Long) = locationType(JsonField.of(locationType)) + @JsonProperty("locationType") + @ExcludeMissing fun locationType(locationType: JsonField) = apply { this.locationType = locationType } fun lon(lon: Double) = lon(JsonField.of(lon)) + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun name(name: String) = name(JsonField.of(name)) + @JsonProperty("name") + @ExcludeMissing fun name(name: JsonField) = apply { this.name = name } fun parent(parent: String) = parent(JsonField.of(parent)) + @JsonProperty("parent") + @ExcludeMissing fun parent(parent: JsonField) = apply { this.parent = parent } fun routeIds(routeIds: kotlin.collections.List) = routeIds(JsonField.of(routeIds)) + @JsonProperty("routeIds") + @ExcludeMissing fun routeIds(routeIds: JsonField>) = apply { this.routeIds = routeIds } @@ -468,6 +457,8 @@ private constructor( fun staticRouteIds(staticRouteIds: kotlin.collections.List) = staticRouteIds(JsonField.of(staticRouteIds)) + @JsonProperty("staticRouteIds") + @ExcludeMissing fun staticRouteIds(staticRouteIds: JsonField>) = apply { this.staticRouteIds = staticRouteIds @@ -476,17 +467,20 @@ private constructor( fun wheelchairBoarding(wheelchairBoarding: String) = wheelchairBoarding(JsonField.of(wheelchairBoarding)) + @JsonProperty("wheelchairBoarding") + @ExcludeMissing fun wheelchairBoarding(wheelchairBoarding: JsonField) = apply { this.wheelchairBoarding = wheelchairBoarding } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -494,14 +488,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): List = List( code, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ShapeRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ShapeRetrieveResponse.kt index d8ff912..4f139ba 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ShapeRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/ShapeRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = ShapeRetrieveResponse.Builder::class) @NoAutoDetect class ShapeRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): ShapeRetrieveResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(shapeRetrieveResponse: ShapeRetrieveResponse) = apply { - code = shapeRetrieveResponse.code - currentTime = shapeRetrieveResponse.currentTime - text = shapeRetrieveResponse.text - version = shapeRetrieveResponse.version - data = shapeRetrieveResponse.data - additionalProperties = shapeRetrieveResponse.additionalProperties.toMutableMap() + this.code = shapeRetrieveResponse.code + this.currentTime = shapeRetrieveResponse.currentTime + this.text = shapeRetrieveResponse.text + this.version = shapeRetrieveResponse.version + this.data = shapeRetrieveResponse.data + additionalProperties(shapeRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): ShapeRetrieveResponse = ShapeRetrieveResponse( code, @@ -151,20 +151,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -177,8 +174,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -201,40 +196,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -243,23 +237,18 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("length") - @ExcludeMissing - private val length: JsonField = JsonMissing.of(), - @JsonProperty("levels") - @ExcludeMissing - private val levels: JsonField = JsonMissing.of(), - @JsonProperty("points") - @ExcludeMissing - private val points: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val length: JsonField, + private val levels: JsonField, + private val points: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun length(): Long = length.getRequired("length") fun levels(): String? = levels.getNullable("levels") @@ -278,8 +267,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { length() @@ -304,33 +291,40 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - length = entry.length - levels = entry.levels - points = entry.points - additionalProperties = entry.additionalProperties.toMutableMap() + this.length = entry.length + this.levels = entry.levels + this.points = entry.points + additionalProperties(entry.additionalProperties) } fun length(length: Long) = length(JsonField.of(length)) + @JsonProperty("length") + @ExcludeMissing fun length(length: JsonField) = apply { this.length = length } fun levels(levels: String) = levels(JsonField.of(levels)) + @JsonProperty("levels") + @ExcludeMissing fun levels(levels: JsonField) = apply { this.levels = levels } /** Encoded polyline format representing the shape of the path */ fun points(points: String) = points(JsonField.of(points)) /** Encoded polyline format representing the shape of the path */ + @JsonProperty("points") + @ExcludeMissing fun points(points: JsonField) = apply { this.points = points } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -338,14 +332,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( length, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopIdsForAgencyListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopIdsForAgencyListResponse.kt index 63241b6..4bf0c39 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopIdsForAgencyListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopIdsForAgencyListResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = StopIdsForAgencyListResponse.Builder::class) @NoAutoDetect class StopIdsForAgencyListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): StopIdsForAgencyListResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(stopIdsForAgencyListResponse: StopIdsForAgencyListResponse) = apply { - code = stopIdsForAgencyListResponse.code - currentTime = stopIdsForAgencyListResponse.currentTime - text = stopIdsForAgencyListResponse.text - version = stopIdsForAgencyListResponse.version - data = stopIdsForAgencyListResponse.data - additionalProperties = stopIdsForAgencyListResponse.additionalProperties.toMutableMap() + this.code = stopIdsForAgencyListResponse.code + this.currentTime = stopIdsForAgencyListResponse.currentTime + this.text = stopIdsForAgencyListResponse.text + this.version = stopIdsForAgencyListResponse.version + this.data = stopIdsForAgencyListResponse.data + additionalProperties(stopIdsForAgencyListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopIdsForAgencyListResponse = StopIdsForAgencyListResponse( code, @@ -151,23 +151,18 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("limitExceeded") - @ExcludeMissing - private val limitExceeded: JsonField = JsonMissing.of(), - @JsonProperty("list") - @ExcludeMissing - private val list: JsonField> = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val limitExceeded: JsonField, + private val list: JsonField>, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun limitExceeded(): Boolean = limitExceeded.getRequired("limitExceeded") fun list(): List = list.getRequired("list") @@ -184,8 +179,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { limitExceeded() @@ -210,47 +203,48 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - limitExceeded = data.limitExceeded - list = data.list - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.limitExceeded = data.limitExceeded + this.list = data.list + this.references = data.references + additionalProperties(data.additionalProperties) } fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + @JsonProperty("limitExceeded") + @ExcludeMissing fun limitExceeded(limitExceeded: JsonField) = apply { this.limitExceeded = limitExceeded } fun list(list: List) = list(JsonField.of(list)) + @JsonProperty("list") + @ExcludeMissing fun list(list: JsonField>) = apply { this.list = list } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( limitExceeded, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopRetrieveResponse.kt index 49b385f..102a054 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = StopRetrieveResponse.Builder::class) @NoAutoDetect class StopRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): StopRetrieveResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(stopRetrieveResponse: StopRetrieveResponse) = apply { - code = stopRetrieveResponse.code - currentTime = stopRetrieveResponse.currentTime - text = stopRetrieveResponse.text - version = stopRetrieveResponse.version - data = stopRetrieveResponse.data - additionalProperties = stopRetrieveResponse.additionalProperties.toMutableMap() + this.code = stopRetrieveResponse.code + this.currentTime = stopRetrieveResponse.currentTime + this.text = stopRetrieveResponse.text + this.version = stopRetrieveResponse.version + this.data = stopRetrieveResponse.data + additionalProperties(stopRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopRetrieveResponse = StopRetrieveResponse( code, @@ -151,20 +151,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -177,8 +174,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -201,40 +196,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -243,47 +237,26 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("code") - @ExcludeMissing - private val code: JsonField = JsonMissing.of(), - @JsonProperty("direction") - @ExcludeMissing - private val direction: JsonField = JsonMissing.of(), - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("locationType") - @ExcludeMissing - private val locationType: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("parent") - @ExcludeMissing - private val parent: JsonField = JsonMissing.of(), - @JsonProperty("routeIds") - @ExcludeMissing - private val routeIds: JsonField> = JsonMissing.of(), - @JsonProperty("staticRouteIds") - @ExcludeMissing - private val staticRouteIds: JsonField> = JsonMissing.of(), - @JsonProperty("wheelchairBoarding") - @ExcludeMissing - private val wheelchairBoarding: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val direction: JsonField, + private val id: JsonField, + private val lat: JsonField, + private val locationType: JsonField, + private val lon: JsonField, + private val name: JsonField, + private val parent: JsonField, + private val routeIds: JsonField>, + private val staticRouteIds: JsonField>, + private val wheelchairBoarding: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): String? = code.getNullable("code") fun direction(): String? = direction.getNullable("direction") @@ -334,8 +307,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { code() @@ -376,61 +347,81 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - code = entry.code - direction = entry.direction - id = entry.id - lat = entry.lat - locationType = entry.locationType - lon = entry.lon - name = entry.name - parent = entry.parent - routeIds = entry.routeIds - staticRouteIds = entry.staticRouteIds - wheelchairBoarding = entry.wheelchairBoarding - additionalProperties = entry.additionalProperties.toMutableMap() + this.code = entry.code + this.direction = entry.direction + this.id = entry.id + this.lat = entry.lat + this.locationType = entry.locationType + this.lon = entry.lon + this.name = entry.name + this.parent = entry.parent + this.routeIds = entry.routeIds + this.staticRouteIds = entry.staticRouteIds + this.wheelchairBoarding = entry.wheelchairBoarding + additionalProperties(entry.additionalProperties) } fun code(code: String) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun direction(direction: String) = direction(JsonField.of(direction)) + @JsonProperty("direction") + @ExcludeMissing fun direction(direction: JsonField) = apply { this.direction = direction } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun lat(lat: Double) = lat(JsonField.of(lat)) + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } fun locationType(locationType: Long) = locationType(JsonField.of(locationType)) + @JsonProperty("locationType") + @ExcludeMissing fun locationType(locationType: JsonField) = apply { this.locationType = locationType } fun lon(lon: Double) = lon(JsonField.of(lon)) + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun name(name: String) = name(JsonField.of(name)) + @JsonProperty("name") + @ExcludeMissing fun name(name: JsonField) = apply { this.name = name } fun parent(parent: String) = parent(JsonField.of(parent)) + @JsonProperty("parent") + @ExcludeMissing fun parent(parent: JsonField) = apply { this.parent = parent } fun routeIds(routeIds: List) = routeIds(JsonField.of(routeIds)) + @JsonProperty("routeIds") + @ExcludeMissing fun routeIds(routeIds: JsonField>) = apply { this.routeIds = routeIds } fun staticRouteIds(staticRouteIds: List) = staticRouteIds(JsonField.of(staticRouteIds)) + @JsonProperty("staticRouteIds") + @ExcludeMissing fun staticRouteIds(staticRouteIds: JsonField>) = apply { this.staticRouteIds = staticRouteIds } @@ -438,17 +429,20 @@ private constructor( fun wheelchairBoarding(wheelchairBoarding: String) = wheelchairBoarding(JsonField.of(wheelchairBoarding)) + @JsonProperty("wheelchairBoarding") + @ExcludeMissing fun wheelchairBoarding(wheelchairBoarding: JsonField) = apply { this.wheelchairBoarding = wheelchairBoarding } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -456,14 +450,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( code, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopsForAgencyListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopsForAgencyListResponse.kt index 3c46544..0c3ca1e 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopsForAgencyListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopsForAgencyListResponse.kt @@ -4,44 +4,33 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = StopsForAgencyListResponse.Builder::class) @NoAutoDetect class StopsForAgencyListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("limitExceeded") - @ExcludeMissing - private val limitExceeded: JsonField = JsonMissing.of(), - @JsonProperty("outOfRange") - @ExcludeMissing - private val outOfRange: JsonField = JsonMissing.of(), - @JsonProperty("list") - @ExcludeMissing - private val list: JsonField> = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val limitExceeded: JsonField, + private val outOfRange: JsonField, + private val list: JsonField>, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -58,6 +47,14 @@ private constructor( fun references(): References = references.getRequired("references") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -78,16 +75,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): StopsForAgencyListResponse = apply { if (!validated) { code() @@ -122,70 +109,81 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(stopsForAgencyListResponse: StopsForAgencyListResponse) = apply { - code = stopsForAgencyListResponse.code - currentTime = stopsForAgencyListResponse.currentTime - text = stopsForAgencyListResponse.text - version = stopsForAgencyListResponse.version - limitExceeded = stopsForAgencyListResponse.limitExceeded - outOfRange = stopsForAgencyListResponse.outOfRange - list = stopsForAgencyListResponse.list - references = stopsForAgencyListResponse.references - additionalProperties = stopsForAgencyListResponse.additionalProperties.toMutableMap() + this.code = stopsForAgencyListResponse.code + this.currentTime = stopsForAgencyListResponse.currentTime + this.text = stopsForAgencyListResponse.text + this.version = stopsForAgencyListResponse.version + this.limitExceeded = stopsForAgencyListResponse.limitExceeded + this.outOfRange = stopsForAgencyListResponse.outOfRange + this.list = stopsForAgencyListResponse.list + this.references = stopsForAgencyListResponse.references + additionalProperties(stopsForAgencyListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + @JsonProperty("limitExceeded") + @ExcludeMissing fun limitExceeded(limitExceeded: JsonField) = apply { this.limitExceeded = limitExceeded } fun outOfRange(outOfRange: Boolean) = outOfRange(JsonField.of(outOfRange)) + @JsonProperty("outOfRange") + @ExcludeMissing fun outOfRange(outOfRange: JsonField) = apply { this.outOfRange = outOfRange } fun list(list: kotlin.collections.List) = list(JsonField.of(list)) + @JsonProperty("list") + @ExcludeMissing fun list(list: JsonField>) = apply { this.list = list } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopsForAgencyListResponse = StopsForAgencyListResponse( code, @@ -200,41 +198,26 @@ private constructor( ) } + @JsonDeserialize(builder = List.Builder::class) @NoAutoDetect class List - @JsonCreator private constructor( - @JsonProperty("code") - @ExcludeMissing - private val code: JsonField = JsonMissing.of(), - @JsonProperty("direction") - @ExcludeMissing - private val direction: JsonField = JsonMissing.of(), - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("lat") @ExcludeMissing private val lat: JsonField = JsonMissing.of(), - @JsonProperty("locationType") - @ExcludeMissing - private val locationType: JsonField = JsonMissing.of(), - @JsonProperty("lon") @ExcludeMissing private val lon: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("parent") - @ExcludeMissing - private val parent: JsonField = JsonMissing.of(), - @JsonProperty("routeIds") - @ExcludeMissing - private val routeIds: JsonField> = JsonMissing.of(), - @JsonProperty("staticRouteIds") - @ExcludeMissing - private val staticRouteIds: JsonField> = JsonMissing.of(), - @JsonProperty("wheelchairBoarding") - @ExcludeMissing - private val wheelchairBoarding: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val direction: JsonField, + private val id: JsonField, + private val lat: JsonField, + private val locationType: JsonField, + private val lon: JsonField, + private val name: JsonField, + private val parent: JsonField, + private val routeIds: JsonField>, + private val staticRouteIds: JsonField>, + private val wheelchairBoarding: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): String? = code.getNullable("code") fun direction(): String? = direction.getNullable("direction") @@ -286,8 +269,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): List = apply { if (!validated) { code() @@ -329,57 +310,75 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(list: List) = apply { - code = list.code - direction = list.direction - id = list.id - lat = list.lat - locationType = list.locationType - lon = list.lon - name = list.name - parent = list.parent - routeIds = list.routeIds - staticRouteIds = list.staticRouteIds - wheelchairBoarding = list.wheelchairBoarding - additionalProperties = list.additionalProperties.toMutableMap() + this.code = list.code + this.direction = list.direction + this.id = list.id + this.lat = list.lat + this.locationType = list.locationType + this.lon = list.lon + this.name = list.name + this.parent = list.parent + this.routeIds = list.routeIds + this.staticRouteIds = list.staticRouteIds + this.wheelchairBoarding = list.wheelchairBoarding + additionalProperties(list.additionalProperties) } fun code(code: String) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun direction(direction: String) = direction(JsonField.of(direction)) + @JsonProperty("direction") + @ExcludeMissing fun direction(direction: JsonField) = apply { this.direction = direction } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun lat(lat: Double) = lat(JsonField.of(lat)) + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } fun locationType(locationType: Long) = locationType(JsonField.of(locationType)) + @JsonProperty("locationType") + @ExcludeMissing fun locationType(locationType: JsonField) = apply { this.locationType = locationType } fun lon(lon: Double) = lon(JsonField.of(lon)) + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun name(name: String) = name(JsonField.of(name)) + @JsonProperty("name") + @ExcludeMissing fun name(name: JsonField) = apply { this.name = name } fun parent(parent: String) = parent(JsonField.of(parent)) + @JsonProperty("parent") + @ExcludeMissing fun parent(parent: JsonField) = apply { this.parent = parent } fun routeIds(routeIds: kotlin.collections.List) = routeIds(JsonField.of(routeIds)) + @JsonProperty("routeIds") + @ExcludeMissing fun routeIds(routeIds: JsonField>) = apply { this.routeIds = routeIds } @@ -387,6 +386,8 @@ private constructor( fun staticRouteIds(staticRouteIds: kotlin.collections.List) = staticRouteIds(JsonField.of(staticRouteIds)) + @JsonProperty("staticRouteIds") + @ExcludeMissing fun staticRouteIds(staticRouteIds: JsonField>) = apply { this.staticRouteIds = staticRouteIds } @@ -394,29 +395,26 @@ private constructor( fun wheelchairBoarding(wheelchairBoarding: String) = wheelchairBoarding(JsonField.of(wheelchairBoarding)) + @JsonProperty("wheelchairBoarding") + @ExcludeMissing fun wheelchairBoarding(wheelchairBoarding: JsonField) = apply { this.wheelchairBoarding = wheelchairBoarding } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): List = List( code, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopsForLocationListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopsForLocationListResponse.kt index 642a4bb..9407c68 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopsForLocationListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopsForLocationListResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = StopsForLocationListResponse.Builder::class) @NoAutoDetect class StopsForLocationListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): StopsForLocationListResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(stopsForLocationListResponse: StopsForLocationListResponse) = apply { - code = stopsForLocationListResponse.code - currentTime = stopsForLocationListResponse.currentTime - text = stopsForLocationListResponse.text - version = stopsForLocationListResponse.version - data = stopsForLocationListResponse.data - additionalProperties = stopsForLocationListResponse.additionalProperties.toMutableMap() + this.code = stopsForLocationListResponse.code + this.currentTime = stopsForLocationListResponse.currentTime + this.text = stopsForLocationListResponse.text + this.version = stopsForLocationListResponse.version + this.data = stopsForLocationListResponse.data + additionalProperties(stopsForLocationListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopsForLocationListResponse = StopsForLocationListResponse( code, @@ -151,26 +151,19 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("limitExceeded") - @ExcludeMissing - private val limitExceeded: JsonField = JsonMissing.of(), - @JsonProperty("outOfRange") - @ExcludeMissing - private val outOfRange: JsonField = JsonMissing.of(), - @JsonProperty("list") - @ExcludeMissing - private val list: JsonField> = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val limitExceeded: JsonField, + private val outOfRange: JsonField, + private val list: JsonField>, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun limitExceeded(): Boolean = limitExceeded.getRequired("limitExceeded") fun outOfRange(): Boolean? = outOfRange.getNullable("outOfRange") @@ -191,8 +184,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { limitExceeded() @@ -219,52 +210,55 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - limitExceeded = data.limitExceeded - outOfRange = data.outOfRange - list = data.list - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.limitExceeded = data.limitExceeded + this.outOfRange = data.outOfRange + this.list = data.list + this.references = data.references + additionalProperties(data.additionalProperties) } fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + @JsonProperty("limitExceeded") + @ExcludeMissing fun limitExceeded(limitExceeded: JsonField) = apply { this.limitExceeded = limitExceeded } fun outOfRange(outOfRange: Boolean) = outOfRange(JsonField.of(outOfRange)) + @JsonProperty("outOfRange") + @ExcludeMissing fun outOfRange(outOfRange: JsonField) = apply { this.outOfRange = outOfRange } fun list(list: kotlin.collections.List) = list(JsonField.of(list)) + @JsonProperty("list") + @ExcludeMissing fun list(list: JsonField>) = apply { this.list = list } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( limitExceeded, @@ -275,47 +269,26 @@ private constructor( ) } + @JsonDeserialize(builder = List.Builder::class) @NoAutoDetect class List - @JsonCreator private constructor( - @JsonProperty("code") - @ExcludeMissing - private val code: JsonField = JsonMissing.of(), - @JsonProperty("direction") - @ExcludeMissing - private val direction: JsonField = JsonMissing.of(), - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("locationType") - @ExcludeMissing - private val locationType: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("parent") - @ExcludeMissing - private val parent: JsonField = JsonMissing.of(), - @JsonProperty("routeIds") - @ExcludeMissing - private val routeIds: JsonField> = JsonMissing.of(), - @JsonProperty("staticRouteIds") - @ExcludeMissing - private val staticRouteIds: JsonField> = JsonMissing.of(), - @JsonProperty("wheelchairBoarding") - @ExcludeMissing - private val wheelchairBoarding: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val direction: JsonField, + private val id: JsonField, + private val lat: JsonField, + private val locationType: JsonField, + private val lon: JsonField, + private val name: JsonField, + private val parent: JsonField, + private val routeIds: JsonField>, + private val staticRouteIds: JsonField>, + private val wheelchairBoarding: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): String? = code.getNullable("code") fun direction(): String? = direction.getNullable("direction") @@ -367,8 +340,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): List = apply { if (!validated) { code() @@ -410,57 +381,75 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(list: List) = apply { - code = list.code - direction = list.direction - id = list.id - lat = list.lat - locationType = list.locationType - lon = list.lon - name = list.name - parent = list.parent - routeIds = list.routeIds - staticRouteIds = list.staticRouteIds - wheelchairBoarding = list.wheelchairBoarding - additionalProperties = list.additionalProperties.toMutableMap() + this.code = list.code + this.direction = list.direction + this.id = list.id + this.lat = list.lat + this.locationType = list.locationType + this.lon = list.lon + this.name = list.name + this.parent = list.parent + this.routeIds = list.routeIds + this.staticRouteIds = list.staticRouteIds + this.wheelchairBoarding = list.wheelchairBoarding + additionalProperties(list.additionalProperties) } fun code(code: String) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun direction(direction: String) = direction(JsonField.of(direction)) + @JsonProperty("direction") + @ExcludeMissing fun direction(direction: JsonField) = apply { this.direction = direction } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun lat(lat: Double) = lat(JsonField.of(lat)) + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } fun locationType(locationType: Long) = locationType(JsonField.of(locationType)) + @JsonProperty("locationType") + @ExcludeMissing fun locationType(locationType: JsonField) = apply { this.locationType = locationType } fun lon(lon: Double) = lon(JsonField.of(lon)) + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun name(name: String) = name(JsonField.of(name)) + @JsonProperty("name") + @ExcludeMissing fun name(name: JsonField) = apply { this.name = name } fun parent(parent: String) = parent(JsonField.of(parent)) + @JsonProperty("parent") + @ExcludeMissing fun parent(parent: JsonField) = apply { this.parent = parent } fun routeIds(routeIds: kotlin.collections.List) = routeIds(JsonField.of(routeIds)) + @JsonProperty("routeIds") + @ExcludeMissing fun routeIds(routeIds: JsonField>) = apply { this.routeIds = routeIds } fun staticRouteIds(staticRouteIds: kotlin.collections.List) = @@ -475,17 +464,20 @@ private constructor( fun wheelchairBoarding(wheelchairBoarding: String) = wheelchairBoarding(JsonField.of(wheelchairBoarding)) + @JsonProperty("wheelchairBoarding") + @ExcludeMissing fun wheelchairBoarding(wheelchairBoarding: JsonField) = apply { this.wheelchairBoarding = wheelchairBoarding } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -493,14 +485,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): List = List( code, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopsForRouteListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopsForRouteListResponse.kt index 6eabac7..edccabb 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopsForRouteListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/StopsForRouteListResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = StopsForRouteListResponse.Builder::class) @NoAutoDetect class StopsForRouteListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): StopsForRouteListResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(stopsForRouteListResponse: StopsForRouteListResponse) = apply { - code = stopsForRouteListResponse.code - currentTime = stopsForRouteListResponse.currentTime - text = stopsForRouteListResponse.text - version = stopsForRouteListResponse.version - data = stopsForRouteListResponse.data - additionalProperties = stopsForRouteListResponse.additionalProperties.toMutableMap() + this.code = stopsForRouteListResponse.code + this.currentTime = stopsForRouteListResponse.currentTime + this.text = stopsForRouteListResponse.text + this.version = stopsForRouteListResponse.version + this.data = stopsForRouteListResponse.data + additionalProperties(stopsForRouteListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopsForRouteListResponse = StopsForRouteListResponse( code, @@ -151,20 +151,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -177,8 +174,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -201,40 +196,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -243,26 +237,19 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("polylines") - @ExcludeMissing - private val polylines: JsonField> = JsonMissing.of(), - @JsonProperty("routeId") - @ExcludeMissing - private val routeId: JsonField = JsonMissing.of(), - @JsonProperty("stopGroupings") - @ExcludeMissing - private val stopGroupings: JsonField> = JsonMissing.of(), - @JsonProperty("stopIds") - @ExcludeMissing - private val stopIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val polylines: JsonField>, + private val routeId: JsonField, + private val stopGroupings: JsonField>, + private val stopIds: JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun polylines(): List? = polylines.getNullable("polylines") fun routeId(): String? = routeId.getNullable("routeId") @@ -283,8 +270,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { polylines()?.forEach { it.validate() } @@ -311,41 +296,50 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - polylines = entry.polylines - routeId = entry.routeId - stopGroupings = entry.stopGroupings - stopIds = entry.stopIds - additionalProperties = entry.additionalProperties.toMutableMap() + this.polylines = entry.polylines + this.routeId = entry.routeId + this.stopGroupings = entry.stopGroupings + this.stopIds = entry.stopIds + additionalProperties(entry.additionalProperties) } fun polylines(polylines: List) = polylines(JsonField.of(polylines)) + @JsonProperty("polylines") + @ExcludeMissing fun polylines(polylines: JsonField>) = apply { this.polylines = polylines } fun routeId(routeId: String) = routeId(JsonField.of(routeId)) + @JsonProperty("routeId") + @ExcludeMissing fun routeId(routeId: JsonField) = apply { this.routeId = routeId } fun stopGroupings(stopGroupings: List) = stopGroupings(JsonField.of(stopGroupings)) + @JsonProperty("stopGroupings") + @ExcludeMissing fun stopGroupings(stopGroupings: JsonField>) = apply { this.stopGroupings = stopGroupings } fun stopIds(stopIds: List) = stopIds(JsonField.of(stopIds)) + @JsonProperty("stopIds") + @ExcludeMissing fun stopIds(stopIds: JsonField>) = apply { this.stopIds = stopIds } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -353,14 +347,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( polylines.map { it.toImmutable() }, @@ -371,23 +357,18 @@ private constructor( ) } + @JsonDeserialize(builder = Polyline.Builder::class) @NoAutoDetect class Polyline - @JsonCreator private constructor( - @JsonProperty("length") - @ExcludeMissing - private val length: JsonField = JsonMissing.of(), - @JsonProperty("levels") - @ExcludeMissing - private val levels: JsonField = JsonMissing.of(), - @JsonProperty("points") - @ExcludeMissing - private val points: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val length: JsonField, + private val levels: JsonField, + private val points: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun length(): Long? = length.getNullable("length") fun levels(): String? = levels.getNullable("levels") @@ -404,8 +385,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Polyline = apply { if (!validated) { length() @@ -430,31 +409,38 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(polyline: Polyline) = apply { - length = polyline.length - levels = polyline.levels - points = polyline.points - additionalProperties = polyline.additionalProperties.toMutableMap() + this.length = polyline.length + this.levels = polyline.levels + this.points = polyline.points + additionalProperties(polyline.additionalProperties) } fun length(length: Long) = length(JsonField.of(length)) + @JsonProperty("length") + @ExcludeMissing fun length(length: JsonField) = apply { this.length = length } fun levels(levels: String) = levels(JsonField.of(levels)) + @JsonProperty("levels") + @ExcludeMissing fun levels(levels: JsonField) = apply { this.levels = levels } fun points(points: String) = points(JsonField.of(points)) + @JsonProperty("points") + @ExcludeMissing fun points(points: JsonField) = apply { this.points = points } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -462,14 +448,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Polyline = Polyline( length, @@ -497,26 +475,19 @@ private constructor( "Polyline{length=$length, levels=$levels, points=$points, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = StopGrouping.Builder::class) @NoAutoDetect class StopGrouping - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("polylines") - @ExcludeMissing - private val polylines: JsonField> = JsonMissing.of(), - @JsonProperty("stopIds") - @ExcludeMissing - private val stopIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val polylines: JsonField>, + private val stopIds: JsonField>, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun id(): String? = id.getNullable("id") fun name(): Name? = name.getNullable("name") @@ -537,8 +508,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): StopGrouping = apply { if (!validated) { id() @@ -565,38 +534,47 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(stopGrouping: StopGrouping) = apply { - id = stopGrouping.id - name = stopGrouping.name - polylines = stopGrouping.polylines - stopIds = stopGrouping.stopIds - additionalProperties = stopGrouping.additionalProperties.toMutableMap() + this.id = stopGrouping.id + this.name = stopGrouping.name + this.polylines = stopGrouping.polylines + this.stopIds = stopGrouping.stopIds + additionalProperties(stopGrouping.additionalProperties) } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun name(name: Name) = name(JsonField.of(name)) + @JsonProperty("name") + @ExcludeMissing fun name(name: JsonField) = apply { this.name = name } fun polylines(polylines: List) = polylines(JsonField.of(polylines)) + @JsonProperty("polylines") + @ExcludeMissing fun polylines(polylines: JsonField>) = apply { this.polylines = polylines } fun stopIds(stopIds: List) = stopIds(JsonField.of(stopIds)) + @JsonProperty("stopIds") + @ExcludeMissing fun stopIds(stopIds: JsonField>) = apply { this.stopIds = stopIds } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -604,14 +582,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopGrouping = StopGrouping( id, @@ -622,23 +592,18 @@ private constructor( ) } + @JsonDeserialize(builder = Name.Builder::class) @NoAutoDetect class Name - @JsonCreator private constructor( - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("names") - @ExcludeMissing - private val names: JsonField> = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val name: JsonField, + private val names: JsonField>, + private val type: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun name(): String? = name.getNullable("name") fun names(): List? = names.getNullable("names") @@ -655,8 +620,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Name = apply { if (!validated) { name() @@ -683,45 +646,44 @@ private constructor( internal fun from(name: Name) = apply { this.name = name.name - names = name.names - type = name.type - additionalProperties = name.additionalProperties.toMutableMap() + this.names = name.names + this.type = name.type + additionalProperties(name.additionalProperties) } fun name(name: String) = name(JsonField.of(name)) + @JsonProperty("name") + @ExcludeMissing fun name(name: JsonField) = apply { this.name = name } fun names(names: List) = names(JsonField.of(names)) + @JsonProperty("names") + @ExcludeMissing fun names(names: JsonField>) = apply { this.names = names } fun type(type: String) = type(JsonField.of(type)) + @JsonProperty("type") + @ExcludeMissing fun type(type: JsonField) = apply { this.type = type } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Name = Name( name, @@ -749,23 +711,18 @@ private constructor( "Name{name=$name, names=$names, type=$type, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = Polyline.Builder::class) @NoAutoDetect class Polyline - @JsonCreator private constructor( - @JsonProperty("length") - @ExcludeMissing - private val length: JsonField = JsonMissing.of(), - @JsonProperty("levels") - @ExcludeMissing - private val levels: JsonField = JsonMissing.of(), - @JsonProperty("points") - @ExcludeMissing - private val points: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val length: JsonField, + private val levels: JsonField, + private val points: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun length(): Long? = length.getNullable("length") fun levels(): String? = levels.getNullable("levels") @@ -782,8 +739,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Polyline = apply { if (!validated) { length() @@ -809,46 +764,45 @@ private constructor( mutableMapOf() internal fun from(polyline: Polyline) = apply { - length = polyline.length - levels = polyline.levels - points = polyline.points - additionalProperties = polyline.additionalProperties.toMutableMap() + this.length = polyline.length + this.levels = polyline.levels + this.points = polyline.points + additionalProperties(polyline.additionalProperties) } fun length(length: Long) = length(JsonField.of(length)) + @JsonProperty("length") + @ExcludeMissing fun length(length: JsonField) = apply { this.length = length } fun levels(levels: String) = levels(JsonField.of(levels)) + @JsonProperty("levels") + @ExcludeMissing fun levels(levels: JsonField) = apply { this.levels = levels } fun points(points: String) = points(JsonField.of(points)) + @JsonProperty("points") + @ExcludeMissing fun points(points: JsonField) = apply { this.points = points } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Polyline = Polyline( length, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripDetailRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripDetailRetrieveResponse.kt index 3da8252..7183424 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripDetailRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripDetailRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = TripDetailRetrieveResponse.Builder::class) @NoAutoDetect class TripDetailRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): TripDetailRetrieveResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(tripDetailRetrieveResponse: TripDetailRetrieveResponse) = apply { - code = tripDetailRetrieveResponse.code - currentTime = tripDetailRetrieveResponse.currentTime - text = tripDetailRetrieveResponse.text - version = tripDetailRetrieveResponse.version - data = tripDetailRetrieveResponse.data - additionalProperties = tripDetailRetrieveResponse.additionalProperties.toMutableMap() + this.code = tripDetailRetrieveResponse.code + this.currentTime = tripDetailRetrieveResponse.currentTime + this.text = tripDetailRetrieveResponse.text + this.version = tripDetailRetrieveResponse.version + this.data = tripDetailRetrieveResponse.data + additionalProperties(tripDetailRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): TripDetailRetrieveResponse = TripDetailRetrieveResponse( code, @@ -151,20 +151,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -177,8 +174,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -201,40 +196,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -243,32 +237,21 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("schedule") - @ExcludeMissing - private val schedule: JsonField = JsonMissing.of(), - @JsonProperty("serviceDate") - @ExcludeMissing - private val serviceDate: JsonField = JsonMissing.of(), - @JsonProperty("situationIds") - @ExcludeMissing - private val situationIds: JsonField> = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("tripId") - @ExcludeMissing - private val tripId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val frequency: JsonField, + private val schedule: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val status: JsonField, + private val tripId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun frequency(): String? = frequency.getNullable("frequency") fun schedule(): Schedule? = schedule.getNullable("schedule") @@ -297,8 +280,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { frequency() @@ -329,25 +310,31 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - frequency = entry.frequency - schedule = entry.schedule - serviceDate = entry.serviceDate - situationIds = entry.situationIds - status = entry.status - tripId = entry.tripId - additionalProperties = entry.additionalProperties.toMutableMap() + this.frequency = entry.frequency + this.schedule = entry.schedule + this.serviceDate = entry.serviceDate + this.situationIds = entry.situationIds + this.status = entry.status + this.tripId = entry.tripId + additionalProperties(entry.additionalProperties) } fun frequency(frequency: String) = frequency(JsonField.of(frequency)) + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } fun schedule(schedule: Schedule) = schedule(JsonField.of(schedule)) + @JsonProperty("schedule") + @ExcludeMissing fun schedule(schedule: JsonField) = apply { this.schedule = schedule } fun serviceDate(serviceDate: Long) = serviceDate(JsonField.of(serviceDate)) + @JsonProperty("serviceDate") + @ExcludeMissing fun serviceDate(serviceDate: JsonField) = apply { this.serviceDate = serviceDate } @@ -355,25 +342,32 @@ private constructor( fun situationIds(situationIds: List) = situationIds(JsonField.of(situationIds)) + @JsonProperty("situationIds") + @ExcludeMissing fun situationIds(situationIds: JsonField>) = apply { this.situationIds = situationIds } fun status(status: Status) = status(JsonField.of(status)) + @JsonProperty("status") + @ExcludeMissing fun status(status: JsonField) = apply { this.status = status } fun tripId(tripId: String) = tripId(JsonField.of(tripId)) + @JsonProperty("tripId") + @ExcludeMissing fun tripId(tripId: JsonField) = apply { this.tripId = tripId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -381,14 +375,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( frequency, @@ -401,29 +387,20 @@ private constructor( ) } + @JsonDeserialize(builder = Schedule.Builder::class) @NoAutoDetect class Schedule - @JsonCreator private constructor( - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("nextTripId") - @ExcludeMissing - private val nextTripId: JsonField = JsonMissing.of(), - @JsonProperty("previousTripId") - @ExcludeMissing - private val previousTripId: JsonField = JsonMissing.of(), - @JsonProperty("stopTimes") - @ExcludeMissing - private val stopTimes: JsonField> = JsonMissing.of(), - @JsonProperty("timeZone") - @ExcludeMissing - private val timeZone: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val frequency: JsonField, + private val nextTripId: JsonField, + private val previousTripId: JsonField, + private val stopTimes: JsonField>, + private val timeZone: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun frequency(): String? = frequency.getNullable("frequency") fun nextTripId(): String = nextTripId.getRequired("nextTripId") @@ -450,8 +427,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Schedule = apply { if (!validated) { frequency() @@ -480,22 +455,26 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(schedule: Schedule) = apply { - frequency = schedule.frequency - nextTripId = schedule.nextTripId - previousTripId = schedule.previousTripId - stopTimes = schedule.stopTimes - timeZone = schedule.timeZone - additionalProperties = schedule.additionalProperties.toMutableMap() + this.frequency = schedule.frequency + this.nextTripId = schedule.nextTripId + this.previousTripId = schedule.previousTripId + this.stopTimes = schedule.stopTimes + this.timeZone = schedule.timeZone + additionalProperties(schedule.additionalProperties) } fun frequency(frequency: String) = frequency(JsonField.of(frequency)) + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } fun nextTripId(nextTripId: String) = nextTripId(JsonField.of(nextTripId)) + @JsonProperty("nextTripId") + @ExcludeMissing fun nextTripId(nextTripId: JsonField) = apply { this.nextTripId = nextTripId } @@ -503,27 +482,34 @@ private constructor( fun previousTripId(previousTripId: String) = previousTripId(JsonField.of(previousTripId)) + @JsonProperty("previousTripId") + @ExcludeMissing fun previousTripId(previousTripId: JsonField) = apply { this.previousTripId = previousTripId } fun stopTimes(stopTimes: List) = stopTimes(JsonField.of(stopTimes)) + @JsonProperty("stopTimes") + @ExcludeMissing fun stopTimes(stopTimes: JsonField>) = apply { this.stopTimes = stopTimes } fun timeZone(timeZone: String) = timeZone(JsonField.of(timeZone)) + @JsonProperty("timeZone") + @ExcludeMissing fun timeZone(timeZone: JsonField) = apply { this.timeZone = timeZone } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -531,14 +517,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Schedule = Schedule( frequency, @@ -550,32 +528,21 @@ private constructor( ) } + @JsonDeserialize(builder = StopTime.Builder::class) @NoAutoDetect class StopTime - @JsonCreator private constructor( - @JsonProperty("arrivalTime") - @ExcludeMissing - private val arrivalTime: JsonField = JsonMissing.of(), - @JsonProperty("departureTime") - @ExcludeMissing - private val departureTime: JsonField = JsonMissing.of(), - @JsonProperty("distanceAlongTrip") - @ExcludeMissing - private val distanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("historicalOccupancy") - @ExcludeMissing - private val historicalOccupancy: JsonField = JsonMissing.of(), - @JsonProperty("stopHeadsign") - @ExcludeMissing - private val stopHeadsign: JsonField = JsonMissing.of(), - @JsonProperty("stopId") - @ExcludeMissing - private val stopId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val arrivalTime: JsonField, + private val departureTime: JsonField, + private val distanceAlongTrip: JsonField, + private val historicalOccupancy: JsonField, + private val stopHeadsign: JsonField, + private val stopId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun arrivalTime(): Long? = arrivalTime.getNullable("arrivalTime") fun departureTime(): Long? = departureTime.getNullable("departureTime") @@ -612,8 +579,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): StopTime = apply { if (!validated) { arrivalTime() @@ -645,17 +610,19 @@ private constructor( mutableMapOf() internal fun from(stopTime: StopTime) = apply { - arrivalTime = stopTime.arrivalTime - departureTime = stopTime.departureTime - distanceAlongTrip = stopTime.distanceAlongTrip - historicalOccupancy = stopTime.historicalOccupancy - stopHeadsign = stopTime.stopHeadsign - stopId = stopTime.stopId - additionalProperties = stopTime.additionalProperties.toMutableMap() + this.arrivalTime = stopTime.arrivalTime + this.departureTime = stopTime.departureTime + this.distanceAlongTrip = stopTime.distanceAlongTrip + this.historicalOccupancy = stopTime.historicalOccupancy + this.stopHeadsign = stopTime.stopHeadsign + this.stopId = stopTime.stopId + additionalProperties(stopTime.additionalProperties) } fun arrivalTime(arrivalTime: Long) = arrivalTime(JsonField.of(arrivalTime)) + @JsonProperty("arrivalTime") + @ExcludeMissing fun arrivalTime(arrivalTime: JsonField) = apply { this.arrivalTime = arrivalTime } @@ -663,6 +630,8 @@ private constructor( fun departureTime(departureTime: Long) = departureTime(JsonField.of(departureTime)) + @JsonProperty("departureTime") + @ExcludeMissing fun departureTime(departureTime: JsonField) = apply { this.departureTime = departureTime } @@ -670,6 +639,8 @@ private constructor( fun distanceAlongTrip(distanceAlongTrip: Double) = distanceAlongTrip(JsonField.of(distanceAlongTrip)) + @JsonProperty("distanceAlongTrip") + @ExcludeMissing fun distanceAlongTrip(distanceAlongTrip: JsonField) = apply { this.distanceAlongTrip = distanceAlongTrip } @@ -677,6 +648,8 @@ private constructor( fun historicalOccupancy(historicalOccupancy: String) = historicalOccupancy(JsonField.of(historicalOccupancy)) + @JsonProperty("historicalOccupancy") + @ExcludeMissing fun historicalOccupancy(historicalOccupancy: JsonField) = apply { this.historicalOccupancy = historicalOccupancy } @@ -684,36 +657,33 @@ private constructor( fun stopHeadsign(stopHeadsign: String) = stopHeadsign(JsonField.of(stopHeadsign)) + @JsonProperty("stopHeadsign") + @ExcludeMissing fun stopHeadsign(stopHeadsign: JsonField) = apply { this.stopHeadsign = stopHeadsign } fun stopId(stopId: String) = stopId(JsonField.of(stopId)) + @JsonProperty("stopId") + @ExcludeMissing fun stopId(stopId: JsonField) = apply { this.stopId = stopId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopTime = StopTime( arrivalTime, @@ -762,95 +732,42 @@ private constructor( "Schedule{frequency=$frequency, nextTripId=$nextTripId, previousTripId=$previousTripId, stopTimes=$stopTimes, timeZone=$timeZone, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = Status.Builder::class) @NoAutoDetect class Status - @JsonCreator private constructor( - @JsonProperty("activeTripId") - @ExcludeMissing - private val activeTripId: JsonField = JsonMissing.of(), - @JsonProperty("blockTripSequence") - @ExcludeMissing - private val blockTripSequence: JsonField = JsonMissing.of(), - @JsonProperty("closestStop") - @ExcludeMissing - private val closestStop: JsonField = JsonMissing.of(), - @JsonProperty("closestStopTimeOffset") - @ExcludeMissing - private val closestStopTimeOffset: JsonField = JsonMissing.of(), - @JsonProperty("distanceAlongTrip") - @ExcludeMissing - private val distanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownDistanceAlongTrip") - @ExcludeMissing - private val lastKnownDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownLocation") - @ExcludeMissing - private val lastKnownLocation: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownOrientation") - @ExcludeMissing - private val lastKnownOrientation: JsonField = JsonMissing.of(), - @JsonProperty("lastLocationUpdateTime") - @ExcludeMissing - private val lastLocationUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("lastUpdateTime") - @ExcludeMissing - private val lastUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("nextStop") - @ExcludeMissing - private val nextStop: JsonField = JsonMissing.of(), - @JsonProperty("nextStopTimeOffset") - @ExcludeMissing - private val nextStopTimeOffset: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCapacity") - @ExcludeMissing - private val occupancyCapacity: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCount") - @ExcludeMissing - private val occupancyCount: JsonField = JsonMissing.of(), - @JsonProperty("occupancyStatus") - @ExcludeMissing - private val occupancyStatus: JsonField = JsonMissing.of(), - @JsonProperty("orientation") - @ExcludeMissing - private val orientation: JsonField = JsonMissing.of(), - @JsonProperty("phase") - @ExcludeMissing - private val phase: JsonField = JsonMissing.of(), - @JsonProperty("position") - @ExcludeMissing - private val position: JsonField = JsonMissing.of(), - @JsonProperty("predicted") - @ExcludeMissing - private val predicted: JsonField = JsonMissing.of(), - @JsonProperty("scheduleDeviation") - @ExcludeMissing - private val scheduleDeviation: JsonField = JsonMissing.of(), - @JsonProperty("scheduledDistanceAlongTrip") - @ExcludeMissing - private val scheduledDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("serviceDate") - @ExcludeMissing - private val serviceDate: JsonField = JsonMissing.of(), - @JsonProperty("situationIds") - @ExcludeMissing - private val situationIds: JsonField> = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("totalDistanceAlongTrip") - @ExcludeMissing - private val totalDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("vehicleId") - @ExcludeMissing - private val vehicleId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val activeTripId: JsonField, + private val blockTripSequence: JsonField, + private val closestStop: JsonField, + private val closestStopTimeOffset: JsonField, + private val distanceAlongTrip: JsonField, + private val frequency: JsonField, + private val lastKnownDistanceAlongTrip: JsonField, + private val lastKnownLocation: JsonField, + private val lastKnownOrientation: JsonField, + private val lastLocationUpdateTime: JsonField, + private val lastUpdateTime: JsonField, + private val nextStop: JsonField, + private val nextStopTimeOffset: JsonField, + private val occupancyCapacity: JsonField, + private val occupancyCount: JsonField, + private val occupancyStatus: JsonField, + private val orientation: JsonField, + private val phase: JsonField, + private val position: JsonField, + private val predicted: JsonField, + private val scheduleDeviation: JsonField, + private val scheduledDistanceAlongTrip: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val status: JsonField, + private val totalDistanceAlongTrip: JsonField, + private val vehicleId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Trip ID of the trip the vehicle is actively serving. */ fun activeTripId(): String = activeTripId.getRequired("activeTripId") @@ -1097,8 +1014,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Status = apply { if (!validated) { activeTripId() @@ -1171,34 +1086,34 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(status: Status) = apply { - activeTripId = status.activeTripId - blockTripSequence = status.blockTripSequence - closestStop = status.closestStop - closestStopTimeOffset = status.closestStopTimeOffset - distanceAlongTrip = status.distanceAlongTrip - frequency = status.frequency - lastKnownDistanceAlongTrip = status.lastKnownDistanceAlongTrip - lastKnownLocation = status.lastKnownLocation - lastKnownOrientation = status.lastKnownOrientation - lastLocationUpdateTime = status.lastLocationUpdateTime - lastUpdateTime = status.lastUpdateTime - nextStop = status.nextStop - nextStopTimeOffset = status.nextStopTimeOffset - occupancyCapacity = status.occupancyCapacity - occupancyCount = status.occupancyCount - occupancyStatus = status.occupancyStatus - orientation = status.orientation - phase = status.phase - position = status.position - predicted = status.predicted - scheduleDeviation = status.scheduleDeviation - scheduledDistanceAlongTrip = status.scheduledDistanceAlongTrip - serviceDate = status.serviceDate - situationIds = status.situationIds + this.activeTripId = status.activeTripId + this.blockTripSequence = status.blockTripSequence + this.closestStop = status.closestStop + this.closestStopTimeOffset = status.closestStopTimeOffset + this.distanceAlongTrip = status.distanceAlongTrip + this.frequency = status.frequency + this.lastKnownDistanceAlongTrip = status.lastKnownDistanceAlongTrip + this.lastKnownLocation = status.lastKnownLocation + this.lastKnownOrientation = status.lastKnownOrientation + this.lastLocationUpdateTime = status.lastLocationUpdateTime + this.lastUpdateTime = status.lastUpdateTime + this.nextStop = status.nextStop + this.nextStopTimeOffset = status.nextStopTimeOffset + this.occupancyCapacity = status.occupancyCapacity + this.occupancyCount = status.occupancyCount + this.occupancyStatus = status.occupancyStatus + this.orientation = status.orientation + this.phase = status.phase + this.position = status.position + this.predicted = status.predicted + this.scheduleDeviation = status.scheduleDeviation + this.scheduledDistanceAlongTrip = status.scheduledDistanceAlongTrip + this.serviceDate = status.serviceDate + this.situationIds = status.situationIds this.status = status.status - totalDistanceAlongTrip = status.totalDistanceAlongTrip - vehicleId = status.vehicleId - additionalProperties = status.additionalProperties.toMutableMap() + this.totalDistanceAlongTrip = status.totalDistanceAlongTrip + this.vehicleId = status.vehicleId + additionalProperties(status.additionalProperties) } /** Trip ID of the trip the vehicle is actively serving. */ @@ -1206,6 +1121,8 @@ private constructor( activeTripId(JsonField.of(activeTripId)) /** Trip ID of the trip the vehicle is actively serving. */ + @JsonProperty("activeTripId") + @ExcludeMissing fun activeTripId(activeTripId: JsonField) = apply { this.activeTripId = activeTripId } @@ -1215,6 +1132,8 @@ private constructor( blockTripSequence(JsonField.of(blockTripSequence)) /** Index of the active trip into the sequence of trips for the active block. */ + @JsonProperty("blockTripSequence") + @ExcludeMissing fun blockTripSequence(blockTripSequence: JsonField) = apply { this.blockTripSequence = blockTripSequence } @@ -1223,6 +1142,8 @@ private constructor( fun closestStop(closestStop: String) = closestStop(JsonField.of(closestStop)) /** ID of the closest stop to the current location of the transit vehicle. */ + @JsonProperty("closestStop") + @ExcludeMissing fun closestStop(closestStop: JsonField) = apply { this.closestStop = closestStop } @@ -1238,6 +1159,8 @@ private constructor( * Time offset from the closest stop to the current position of the transit * vehicle (in seconds). */ + @JsonProperty("closestStopTimeOffset") + @ExcludeMissing fun closestStopTimeOffset(closestStopTimeOffset: JsonField) = apply { this.closestStopTimeOffset = closestStopTimeOffset } @@ -1253,6 +1176,8 @@ private constructor( * Distance, in meters, the transit vehicle has progressed along the active * trip. */ + @JsonProperty("distanceAlongTrip") + @ExcludeMissing fun distanceAlongTrip(distanceAlongTrip: JsonField) = apply { this.distanceAlongTrip = distanceAlongTrip } @@ -1261,6 +1186,8 @@ private constructor( fun frequency(frequency: String) = frequency(JsonField.of(frequency)) /** Information about frequency-based scheduling, if applicable to the trip. */ + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } @@ -1276,6 +1203,8 @@ private constructor( * Last known distance along the trip received in real-time from the transit * vehicle. */ + @JsonProperty("lastKnownDistanceAlongTrip") + @ExcludeMissing fun lastKnownDistanceAlongTrip(lastKnownDistanceAlongTrip: JsonField) = apply { this.lastKnownDistanceAlongTrip = lastKnownDistanceAlongTrip @@ -1286,6 +1215,8 @@ private constructor( lastKnownLocation(JsonField.of(lastKnownLocation)) /** Last known location of the transit vehicle. */ + @JsonProperty("lastKnownLocation") + @ExcludeMissing fun lastKnownLocation(lastKnownLocation: JsonField) = apply { this.lastKnownLocation = lastKnownLocation } @@ -1299,6 +1230,8 @@ private constructor( /** * Last known orientation value received in real-time from the transit vehicle. */ + @JsonProperty("lastKnownOrientation") + @ExcludeMissing fun lastKnownOrientation(lastKnownOrientation: JsonField) = apply { this.lastKnownOrientation = lastKnownOrientation } @@ -1314,6 +1247,8 @@ private constructor( * Timestamp of the last known real-time location update from the transit * vehicle. */ + @JsonProperty("lastLocationUpdateTime") + @ExcludeMissing fun lastLocationUpdateTime(lastLocationUpdateTime: JsonField) = apply { this.lastLocationUpdateTime = lastLocationUpdateTime } @@ -1323,6 +1258,8 @@ private constructor( lastUpdateTime(JsonField.of(lastUpdateTime)) /** Timestamp of the last known real-time update from the transit vehicle. */ + @JsonProperty("lastUpdateTime") + @ExcludeMissing fun lastUpdateTime(lastUpdateTime: JsonField) = apply { this.lastUpdateTime = lastUpdateTime } @@ -1331,6 +1268,8 @@ private constructor( fun nextStop(nextStop: String) = nextStop(JsonField.of(nextStop)) /** ID of the next stop the transit vehicle is scheduled to arrive at. */ + @JsonProperty("nextStop") + @ExcludeMissing fun nextStop(nextStop: JsonField) = apply { this.nextStop = nextStop } /** @@ -1344,6 +1283,8 @@ private constructor( * Time offset from the next stop to the current position of the transit vehicle * (in seconds). */ + @JsonProperty("nextStopTimeOffset") + @ExcludeMissing fun nextStopTimeOffset(nextStopTimeOffset: JsonField) = apply { this.nextStopTimeOffset = nextStopTimeOffset } @@ -1353,6 +1294,8 @@ private constructor( occupancyCapacity(JsonField.of(occupancyCapacity)) /** Capacity of the transit vehicle in terms of occupancy. */ + @JsonProperty("occupancyCapacity") + @ExcludeMissing fun occupancyCapacity(occupancyCapacity: JsonField) = apply { this.occupancyCapacity = occupancyCapacity } @@ -1362,6 +1305,8 @@ private constructor( occupancyCount(JsonField.of(occupancyCount)) /** Current count of occupants in the transit vehicle. */ + @JsonProperty("occupancyCount") + @ExcludeMissing fun occupancyCount(occupancyCount: JsonField) = apply { this.occupancyCount = occupancyCount } @@ -1371,6 +1316,8 @@ private constructor( occupancyStatus(JsonField.of(occupancyStatus)) /** Current occupancy status of the transit vehicle. */ + @JsonProperty("occupancyStatus") + @ExcludeMissing fun occupancyStatus(occupancyStatus: JsonField) = apply { this.occupancyStatus = occupancyStatus } @@ -1379,6 +1326,8 @@ private constructor( fun orientation(orientation: Double) = orientation(JsonField.of(orientation)) /** Orientation of the transit vehicle, represented as an angle in degrees. */ + @JsonProperty("orientation") + @ExcludeMissing fun orientation(orientation: JsonField) = apply { this.orientation = orientation } @@ -1387,18 +1336,24 @@ private constructor( fun phase(phase: String) = phase(JsonField.of(phase)) /** Current journey phase of the trip. */ + @JsonProperty("phase") + @ExcludeMissing fun phase(phase: JsonField) = apply { this.phase = phase } /** Current position of the transit vehicle. */ fun position(position: Position) = position(JsonField.of(position)) /** Current position of the transit vehicle. */ + @JsonProperty("position") + @ExcludeMissing fun position(position: JsonField) = apply { this.position = position } /** Indicates if real-time arrival info is available for this trip. */ fun predicted(predicted: Boolean) = predicted(JsonField.of(predicted)) /** Indicates if real-time arrival info is available for this trip. */ + @JsonProperty("predicted") + @ExcludeMissing fun predicted(predicted: JsonField) = apply { this.predicted = predicted } @@ -1414,6 +1369,8 @@ private constructor( * Deviation from the schedule in seconds (positive for late, negative for * early). */ + @JsonProperty("scheduleDeviation") + @ExcludeMissing fun scheduleDeviation(scheduleDeviation: JsonField) = apply { this.scheduleDeviation = scheduleDeviation } @@ -1429,6 +1386,8 @@ private constructor( * Distance, in meters, the transit vehicle is scheduled to have progressed * along the active trip. */ + @JsonProperty("scheduledDistanceAlongTrip") + @ExcludeMissing fun scheduledDistanceAlongTrip(scheduledDistanceAlongTrip: JsonField) = apply { this.scheduledDistanceAlongTrip = scheduledDistanceAlongTrip @@ -1444,6 +1403,8 @@ private constructor( * Time, in milliseconds since the Unix epoch, of midnight for the start of the * service date for the trip. */ + @JsonProperty("serviceDate") + @ExcludeMissing fun serviceDate(serviceDate: JsonField) = apply { this.serviceDate = serviceDate } @@ -1453,6 +1414,8 @@ private constructor( situationIds(JsonField.of(situationIds)) /** References to situation elements (if any) applicable to this trip. */ + @JsonProperty("situationIds") + @ExcludeMissing fun situationIds(situationIds: JsonField>) = apply { this.situationIds = situationIds } @@ -1461,6 +1424,8 @@ private constructor( fun status(status: String) = status(JsonField.of(status)) /** Current status modifiers for the trip. */ + @JsonProperty("status") + @ExcludeMissing fun status(status: JsonField) = apply { this.status = status } /** Total length of the trip, in meters. */ @@ -1468,6 +1433,8 @@ private constructor( totalDistanceAlongTrip(JsonField.of(totalDistanceAlongTrip)) /** Total length of the trip, in meters. */ + @JsonProperty("totalDistanceAlongTrip") + @ExcludeMissing fun totalDistanceAlongTrip(totalDistanceAlongTrip: JsonField) = apply { this.totalDistanceAlongTrip = totalDistanceAlongTrip } @@ -1476,17 +1443,20 @@ private constructor( fun vehicleId(vehicleId: String) = vehicleId(JsonField.of(vehicleId)) /** ID of the transit vehicle currently serving the trip. */ + @JsonProperty("vehicleId") + @ExcludeMissing fun vehicleId(vehicleId: JsonField) = apply { this.vehicleId = vehicleId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1494,14 +1464,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Status = Status( activeTripId, @@ -1536,20 +1498,17 @@ private constructor( } /** Last known location of the transit vehicle. */ + @JsonDeserialize(builder = LastKnownLocation.Builder::class) @NoAutoDetect class LastKnownLocation - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Latitude of the last known location of the transit vehicle. */ fun lat(): Double? = lat.getNullable("lat") @@ -1566,8 +1525,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): LastKnownLocation = apply { if (!validated) { lat() @@ -1591,46 +1548,42 @@ private constructor( mutableMapOf() internal fun from(lastKnownLocation: LastKnownLocation) = apply { - lat = lastKnownLocation.lat - lon = lastKnownLocation.lon - additionalProperties = - lastKnownLocation.additionalProperties.toMutableMap() + this.lat = lastKnownLocation.lat + this.lon = lastKnownLocation.lon + additionalProperties(lastKnownLocation.additionalProperties) } /** Latitude of the last known location of the transit vehicle. */ fun lat(lat: Double) = lat(JsonField.of(lat)) /** Latitude of the last known location of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } /** Longitude of the last known location of the transit vehicle. */ fun lon(lon: Double) = lon(JsonField.of(lon)) /** Longitude of the last known location of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): LastKnownLocation = LastKnownLocation( lat, @@ -1658,20 +1611,17 @@ private constructor( } /** Current position of the transit vehicle. */ + @JsonDeserialize(builder = Position.Builder::class) @NoAutoDetect class Position - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Latitude of the current position of the transit vehicle. */ fun lat(): Double? = lat.getNullable("lat") @@ -1688,8 +1638,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Position = apply { if (!validated) { lat() @@ -1713,45 +1661,42 @@ private constructor( mutableMapOf() internal fun from(position: Position) = apply { - lat = position.lat - lon = position.lon - additionalProperties = position.additionalProperties.toMutableMap() + this.lat = position.lat + this.lon = position.lon + additionalProperties(position.additionalProperties) } /** Latitude of the current position of the transit vehicle. */ fun lat(lat: Double) = lat(JsonField.of(lat)) /** Latitude of the current position of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } /** Longitude of the current position of the transit vehicle. */ fun lon(lon: Double) = lon(JsonField.of(lon)) /** Longitude of the current position of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Position = Position( lat, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripForVehicleRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripForVehicleRetrieveResponse.kt index 1522350..46be1ea 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripForVehicleRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripForVehicleRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = TripForVehicleRetrieveResponse.Builder::class) @NoAutoDetect class TripForVehicleRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): TripForVehicleRetrieveResponse = apply { if (!validated) { code() @@ -93,54 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(tripForVehicleRetrieveResponse: TripForVehicleRetrieveResponse) = apply { - code = tripForVehicleRetrieveResponse.code - currentTime = tripForVehicleRetrieveResponse.currentTime - text = tripForVehicleRetrieveResponse.text - version = tripForVehicleRetrieveResponse.version - data = tripForVehicleRetrieveResponse.data - additionalProperties = - tripForVehicleRetrieveResponse.additionalProperties.toMutableMap() + this.code = tripForVehicleRetrieveResponse.code + this.currentTime = tripForVehicleRetrieveResponse.currentTime + this.text = tripForVehicleRetrieveResponse.text + this.version = tripForVehicleRetrieveResponse.version + this.data = tripForVehicleRetrieveResponse.data + additionalProperties(tripForVehicleRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): TripForVehicleRetrieveResponse = TripForVehicleRetrieveResponse( code, @@ -152,20 +151,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -178,8 +174,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -202,40 +196,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -244,32 +237,21 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("schedule") - @ExcludeMissing - private val schedule: JsonField = JsonMissing.of(), - @JsonProperty("serviceDate") - @ExcludeMissing - private val serviceDate: JsonField = JsonMissing.of(), - @JsonProperty("situationIds") - @ExcludeMissing - private val situationIds: JsonField> = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("tripId") - @ExcludeMissing - private val tripId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val frequency: JsonField, + private val schedule: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val status: JsonField, + private val tripId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun frequency(): String? = frequency.getNullable("frequency") fun schedule(): Schedule? = schedule.getNullable("schedule") @@ -298,8 +280,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { frequency() @@ -330,25 +310,31 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - frequency = entry.frequency - schedule = entry.schedule - serviceDate = entry.serviceDate - situationIds = entry.situationIds - status = entry.status - tripId = entry.tripId - additionalProperties = entry.additionalProperties.toMutableMap() + this.frequency = entry.frequency + this.schedule = entry.schedule + this.serviceDate = entry.serviceDate + this.situationIds = entry.situationIds + this.status = entry.status + this.tripId = entry.tripId + additionalProperties(entry.additionalProperties) } fun frequency(frequency: String) = frequency(JsonField.of(frequency)) + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } fun schedule(schedule: Schedule) = schedule(JsonField.of(schedule)) + @JsonProperty("schedule") + @ExcludeMissing fun schedule(schedule: JsonField) = apply { this.schedule = schedule } fun serviceDate(serviceDate: Long) = serviceDate(JsonField.of(serviceDate)) + @JsonProperty("serviceDate") + @ExcludeMissing fun serviceDate(serviceDate: JsonField) = apply { this.serviceDate = serviceDate } @@ -356,25 +342,32 @@ private constructor( fun situationIds(situationIds: List) = situationIds(JsonField.of(situationIds)) + @JsonProperty("situationIds") + @ExcludeMissing fun situationIds(situationIds: JsonField>) = apply { this.situationIds = situationIds } fun status(status: Status) = status(JsonField.of(status)) + @JsonProperty("status") + @ExcludeMissing fun status(status: JsonField) = apply { this.status = status } fun tripId(tripId: String) = tripId(JsonField.of(tripId)) + @JsonProperty("tripId") + @ExcludeMissing fun tripId(tripId: JsonField) = apply { this.tripId = tripId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -382,14 +375,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( frequency, @@ -402,29 +387,20 @@ private constructor( ) } + @JsonDeserialize(builder = Schedule.Builder::class) @NoAutoDetect class Schedule - @JsonCreator private constructor( - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("nextTripId") - @ExcludeMissing - private val nextTripId: JsonField = JsonMissing.of(), - @JsonProperty("previousTripId") - @ExcludeMissing - private val previousTripId: JsonField = JsonMissing.of(), - @JsonProperty("stopTimes") - @ExcludeMissing - private val stopTimes: JsonField> = JsonMissing.of(), - @JsonProperty("timeZone") - @ExcludeMissing - private val timeZone: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val frequency: JsonField, + private val nextTripId: JsonField, + private val previousTripId: JsonField, + private val stopTimes: JsonField>, + private val timeZone: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun frequency(): String? = frequency.getNullable("frequency") fun nextTripId(): String = nextTripId.getRequired("nextTripId") @@ -451,8 +427,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Schedule = apply { if (!validated) { frequency() @@ -481,22 +455,26 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(schedule: Schedule) = apply { - frequency = schedule.frequency - nextTripId = schedule.nextTripId - previousTripId = schedule.previousTripId - stopTimes = schedule.stopTimes - timeZone = schedule.timeZone - additionalProperties = schedule.additionalProperties.toMutableMap() + this.frequency = schedule.frequency + this.nextTripId = schedule.nextTripId + this.previousTripId = schedule.previousTripId + this.stopTimes = schedule.stopTimes + this.timeZone = schedule.timeZone + additionalProperties(schedule.additionalProperties) } fun frequency(frequency: String) = frequency(JsonField.of(frequency)) + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } fun nextTripId(nextTripId: String) = nextTripId(JsonField.of(nextTripId)) + @JsonProperty("nextTripId") + @ExcludeMissing fun nextTripId(nextTripId: JsonField) = apply { this.nextTripId = nextTripId } @@ -504,27 +482,34 @@ private constructor( fun previousTripId(previousTripId: String) = previousTripId(JsonField.of(previousTripId)) + @JsonProperty("previousTripId") + @ExcludeMissing fun previousTripId(previousTripId: JsonField) = apply { this.previousTripId = previousTripId } fun stopTimes(stopTimes: List) = stopTimes(JsonField.of(stopTimes)) + @JsonProperty("stopTimes") + @ExcludeMissing fun stopTimes(stopTimes: JsonField>) = apply { this.stopTimes = stopTimes } fun timeZone(timeZone: String) = timeZone(JsonField.of(timeZone)) + @JsonProperty("timeZone") + @ExcludeMissing fun timeZone(timeZone: JsonField) = apply { this.timeZone = timeZone } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -532,14 +517,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Schedule = Schedule( frequency, @@ -551,32 +528,21 @@ private constructor( ) } + @JsonDeserialize(builder = StopTime.Builder::class) @NoAutoDetect class StopTime - @JsonCreator private constructor( - @JsonProperty("arrivalTime") - @ExcludeMissing - private val arrivalTime: JsonField = JsonMissing.of(), - @JsonProperty("departureTime") - @ExcludeMissing - private val departureTime: JsonField = JsonMissing.of(), - @JsonProperty("distanceAlongTrip") - @ExcludeMissing - private val distanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("historicalOccupancy") - @ExcludeMissing - private val historicalOccupancy: JsonField = JsonMissing.of(), - @JsonProperty("stopHeadsign") - @ExcludeMissing - private val stopHeadsign: JsonField = JsonMissing.of(), - @JsonProperty("stopId") - @ExcludeMissing - private val stopId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val arrivalTime: JsonField, + private val departureTime: JsonField, + private val distanceAlongTrip: JsonField, + private val historicalOccupancy: JsonField, + private val stopHeadsign: JsonField, + private val stopId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun arrivalTime(): Long? = arrivalTime.getNullable("arrivalTime") fun departureTime(): Long? = departureTime.getNullable("departureTime") @@ -613,8 +579,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): StopTime = apply { if (!validated) { arrivalTime() @@ -646,17 +610,19 @@ private constructor( mutableMapOf() internal fun from(stopTime: StopTime) = apply { - arrivalTime = stopTime.arrivalTime - departureTime = stopTime.departureTime - distanceAlongTrip = stopTime.distanceAlongTrip - historicalOccupancy = stopTime.historicalOccupancy - stopHeadsign = stopTime.stopHeadsign - stopId = stopTime.stopId - additionalProperties = stopTime.additionalProperties.toMutableMap() + this.arrivalTime = stopTime.arrivalTime + this.departureTime = stopTime.departureTime + this.distanceAlongTrip = stopTime.distanceAlongTrip + this.historicalOccupancy = stopTime.historicalOccupancy + this.stopHeadsign = stopTime.stopHeadsign + this.stopId = stopTime.stopId + additionalProperties(stopTime.additionalProperties) } fun arrivalTime(arrivalTime: Long) = arrivalTime(JsonField.of(arrivalTime)) + @JsonProperty("arrivalTime") + @ExcludeMissing fun arrivalTime(arrivalTime: JsonField) = apply { this.arrivalTime = arrivalTime } @@ -664,6 +630,8 @@ private constructor( fun departureTime(departureTime: Long) = departureTime(JsonField.of(departureTime)) + @JsonProperty("departureTime") + @ExcludeMissing fun departureTime(departureTime: JsonField) = apply { this.departureTime = departureTime } @@ -671,6 +639,8 @@ private constructor( fun distanceAlongTrip(distanceAlongTrip: Double) = distanceAlongTrip(JsonField.of(distanceAlongTrip)) + @JsonProperty("distanceAlongTrip") + @ExcludeMissing fun distanceAlongTrip(distanceAlongTrip: JsonField) = apply { this.distanceAlongTrip = distanceAlongTrip } @@ -678,6 +648,8 @@ private constructor( fun historicalOccupancy(historicalOccupancy: String) = historicalOccupancy(JsonField.of(historicalOccupancy)) + @JsonProperty("historicalOccupancy") + @ExcludeMissing fun historicalOccupancy(historicalOccupancy: JsonField) = apply { this.historicalOccupancy = historicalOccupancy } @@ -685,36 +657,33 @@ private constructor( fun stopHeadsign(stopHeadsign: String) = stopHeadsign(JsonField.of(stopHeadsign)) + @JsonProperty("stopHeadsign") + @ExcludeMissing fun stopHeadsign(stopHeadsign: JsonField) = apply { this.stopHeadsign = stopHeadsign } fun stopId(stopId: String) = stopId(JsonField.of(stopId)) + @JsonProperty("stopId") + @ExcludeMissing fun stopId(stopId: JsonField) = apply { this.stopId = stopId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopTime = StopTime( arrivalTime, @@ -763,95 +732,42 @@ private constructor( "Schedule{frequency=$frequency, nextTripId=$nextTripId, previousTripId=$previousTripId, stopTimes=$stopTimes, timeZone=$timeZone, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = Status.Builder::class) @NoAutoDetect class Status - @JsonCreator private constructor( - @JsonProperty("activeTripId") - @ExcludeMissing - private val activeTripId: JsonField = JsonMissing.of(), - @JsonProperty("blockTripSequence") - @ExcludeMissing - private val blockTripSequence: JsonField = JsonMissing.of(), - @JsonProperty("closestStop") - @ExcludeMissing - private val closestStop: JsonField = JsonMissing.of(), - @JsonProperty("closestStopTimeOffset") - @ExcludeMissing - private val closestStopTimeOffset: JsonField = JsonMissing.of(), - @JsonProperty("distanceAlongTrip") - @ExcludeMissing - private val distanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownDistanceAlongTrip") - @ExcludeMissing - private val lastKnownDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownLocation") - @ExcludeMissing - private val lastKnownLocation: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownOrientation") - @ExcludeMissing - private val lastKnownOrientation: JsonField = JsonMissing.of(), - @JsonProperty("lastLocationUpdateTime") - @ExcludeMissing - private val lastLocationUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("lastUpdateTime") - @ExcludeMissing - private val lastUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("nextStop") - @ExcludeMissing - private val nextStop: JsonField = JsonMissing.of(), - @JsonProperty("nextStopTimeOffset") - @ExcludeMissing - private val nextStopTimeOffset: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCapacity") - @ExcludeMissing - private val occupancyCapacity: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCount") - @ExcludeMissing - private val occupancyCount: JsonField = JsonMissing.of(), - @JsonProperty("occupancyStatus") - @ExcludeMissing - private val occupancyStatus: JsonField = JsonMissing.of(), - @JsonProperty("orientation") - @ExcludeMissing - private val orientation: JsonField = JsonMissing.of(), - @JsonProperty("phase") - @ExcludeMissing - private val phase: JsonField = JsonMissing.of(), - @JsonProperty("position") - @ExcludeMissing - private val position: JsonField = JsonMissing.of(), - @JsonProperty("predicted") - @ExcludeMissing - private val predicted: JsonField = JsonMissing.of(), - @JsonProperty("scheduleDeviation") - @ExcludeMissing - private val scheduleDeviation: JsonField = JsonMissing.of(), - @JsonProperty("scheduledDistanceAlongTrip") - @ExcludeMissing - private val scheduledDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("serviceDate") - @ExcludeMissing - private val serviceDate: JsonField = JsonMissing.of(), - @JsonProperty("situationIds") - @ExcludeMissing - private val situationIds: JsonField> = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("totalDistanceAlongTrip") - @ExcludeMissing - private val totalDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("vehicleId") - @ExcludeMissing - private val vehicleId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val activeTripId: JsonField, + private val blockTripSequence: JsonField, + private val closestStop: JsonField, + private val closestStopTimeOffset: JsonField, + private val distanceAlongTrip: JsonField, + private val frequency: JsonField, + private val lastKnownDistanceAlongTrip: JsonField, + private val lastKnownLocation: JsonField, + private val lastKnownOrientation: JsonField, + private val lastLocationUpdateTime: JsonField, + private val lastUpdateTime: JsonField, + private val nextStop: JsonField, + private val nextStopTimeOffset: JsonField, + private val occupancyCapacity: JsonField, + private val occupancyCount: JsonField, + private val occupancyStatus: JsonField, + private val orientation: JsonField, + private val phase: JsonField, + private val position: JsonField, + private val predicted: JsonField, + private val scheduleDeviation: JsonField, + private val scheduledDistanceAlongTrip: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val status: JsonField, + private val totalDistanceAlongTrip: JsonField, + private val vehicleId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Trip ID of the trip the vehicle is actively serving. */ fun activeTripId(): String = activeTripId.getRequired("activeTripId") @@ -1098,8 +1014,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Status = apply { if (!validated) { activeTripId() @@ -1172,34 +1086,34 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(status: Status) = apply { - activeTripId = status.activeTripId - blockTripSequence = status.blockTripSequence - closestStop = status.closestStop - closestStopTimeOffset = status.closestStopTimeOffset - distanceAlongTrip = status.distanceAlongTrip - frequency = status.frequency - lastKnownDistanceAlongTrip = status.lastKnownDistanceAlongTrip - lastKnownLocation = status.lastKnownLocation - lastKnownOrientation = status.lastKnownOrientation - lastLocationUpdateTime = status.lastLocationUpdateTime - lastUpdateTime = status.lastUpdateTime - nextStop = status.nextStop - nextStopTimeOffset = status.nextStopTimeOffset - occupancyCapacity = status.occupancyCapacity - occupancyCount = status.occupancyCount - occupancyStatus = status.occupancyStatus - orientation = status.orientation - phase = status.phase - position = status.position - predicted = status.predicted - scheduleDeviation = status.scheduleDeviation - scheduledDistanceAlongTrip = status.scheduledDistanceAlongTrip - serviceDate = status.serviceDate - situationIds = status.situationIds + this.activeTripId = status.activeTripId + this.blockTripSequence = status.blockTripSequence + this.closestStop = status.closestStop + this.closestStopTimeOffset = status.closestStopTimeOffset + this.distanceAlongTrip = status.distanceAlongTrip + this.frequency = status.frequency + this.lastKnownDistanceAlongTrip = status.lastKnownDistanceAlongTrip + this.lastKnownLocation = status.lastKnownLocation + this.lastKnownOrientation = status.lastKnownOrientation + this.lastLocationUpdateTime = status.lastLocationUpdateTime + this.lastUpdateTime = status.lastUpdateTime + this.nextStop = status.nextStop + this.nextStopTimeOffset = status.nextStopTimeOffset + this.occupancyCapacity = status.occupancyCapacity + this.occupancyCount = status.occupancyCount + this.occupancyStatus = status.occupancyStatus + this.orientation = status.orientation + this.phase = status.phase + this.position = status.position + this.predicted = status.predicted + this.scheduleDeviation = status.scheduleDeviation + this.scheduledDistanceAlongTrip = status.scheduledDistanceAlongTrip + this.serviceDate = status.serviceDate + this.situationIds = status.situationIds this.status = status.status - totalDistanceAlongTrip = status.totalDistanceAlongTrip - vehicleId = status.vehicleId - additionalProperties = status.additionalProperties.toMutableMap() + this.totalDistanceAlongTrip = status.totalDistanceAlongTrip + this.vehicleId = status.vehicleId + additionalProperties(status.additionalProperties) } /** Trip ID of the trip the vehicle is actively serving. */ @@ -1207,6 +1121,8 @@ private constructor( activeTripId(JsonField.of(activeTripId)) /** Trip ID of the trip the vehicle is actively serving. */ + @JsonProperty("activeTripId") + @ExcludeMissing fun activeTripId(activeTripId: JsonField) = apply { this.activeTripId = activeTripId } @@ -1216,6 +1132,8 @@ private constructor( blockTripSequence(JsonField.of(blockTripSequence)) /** Index of the active trip into the sequence of trips for the active block. */ + @JsonProperty("blockTripSequence") + @ExcludeMissing fun blockTripSequence(blockTripSequence: JsonField) = apply { this.blockTripSequence = blockTripSequence } @@ -1224,6 +1142,8 @@ private constructor( fun closestStop(closestStop: String) = closestStop(JsonField.of(closestStop)) /** ID of the closest stop to the current location of the transit vehicle. */ + @JsonProperty("closestStop") + @ExcludeMissing fun closestStop(closestStop: JsonField) = apply { this.closestStop = closestStop } @@ -1239,6 +1159,8 @@ private constructor( * Time offset from the closest stop to the current position of the transit * vehicle (in seconds). */ + @JsonProperty("closestStopTimeOffset") + @ExcludeMissing fun closestStopTimeOffset(closestStopTimeOffset: JsonField) = apply { this.closestStopTimeOffset = closestStopTimeOffset } @@ -1254,6 +1176,8 @@ private constructor( * Distance, in meters, the transit vehicle has progressed along the active * trip. */ + @JsonProperty("distanceAlongTrip") + @ExcludeMissing fun distanceAlongTrip(distanceAlongTrip: JsonField) = apply { this.distanceAlongTrip = distanceAlongTrip } @@ -1262,6 +1186,8 @@ private constructor( fun frequency(frequency: String) = frequency(JsonField.of(frequency)) /** Information about frequency-based scheduling, if applicable to the trip. */ + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } @@ -1277,6 +1203,8 @@ private constructor( * Last known distance along the trip received in real-time from the transit * vehicle. */ + @JsonProperty("lastKnownDistanceAlongTrip") + @ExcludeMissing fun lastKnownDistanceAlongTrip(lastKnownDistanceAlongTrip: JsonField) = apply { this.lastKnownDistanceAlongTrip = lastKnownDistanceAlongTrip @@ -1287,6 +1215,8 @@ private constructor( lastKnownLocation(JsonField.of(lastKnownLocation)) /** Last known location of the transit vehicle. */ + @JsonProperty("lastKnownLocation") + @ExcludeMissing fun lastKnownLocation(lastKnownLocation: JsonField) = apply { this.lastKnownLocation = lastKnownLocation } @@ -1300,6 +1230,8 @@ private constructor( /** * Last known orientation value received in real-time from the transit vehicle. */ + @JsonProperty("lastKnownOrientation") + @ExcludeMissing fun lastKnownOrientation(lastKnownOrientation: JsonField) = apply { this.lastKnownOrientation = lastKnownOrientation } @@ -1315,6 +1247,8 @@ private constructor( * Timestamp of the last known real-time location update from the transit * vehicle. */ + @JsonProperty("lastLocationUpdateTime") + @ExcludeMissing fun lastLocationUpdateTime(lastLocationUpdateTime: JsonField) = apply { this.lastLocationUpdateTime = lastLocationUpdateTime } @@ -1324,6 +1258,8 @@ private constructor( lastUpdateTime(JsonField.of(lastUpdateTime)) /** Timestamp of the last known real-time update from the transit vehicle. */ + @JsonProperty("lastUpdateTime") + @ExcludeMissing fun lastUpdateTime(lastUpdateTime: JsonField) = apply { this.lastUpdateTime = lastUpdateTime } @@ -1332,6 +1268,8 @@ private constructor( fun nextStop(nextStop: String) = nextStop(JsonField.of(nextStop)) /** ID of the next stop the transit vehicle is scheduled to arrive at. */ + @JsonProperty("nextStop") + @ExcludeMissing fun nextStop(nextStop: JsonField) = apply { this.nextStop = nextStop } /** @@ -1345,6 +1283,8 @@ private constructor( * Time offset from the next stop to the current position of the transit vehicle * (in seconds). */ + @JsonProperty("nextStopTimeOffset") + @ExcludeMissing fun nextStopTimeOffset(nextStopTimeOffset: JsonField) = apply { this.nextStopTimeOffset = nextStopTimeOffset } @@ -1354,6 +1294,8 @@ private constructor( occupancyCapacity(JsonField.of(occupancyCapacity)) /** Capacity of the transit vehicle in terms of occupancy. */ + @JsonProperty("occupancyCapacity") + @ExcludeMissing fun occupancyCapacity(occupancyCapacity: JsonField) = apply { this.occupancyCapacity = occupancyCapacity } @@ -1363,6 +1305,8 @@ private constructor( occupancyCount(JsonField.of(occupancyCount)) /** Current count of occupants in the transit vehicle. */ + @JsonProperty("occupancyCount") + @ExcludeMissing fun occupancyCount(occupancyCount: JsonField) = apply { this.occupancyCount = occupancyCount } @@ -1372,6 +1316,8 @@ private constructor( occupancyStatus(JsonField.of(occupancyStatus)) /** Current occupancy status of the transit vehicle. */ + @JsonProperty("occupancyStatus") + @ExcludeMissing fun occupancyStatus(occupancyStatus: JsonField) = apply { this.occupancyStatus = occupancyStatus } @@ -1380,6 +1326,8 @@ private constructor( fun orientation(orientation: Double) = orientation(JsonField.of(orientation)) /** Orientation of the transit vehicle, represented as an angle in degrees. */ + @JsonProperty("orientation") + @ExcludeMissing fun orientation(orientation: JsonField) = apply { this.orientation = orientation } @@ -1388,18 +1336,24 @@ private constructor( fun phase(phase: String) = phase(JsonField.of(phase)) /** Current journey phase of the trip. */ + @JsonProperty("phase") + @ExcludeMissing fun phase(phase: JsonField) = apply { this.phase = phase } /** Current position of the transit vehicle. */ fun position(position: Position) = position(JsonField.of(position)) /** Current position of the transit vehicle. */ + @JsonProperty("position") + @ExcludeMissing fun position(position: JsonField) = apply { this.position = position } /** Indicates if real-time arrival info is available for this trip. */ fun predicted(predicted: Boolean) = predicted(JsonField.of(predicted)) /** Indicates if real-time arrival info is available for this trip. */ + @JsonProperty("predicted") + @ExcludeMissing fun predicted(predicted: JsonField) = apply { this.predicted = predicted } @@ -1415,6 +1369,8 @@ private constructor( * Deviation from the schedule in seconds (positive for late, negative for * early). */ + @JsonProperty("scheduleDeviation") + @ExcludeMissing fun scheduleDeviation(scheduleDeviation: JsonField) = apply { this.scheduleDeviation = scheduleDeviation } @@ -1430,6 +1386,8 @@ private constructor( * Distance, in meters, the transit vehicle is scheduled to have progressed * along the active trip. */ + @JsonProperty("scheduledDistanceAlongTrip") + @ExcludeMissing fun scheduledDistanceAlongTrip(scheduledDistanceAlongTrip: JsonField) = apply { this.scheduledDistanceAlongTrip = scheduledDistanceAlongTrip @@ -1445,6 +1403,8 @@ private constructor( * Time, in milliseconds since the Unix epoch, of midnight for the start of the * service date for the trip. */ + @JsonProperty("serviceDate") + @ExcludeMissing fun serviceDate(serviceDate: JsonField) = apply { this.serviceDate = serviceDate } @@ -1454,6 +1414,8 @@ private constructor( situationIds(JsonField.of(situationIds)) /** References to situation elements (if any) applicable to this trip. */ + @JsonProperty("situationIds") + @ExcludeMissing fun situationIds(situationIds: JsonField>) = apply { this.situationIds = situationIds } @@ -1462,6 +1424,8 @@ private constructor( fun status(status: String) = status(JsonField.of(status)) /** Current status modifiers for the trip. */ + @JsonProperty("status") + @ExcludeMissing fun status(status: JsonField) = apply { this.status = status } /** Total length of the trip, in meters. */ @@ -1469,6 +1433,8 @@ private constructor( totalDistanceAlongTrip(JsonField.of(totalDistanceAlongTrip)) /** Total length of the trip, in meters. */ + @JsonProperty("totalDistanceAlongTrip") + @ExcludeMissing fun totalDistanceAlongTrip(totalDistanceAlongTrip: JsonField) = apply { this.totalDistanceAlongTrip = totalDistanceAlongTrip } @@ -1477,17 +1443,20 @@ private constructor( fun vehicleId(vehicleId: String) = vehicleId(JsonField.of(vehicleId)) /** ID of the transit vehicle currently serving the trip. */ + @JsonProperty("vehicleId") + @ExcludeMissing fun vehicleId(vehicleId: JsonField) = apply { this.vehicleId = vehicleId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1495,14 +1464,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Status = Status( activeTripId, @@ -1537,20 +1498,17 @@ private constructor( } /** Last known location of the transit vehicle. */ + @JsonDeserialize(builder = LastKnownLocation.Builder::class) @NoAutoDetect class LastKnownLocation - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Latitude of the last known location of the transit vehicle. */ fun lat(): Double? = lat.getNullable("lat") @@ -1567,8 +1525,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): LastKnownLocation = apply { if (!validated) { lat() @@ -1592,46 +1548,42 @@ private constructor( mutableMapOf() internal fun from(lastKnownLocation: LastKnownLocation) = apply { - lat = lastKnownLocation.lat - lon = lastKnownLocation.lon - additionalProperties = - lastKnownLocation.additionalProperties.toMutableMap() + this.lat = lastKnownLocation.lat + this.lon = lastKnownLocation.lon + additionalProperties(lastKnownLocation.additionalProperties) } /** Latitude of the last known location of the transit vehicle. */ fun lat(lat: Double) = lat(JsonField.of(lat)) /** Latitude of the last known location of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } /** Longitude of the last known location of the transit vehicle. */ fun lon(lon: Double) = lon(JsonField.of(lon)) /** Longitude of the last known location of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): LastKnownLocation = LastKnownLocation( lat, @@ -1659,20 +1611,17 @@ private constructor( } /** Current position of the transit vehicle. */ + @JsonDeserialize(builder = Position.Builder::class) @NoAutoDetect class Position - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Latitude of the current position of the transit vehicle. */ fun lat(): Double? = lat.getNullable("lat") @@ -1689,8 +1638,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Position = apply { if (!validated) { lat() @@ -1714,45 +1661,42 @@ private constructor( mutableMapOf() internal fun from(position: Position) = apply { - lat = position.lat - lon = position.lon - additionalProperties = position.additionalProperties.toMutableMap() + this.lat = position.lat + this.lon = position.lon + additionalProperties(position.additionalProperties) } /** Latitude of the current position of the transit vehicle. */ fun lat(lat: Double) = lat(JsonField.of(lat)) /** Latitude of the current position of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } /** Longitude of the current position of the transit vehicle. */ fun lon(lon: Double) = lon(JsonField.of(lon)) /** Longitude of the current position of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Position = Position( lat, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripRetrieveResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripRetrieveResponse.kt index 181621a..12b9017 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripRetrieveResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripRetrieveResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = TripRetrieveResponse.Builder::class) @NoAutoDetect class TripRetrieveResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): TripRetrieveResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(tripRetrieveResponse: TripRetrieveResponse) = apply { - code = tripRetrieveResponse.code - currentTime = tripRetrieveResponse.currentTime - text = tripRetrieveResponse.text - version = tripRetrieveResponse.version - data = tripRetrieveResponse.data - additionalProperties = tripRetrieveResponse.additionalProperties.toMutableMap() + this.code = tripRetrieveResponse.code + this.currentTime = tripRetrieveResponse.currentTime + this.text = tripRetrieveResponse.text + this.version = tripRetrieveResponse.version + this.data = tripRetrieveResponse.data + additionalProperties(tripRetrieveResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): TripRetrieveResponse = TripRetrieveResponse( code, @@ -151,20 +151,17 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("entry") - @ExcludeMissing - private val entry: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entry: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun entry(): Entry = entry.getRequired("entry") fun references(): References = references.getRequired("references") @@ -177,8 +174,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { entry().validate() @@ -201,40 +196,39 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - entry = data.entry - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.entry = data.entry + this.references = data.references + additionalProperties(data.additionalProperties) } fun entry(entry: Entry) = entry(JsonField.of(entry)) + @JsonProperty("entry") + @ExcludeMissing fun entry(entry: JsonField) = apply { this.entry = entry } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( entry, @@ -243,47 +237,26 @@ private constructor( ) } + @JsonDeserialize(builder = Entry.Builder::class) @NoAutoDetect class Entry - @JsonCreator private constructor( - @JsonProperty("blockId") - @ExcludeMissing - private val blockId: JsonField = JsonMissing.of(), - @JsonProperty("directionId") - @ExcludeMissing - private val directionId: JsonField = JsonMissing.of(), - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("peakOffpeak") - @ExcludeMissing - private val peakOffpeak: JsonField = JsonMissing.of(), - @JsonProperty("routeId") - @ExcludeMissing - private val routeId: JsonField = JsonMissing.of(), - @JsonProperty("routeShortName") - @ExcludeMissing - private val routeShortName: JsonField = JsonMissing.of(), - @JsonProperty("serviceId") - @ExcludeMissing - private val serviceId: JsonField = JsonMissing.of(), - @JsonProperty("shapeId") - @ExcludeMissing - private val shapeId: JsonField = JsonMissing.of(), - @JsonProperty("timeZone") - @ExcludeMissing - private val timeZone: JsonField = JsonMissing.of(), - @JsonProperty("tripHeadsign") - @ExcludeMissing - private val tripHeadsign: JsonField = JsonMissing.of(), - @JsonProperty("tripShortName") - @ExcludeMissing - private val tripShortName: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val blockId: JsonField, + private val directionId: JsonField, + private val id: JsonField, + private val peakOffpeak: JsonField, + private val routeId: JsonField, + private val routeShortName: JsonField, + private val serviceId: JsonField, + private val shapeId: JsonField, + private val timeZone: JsonField, + private val tripHeadsign: JsonField, + private val tripShortName: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun blockId(): String? = blockId.getNullable("blockId") fun directionId(): String? = directionId.getNullable("directionId") @@ -332,8 +305,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Entry = apply { if (!validated) { blockId() @@ -374,65 +345,85 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(entry: Entry) = apply { - blockId = entry.blockId - directionId = entry.directionId - id = entry.id - peakOffpeak = entry.peakOffpeak - routeId = entry.routeId - routeShortName = entry.routeShortName - serviceId = entry.serviceId - shapeId = entry.shapeId - timeZone = entry.timeZone - tripHeadsign = entry.tripHeadsign - tripShortName = entry.tripShortName - additionalProperties = entry.additionalProperties.toMutableMap() + this.blockId = entry.blockId + this.directionId = entry.directionId + this.id = entry.id + this.peakOffpeak = entry.peakOffpeak + this.routeId = entry.routeId + this.routeShortName = entry.routeShortName + this.serviceId = entry.serviceId + this.shapeId = entry.shapeId + this.timeZone = entry.timeZone + this.tripHeadsign = entry.tripHeadsign + this.tripShortName = entry.tripShortName + additionalProperties(entry.additionalProperties) } fun blockId(blockId: String) = blockId(JsonField.of(blockId)) + @JsonProperty("blockId") + @ExcludeMissing fun blockId(blockId: JsonField) = apply { this.blockId = blockId } fun directionId(directionId: String) = directionId(JsonField.of(directionId)) + @JsonProperty("directionId") + @ExcludeMissing fun directionId(directionId: JsonField) = apply { this.directionId = directionId } fun id(id: String) = id(JsonField.of(id)) + @JsonProperty("id") + @ExcludeMissing fun id(id: JsonField) = apply { this.id = id } fun peakOffpeak(peakOffpeak: Long) = peakOffpeak(JsonField.of(peakOffpeak)) + @JsonProperty("peakOffpeak") + @ExcludeMissing fun peakOffpeak(peakOffpeak: JsonField) = apply { this.peakOffpeak = peakOffpeak } fun routeId(routeId: String) = routeId(JsonField.of(routeId)) + @JsonProperty("routeId") + @ExcludeMissing fun routeId(routeId: JsonField) = apply { this.routeId = routeId } fun routeShortName(routeShortName: String) = routeShortName(JsonField.of(routeShortName)) + @JsonProperty("routeShortName") + @ExcludeMissing fun routeShortName(routeShortName: JsonField) = apply { this.routeShortName = routeShortName } fun serviceId(serviceId: String) = serviceId(JsonField.of(serviceId)) + @JsonProperty("serviceId") + @ExcludeMissing fun serviceId(serviceId: JsonField) = apply { this.serviceId = serviceId } fun shapeId(shapeId: String) = shapeId(JsonField.of(shapeId)) + @JsonProperty("shapeId") + @ExcludeMissing fun shapeId(shapeId: JsonField) = apply { this.shapeId = shapeId } fun timeZone(timeZone: String) = timeZone(JsonField.of(timeZone)) + @JsonProperty("timeZone") + @ExcludeMissing fun timeZone(timeZone: JsonField) = apply { this.timeZone = timeZone } fun tripHeadsign(tripHeadsign: String) = tripHeadsign(JsonField.of(tripHeadsign)) + @JsonProperty("tripHeadsign") + @ExcludeMissing fun tripHeadsign(tripHeadsign: JsonField) = apply { this.tripHeadsign = tripHeadsign } @@ -440,17 +431,20 @@ private constructor( fun tripShortName(tripShortName: String) = tripShortName(JsonField.of(tripShortName)) + @JsonProperty("tripShortName") + @ExcludeMissing fun tripShortName(tripShortName: JsonField) = apply { this.tripShortName = tripShortName } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -458,14 +452,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Entry = Entry( blockId, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripsForLocationListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripsForLocationListResponse.kt index 537e125..daef71e 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripsForLocationListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripsForLocationListResponse.kt @@ -2,6 +2,1842 @@ package org.onebusaway.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import java.util.Objects +import org.onebusaway.core.ExcludeMissing +import org.onebusaway.core.JsonField +import org.onebusaway.core.JsonMissing +import org.onebusaway.core.JsonValue +import org.onebusaway.core.NoAutoDetect +import org.onebusaway.core.toImmutable + +@JsonDeserialize(builder = TripsForLocationListResponse.Builder::class) +@NoAutoDetect +class TripsForLocationListResponse +private constructor( + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, +) { + + private var validated: Boolean = false + + fun code(): Long = code.getRequired("code") + + fun currentTime(): Long = currentTime.getRequired("currentTime") + + fun text(): String = text.getRequired("text") + + fun version(): Long = version.getRequired("version") + + fun data(): Data = data.getRequired("data") + + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + + @JsonProperty("code") @ExcludeMissing fun _code() = code + + @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime + + @JsonProperty("text") @ExcludeMissing fun _text() = text + + @JsonProperty("version") @ExcludeMissing fun _version() = version + + @JsonProperty("data") @ExcludeMissing fun _data() = data + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = additionalProperties + + fun validate(): TripsForLocationListResponse = apply { + if (!validated) { + code() + currentTime() + text() + version() + data().validate() + validated = true + } + } + + fun toBuilder() = Builder().from(this) + + companion object { + + fun builder() = Builder() + } + + class Builder { + + private var code: JsonField = JsonMissing.of() + private var currentTime: JsonField = JsonMissing.of() + private var text: JsonField = JsonMissing.of() + private var version: JsonField = JsonMissing.of() + private var data: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + internal fun from(tripsForLocationListResponse: TripsForLocationListResponse) = apply { + this.code = tripsForLocationListResponse.code + this.currentTime = tripsForLocationListResponse.currentTime + this.text = tripsForLocationListResponse.text + this.version = tripsForLocationListResponse.version + this.data = tripsForLocationListResponse.data + additionalProperties(tripsForLocationListResponse.additionalProperties) + } + + fun code(code: Long) = code(JsonField.of(code)) + + @JsonProperty("code") + @ExcludeMissing + fun code(code: JsonField) = apply { this.code = code } + + fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + + @JsonProperty("currentTime") + @ExcludeMissing + fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } + + fun text(text: String) = text(JsonField.of(text)) + + @JsonProperty("text") + @ExcludeMissing + fun text(text: JsonField) = apply { this.text = text } + + fun version(version: Long) = version(JsonField.of(version)) + + @JsonProperty("version") + @ExcludeMissing + fun version(version: JsonField) = apply { this.version = version } + + fun data(data: Data) = data(JsonField.of(data)) + + @JsonProperty("data") + @ExcludeMissing + fun data(data: JsonField) = apply { this.data = data } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + this.additionalProperties.putAll(additionalProperties) + } + + @JsonAnySetter + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + this.additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun build(): TripsForLocationListResponse = + TripsForLocationListResponse( + code, + currentTime, + text, + version, + data, + additionalProperties.toImmutable(), + ) + } + + @JsonDeserialize(builder = Data.Builder::class) + @NoAutoDetect + class Data + private constructor( + private val limitExceeded: JsonField, + private val list: JsonField>, + private val outOfRange: JsonField, + private val references: JsonField, + private val additionalProperties: Map, + ) { + + private var validated: Boolean = false + + /** Indicates if the limit of trips has been exceeded */ + fun limitExceeded(): Boolean = limitExceeded.getRequired("limitExceeded") + + fun list(): List = list.getRequired("list") + + /** Indicates if the search location is out of range */ + fun outOfRange(): Boolean? = outOfRange.getNullable("outOfRange") + + fun references(): References = references.getRequired("references") + + /** Indicates if the limit of trips has been exceeded */ + @JsonProperty("limitExceeded") @ExcludeMissing fun _limitExceeded() = limitExceeded + + @JsonProperty("list") @ExcludeMissing fun _list() = list + + /** Indicates if the search location is out of range */ + @JsonProperty("outOfRange") @ExcludeMissing fun _outOfRange() = outOfRange + + @JsonProperty("references") @ExcludeMissing fun _references() = references + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = additionalProperties + + fun validate(): Data = apply { + if (!validated) { + limitExceeded() + list().forEach { it.validate() } + outOfRange() + references().validate() + validated = true + } + } + + fun toBuilder() = Builder().from(this) + + companion object { + + fun builder() = Builder() + } + + class Builder { + + private var limitExceeded: JsonField = JsonMissing.of() + private var list: JsonField> = JsonMissing.of() + private var outOfRange: JsonField = JsonMissing.of() + private var references: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + internal fun from(data: Data) = apply { + this.limitExceeded = data.limitExceeded + this.list = data.list + this.outOfRange = data.outOfRange + this.references = data.references + additionalProperties(data.additionalProperties) + } + + /** Indicates if the limit of trips has been exceeded */ + fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + + /** Indicates if the limit of trips has been exceeded */ + @JsonProperty("limitExceeded") + @ExcludeMissing + fun limitExceeded(limitExceeded: JsonField) = apply { + this.limitExceeded = limitExceeded + } + + fun list(list: List) = list(JsonField.of(list)) + + @JsonProperty("list") + @ExcludeMissing + fun list(list: JsonField>) = apply { this.list = list } + + /** Indicates if the search location is out of range */ + fun outOfRange(outOfRange: Boolean) = outOfRange(JsonField.of(outOfRange)) + + /** Indicates if the search location is out of range */ + @JsonProperty("outOfRange") + @ExcludeMissing + fun outOfRange(outOfRange: JsonField) = apply { this.outOfRange = outOfRange } + + fun references(references: References) = references(JsonField.of(references)) + + @JsonProperty("references") + @ExcludeMissing + fun references(references: JsonField) = apply { + this.references = references + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + this.additionalProperties.putAll(additionalProperties) + } + + @JsonAnySetter + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + this.additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun build(): Data = + Data( + limitExceeded, + list.map { it.toImmutable() }, + outOfRange, + references, + additionalProperties.toImmutable(), + ) + } + + @JsonDeserialize(builder = List.Builder::class) + @NoAutoDetect + class List + private constructor( + private val frequency: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val tripId: JsonField, + private val schedule: JsonField, + private val status: JsonField, + private val additionalProperties: Map, + ) { + + private var validated: Boolean = false + + fun frequency(): String? = frequency.getNullable("frequency") + + fun serviceDate(): Long? = serviceDate.getNullable("serviceDate") + + fun situationIds(): List? = situationIds.getNullable("situationIds") + + fun tripId(): String = tripId.getRequired("tripId") + + fun schedule(): Schedule = schedule.getRequired("schedule") + + fun status(): Status = status.getRequired("status") + + @JsonProperty("frequency") @ExcludeMissing fun _frequency() = frequency + + @JsonProperty("serviceDate") @ExcludeMissing fun _serviceDate() = serviceDate + + @JsonProperty("situationIds") @ExcludeMissing fun _situationIds() = situationIds + + @JsonProperty("tripId") @ExcludeMissing fun _tripId() = tripId + + @JsonProperty("schedule") @ExcludeMissing fun _schedule() = schedule + + @JsonProperty("status") @ExcludeMissing fun _status() = status + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = additionalProperties + + fun validate(): List = apply { + if (!validated) { + frequency() + serviceDate() + situationIds() + tripId() + schedule().validate() + status().validate() + validated = true + } + } + + fun toBuilder() = Builder().from(this) + + companion object { + + fun builder() = Builder() + } + + class Builder { + + private var frequency: JsonField = JsonMissing.of() + private var serviceDate: JsonField = JsonMissing.of() + private var situationIds: JsonField> = JsonMissing.of() + private var tripId: JsonField = JsonMissing.of() + private var schedule: JsonField = JsonMissing.of() + private var status: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + internal fun from(list: List) = apply { + this.frequency = list.frequency + this.serviceDate = list.serviceDate + this.situationIds = list.situationIds + this.tripId = list.tripId + this.schedule = list.schedule + this.status = list.status + additionalProperties(list.additionalProperties) + } + + fun frequency(frequency: String) = frequency(JsonField.of(frequency)) + + @JsonProperty("frequency") + @ExcludeMissing + fun frequency(frequency: JsonField) = apply { this.frequency = frequency } + + fun serviceDate(serviceDate: Long) = serviceDate(JsonField.of(serviceDate)) + + @JsonProperty("serviceDate") + @ExcludeMissing + fun serviceDate(serviceDate: JsonField) = apply { + this.serviceDate = serviceDate + } + + fun situationIds(situationIds: List) = + situationIds(JsonField.of(situationIds)) + + @JsonProperty("situationIds") + @ExcludeMissing + fun situationIds(situationIds: JsonField>) = apply { + this.situationIds = situationIds + } + + fun tripId(tripId: String) = tripId(JsonField.of(tripId)) + + @JsonProperty("tripId") + @ExcludeMissing + fun tripId(tripId: JsonField) = apply { this.tripId = tripId } + + fun schedule(schedule: Schedule) = schedule(JsonField.of(schedule)) + + @JsonProperty("schedule") + @ExcludeMissing + fun schedule(schedule: JsonField) = apply { this.schedule = schedule } + + fun status(status: Status) = status(JsonField.of(status)) + + @JsonProperty("status") + @ExcludeMissing + fun status(status: JsonField) = apply { this.status = status } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + this.additionalProperties.putAll(additionalProperties) + } + + @JsonAnySetter + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + this.additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = + apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun build(): List = + List( + frequency, + serviceDate, + situationIds.map { it.toImmutable() }, + tripId, + schedule, + status, + additionalProperties.toImmutable(), + ) + } + + @JsonDeserialize(builder = Schedule.Builder::class) + @NoAutoDetect + class Schedule + private constructor( + private val frequency: JsonField, + private val nextTripId: JsonField, + private val previousTripId: JsonField, + private val stopTimes: JsonField>, + private val timeZone: JsonField, + private val additionalProperties: Map, + ) { + + private var validated: Boolean = false + + fun frequency(): String? = frequency.getNullable("frequency") + + fun nextTripId(): String = nextTripId.getRequired("nextTripId") + + fun previousTripId(): String = previousTripId.getRequired("previousTripId") + + fun stopTimes(): List = stopTimes.getRequired("stopTimes") + + fun timeZone(): String = timeZone.getRequired("timeZone") + + @JsonProperty("frequency") @ExcludeMissing fun _frequency() = frequency + + @JsonProperty("nextTripId") @ExcludeMissing fun _nextTripId() = nextTripId + + @JsonProperty("previousTripId") + @ExcludeMissing + fun _previousTripId() = previousTripId + + @JsonProperty("stopTimes") @ExcludeMissing fun _stopTimes() = stopTimes + + @JsonProperty("timeZone") @ExcludeMissing fun _timeZone() = timeZone + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = additionalProperties + + fun validate(): Schedule = apply { + if (!validated) { + frequency() + nextTripId() + previousTripId() + stopTimes().forEach { it.validate() } + timeZone() + validated = true + } + } + + fun toBuilder() = Builder().from(this) + + companion object { + + fun builder() = Builder() + } + + class Builder { + + private var frequency: JsonField = JsonMissing.of() + private var nextTripId: JsonField = JsonMissing.of() + private var previousTripId: JsonField = JsonMissing.of() + private var stopTimes: JsonField> = JsonMissing.of() + private var timeZone: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + internal fun from(schedule: Schedule) = apply { + this.frequency = schedule.frequency + this.nextTripId = schedule.nextTripId + this.previousTripId = schedule.previousTripId + this.stopTimes = schedule.stopTimes + this.timeZone = schedule.timeZone + additionalProperties(schedule.additionalProperties) + } + + fun frequency(frequency: String) = frequency(JsonField.of(frequency)) + + @JsonProperty("frequency") + @ExcludeMissing + fun frequency(frequency: JsonField) = apply { + this.frequency = frequency + } + + fun nextTripId(nextTripId: String) = nextTripId(JsonField.of(nextTripId)) + + @JsonProperty("nextTripId") + @ExcludeMissing + fun nextTripId(nextTripId: JsonField) = apply { + this.nextTripId = nextTripId + } + + fun previousTripId(previousTripId: String) = + previousTripId(JsonField.of(previousTripId)) + + @JsonProperty("previousTripId") + @ExcludeMissing + fun previousTripId(previousTripId: JsonField) = apply { + this.previousTripId = previousTripId + } + + fun stopTimes(stopTimes: List) = stopTimes(JsonField.of(stopTimes)) + + @JsonProperty("stopTimes") + @ExcludeMissing + fun stopTimes(stopTimes: JsonField>) = apply { + this.stopTimes = stopTimes + } + + fun timeZone(timeZone: String) = timeZone(JsonField.of(timeZone)) + + @JsonProperty("timeZone") + @ExcludeMissing + fun timeZone(timeZone: JsonField) = apply { this.timeZone = timeZone } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + this.additionalProperties.putAll(additionalProperties) + } + + @JsonAnySetter + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + this.additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = + apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun build(): Schedule = + Schedule( + frequency, + nextTripId, + previousTripId, + stopTimes.map { it.toImmutable() }, + timeZone, + additionalProperties.toImmutable(), + ) + } + + @JsonDeserialize(builder = StopTime.Builder::class) + @NoAutoDetect + class StopTime + private constructor( + private val arrivalTime: JsonField, + private val departureTime: JsonField, + private val distanceAlongTrip: JsonField, + private val historicalOccupancy: JsonField, + private val stopHeadsign: JsonField, + private val stopId: JsonField, + private val additionalProperties: Map, + ) { + + private var validated: Boolean = false + + fun arrivalTime(): Long? = arrivalTime.getNullable("arrivalTime") + + fun departureTime(): Long? = departureTime.getNullable("departureTime") + + fun distanceAlongTrip(): Double? = + distanceAlongTrip.getNullable("distanceAlongTrip") + + fun historicalOccupancy(): String? = + historicalOccupancy.getNullable("historicalOccupancy") + + fun stopHeadsign(): String? = stopHeadsign.getNullable("stopHeadsign") + + fun stopId(): String? = stopId.getNullable("stopId") + + @JsonProperty("arrivalTime") @ExcludeMissing fun _arrivalTime() = arrivalTime + + @JsonProperty("departureTime") + @ExcludeMissing + fun _departureTime() = departureTime + + @JsonProperty("distanceAlongTrip") + @ExcludeMissing + fun _distanceAlongTrip() = distanceAlongTrip + + @JsonProperty("historicalOccupancy") + @ExcludeMissing + fun _historicalOccupancy() = historicalOccupancy + + @JsonProperty("stopHeadsign") @ExcludeMissing fun _stopHeadsign() = stopHeadsign + + @JsonProperty("stopId") @ExcludeMissing fun _stopId() = stopId + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = additionalProperties + + fun validate(): StopTime = apply { + if (!validated) { + arrivalTime() + departureTime() + distanceAlongTrip() + historicalOccupancy() + stopHeadsign() + stopId() + validated = true + } + } + + fun toBuilder() = Builder().from(this) + + companion object { + + fun builder() = Builder() + } + + class Builder { + + private var arrivalTime: JsonField = JsonMissing.of() + private var departureTime: JsonField = JsonMissing.of() + private var distanceAlongTrip: JsonField = JsonMissing.of() + private var historicalOccupancy: JsonField = JsonMissing.of() + private var stopHeadsign: JsonField = JsonMissing.of() + private var stopId: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = + mutableMapOf() + + internal fun from(stopTime: StopTime) = apply { + this.arrivalTime = stopTime.arrivalTime + this.departureTime = stopTime.departureTime + this.distanceAlongTrip = stopTime.distanceAlongTrip + this.historicalOccupancy = stopTime.historicalOccupancy + this.stopHeadsign = stopTime.stopHeadsign + this.stopId = stopTime.stopId + additionalProperties(stopTime.additionalProperties) + } + + fun arrivalTime(arrivalTime: Long) = arrivalTime(JsonField.of(arrivalTime)) + + @JsonProperty("arrivalTime") + @ExcludeMissing + fun arrivalTime(arrivalTime: JsonField) = apply { + this.arrivalTime = arrivalTime + } + + fun departureTime(departureTime: Long) = + departureTime(JsonField.of(departureTime)) + + @JsonProperty("departureTime") + @ExcludeMissing + fun departureTime(departureTime: JsonField) = apply { + this.departureTime = departureTime + } + + fun distanceAlongTrip(distanceAlongTrip: Double) = + distanceAlongTrip(JsonField.of(distanceAlongTrip)) + + @JsonProperty("distanceAlongTrip") + @ExcludeMissing + fun distanceAlongTrip(distanceAlongTrip: JsonField) = apply { + this.distanceAlongTrip = distanceAlongTrip + } + + fun historicalOccupancy(historicalOccupancy: String) = + historicalOccupancy(JsonField.of(historicalOccupancy)) + + @JsonProperty("historicalOccupancy") + @ExcludeMissing + fun historicalOccupancy(historicalOccupancy: JsonField) = apply { + this.historicalOccupancy = historicalOccupancy + } + + fun stopHeadsign(stopHeadsign: String) = + stopHeadsign(JsonField.of(stopHeadsign)) + + @JsonProperty("stopHeadsign") + @ExcludeMissing + fun stopHeadsign(stopHeadsign: JsonField) = apply { + this.stopHeadsign = stopHeadsign + } + + fun stopId(stopId: String) = stopId(JsonField.of(stopId)) + + @JsonProperty("stopId") + @ExcludeMissing + fun stopId(stopId: JsonField) = apply { this.stopId = stopId } + + fun additionalProperties(additionalProperties: Map) = + apply { + this.additionalProperties.clear() + this.additionalProperties.putAll(additionalProperties) + } + + @JsonAnySetter + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + this.additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties( + additionalProperties: Map + ) = apply { this.additionalProperties.putAll(additionalProperties) } + + fun build(): StopTime = + StopTime( + arrivalTime, + departureTime, + distanceAlongTrip, + historicalOccupancy, + stopHeadsign, + stopId, + additionalProperties.toImmutable(), + ) + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is StopTime && arrivalTime == other.arrivalTime && departureTime == other.departureTime && distanceAlongTrip == other.distanceAlongTrip && historicalOccupancy == other.historicalOccupancy && stopHeadsign == other.stopHeadsign && stopId == other.stopId && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(arrivalTime, departureTime, distanceAlongTrip, historicalOccupancy, stopHeadsign, stopId, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "StopTime{arrivalTime=$arrivalTime, departureTime=$departureTime, distanceAlongTrip=$distanceAlongTrip, historicalOccupancy=$historicalOccupancy, stopHeadsign=$stopHeadsign, stopId=$stopId, additionalProperties=$additionalProperties}" + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Schedule && frequency == other.frequency && nextTripId == other.nextTripId && previousTripId == other.previousTripId && stopTimes == other.stopTimes && timeZone == other.timeZone && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(frequency, nextTripId, previousTripId, stopTimes, timeZone, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Schedule{frequency=$frequency, nextTripId=$nextTripId, previousTripId=$previousTripId, stopTimes=$stopTimes, timeZone=$timeZone, additionalProperties=$additionalProperties}" + } + + @JsonDeserialize(builder = Status.Builder::class) + @NoAutoDetect + class Status + private constructor( + private val activeTripId: JsonField, + private val blockTripSequence: JsonField, + private val closestStop: JsonField, + private val closestStopTimeOffset: JsonField, + private val distanceAlongTrip: JsonField, + private val frequency: JsonField, + private val lastKnownDistanceAlongTrip: JsonField, + private val lastKnownLocation: JsonField, + private val lastKnownOrientation: JsonField, + private val lastLocationUpdateTime: JsonField, + private val lastUpdateTime: JsonField, + private val nextStop: JsonField, + private val nextStopTimeOffset: JsonField, + private val occupancyCapacity: JsonField, + private val occupancyCount: JsonField, + private val occupancyStatus: JsonField, + private val orientation: JsonField, + private val phase: JsonField, + private val position: JsonField, + private val predicted: JsonField, + private val scheduleDeviation: JsonField, + private val scheduledDistanceAlongTrip: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val status: JsonField, + private val totalDistanceAlongTrip: JsonField, + private val vehicleId: JsonField, + private val additionalProperties: Map, + ) { + + private var validated: Boolean = false + + /** Trip ID of the trip the vehicle is actively serving. */ + fun activeTripId(): String = activeTripId.getRequired("activeTripId") + + /** Index of the active trip into the sequence of trips for the active block. */ + fun blockTripSequence(): Long = blockTripSequence.getRequired("blockTripSequence") + + /** ID of the closest stop to the current location of the transit vehicle. */ + fun closestStop(): String = closestStop.getRequired("closestStop") + + /** + * Time offset from the closest stop to the current position of the transit vehicle + * (in seconds). + */ + fun closestStopTimeOffset(): Long? = + closestStopTimeOffset.getNullable("closestStopTimeOffset") + + /** + * Distance, in meters, the transit vehicle has progressed along the active trip. + */ + fun distanceAlongTrip(): Double = distanceAlongTrip.getRequired("distanceAlongTrip") + + /** Information about frequency-based scheduling, if applicable to the trip. */ + fun frequency(): String? = frequency.getNullable("frequency") + + /** + * Last known distance along the trip received in real-time from the transit + * vehicle. + */ + fun lastKnownDistanceAlongTrip(): Double = + lastKnownDistanceAlongTrip.getRequired("lastKnownDistanceAlongTrip") + + /** Last known location of the transit vehicle. */ + fun lastKnownLocation(): LastKnownLocation? = + lastKnownLocation.getNullable("lastKnownLocation") + + /** Last known orientation value received in real-time from the transit vehicle. */ + fun lastKnownOrientation(): Double? = + lastKnownOrientation.getNullable("lastKnownOrientation") + + /** + * Timestamp of the last known real-time location update from the transit vehicle. + */ + fun lastLocationUpdateTime(): Long = + lastLocationUpdateTime.getRequired("lastLocationUpdateTime") + + /** Timestamp of the last known real-time update from the transit vehicle. */ + fun lastUpdateTime(): Long = lastUpdateTime.getRequired("lastUpdateTime") + + /** ID of the next stop the transit vehicle is scheduled to arrive at. */ + fun nextStop(): String? = nextStop.getNullable("nextStop") + + /** + * Time offset from the next stop to the current position of the transit vehicle (in + * seconds). + */ + fun nextStopTimeOffset(): Long? = + nextStopTimeOffset.getNullable("nextStopTimeOffset") + + /** Capacity of the transit vehicle in terms of occupancy. */ + fun occupancyCapacity(): Long = occupancyCapacity.getRequired("occupancyCapacity") + + /** Current count of occupants in the transit vehicle. */ + fun occupancyCount(): Long = occupancyCount.getRequired("occupancyCount") + + /** Current occupancy status of the transit vehicle. */ + fun occupancyStatus(): String = occupancyStatus.getRequired("occupancyStatus") + + /** Orientation of the transit vehicle, represented as an angle in degrees. */ + fun orientation(): Double? = orientation.getNullable("orientation") + + /** Current journey phase of the trip. */ + fun phase(): String = phase.getRequired("phase") + + /** Current position of the transit vehicle. */ + fun position(): Position? = position.getNullable("position") + + /** Indicates if real-time arrival info is available for this trip. */ + fun predicted(): Boolean = predicted.getRequired("predicted") + + /** + * Deviation from the schedule in seconds (positive for late, negative for early). + */ + fun scheduleDeviation(): Long = scheduleDeviation.getRequired("scheduleDeviation") + + /** + * Distance, in meters, the transit vehicle is scheduled to have progressed along + * the active trip. + */ + fun scheduledDistanceAlongTrip(): Double? = + scheduledDistanceAlongTrip.getNullable("scheduledDistanceAlongTrip") + + /** + * Time, in milliseconds since the Unix epoch, of midnight for the start of the + * service date for the trip. + */ + fun serviceDate(): Long = serviceDate.getRequired("serviceDate") + + /** References to situation elements (if any) applicable to this trip. */ + fun situationIds(): List? = situationIds.getNullable("situationIds") + + /** Current status modifiers for the trip. */ + fun status(): String = status.getRequired("status") + + /** Total length of the trip, in meters. */ + fun totalDistanceAlongTrip(): Double = + totalDistanceAlongTrip.getRequired("totalDistanceAlongTrip") + + /** ID of the transit vehicle currently serving the trip. */ + fun vehicleId(): String? = vehicleId.getNullable("vehicleId") + + /** Trip ID of the trip the vehicle is actively serving. */ + @JsonProperty("activeTripId") @ExcludeMissing fun _activeTripId() = activeTripId + + /** Index of the active trip into the sequence of trips for the active block. */ + @JsonProperty("blockTripSequence") + @ExcludeMissing + fun _blockTripSequence() = blockTripSequence + + /** ID of the closest stop to the current location of the transit vehicle. */ + @JsonProperty("closestStop") @ExcludeMissing fun _closestStop() = closestStop + + /** + * Time offset from the closest stop to the current position of the transit vehicle + * (in seconds). + */ + @JsonProperty("closestStopTimeOffset") + @ExcludeMissing + fun _closestStopTimeOffset() = closestStopTimeOffset + + /** + * Distance, in meters, the transit vehicle has progressed along the active trip. + */ + @JsonProperty("distanceAlongTrip") + @ExcludeMissing + fun _distanceAlongTrip() = distanceAlongTrip + + /** Information about frequency-based scheduling, if applicable to the trip. */ + @JsonProperty("frequency") @ExcludeMissing fun _frequency() = frequency + + /** + * Last known distance along the trip received in real-time from the transit + * vehicle. + */ + @JsonProperty("lastKnownDistanceAlongTrip") + @ExcludeMissing + fun _lastKnownDistanceAlongTrip() = lastKnownDistanceAlongTrip + + /** Last known location of the transit vehicle. */ + @JsonProperty("lastKnownLocation") + @ExcludeMissing + fun _lastKnownLocation() = lastKnownLocation + + /** Last known orientation value received in real-time from the transit vehicle. */ + @JsonProperty("lastKnownOrientation") + @ExcludeMissing + fun _lastKnownOrientation() = lastKnownOrientation + + /** + * Timestamp of the last known real-time location update from the transit vehicle. + */ + @JsonProperty("lastLocationUpdateTime") + @ExcludeMissing + fun _lastLocationUpdateTime() = lastLocationUpdateTime + + /** Timestamp of the last known real-time update from the transit vehicle. */ + @JsonProperty("lastUpdateTime") + @ExcludeMissing + fun _lastUpdateTime() = lastUpdateTime + + /** ID of the next stop the transit vehicle is scheduled to arrive at. */ + @JsonProperty("nextStop") @ExcludeMissing fun _nextStop() = nextStop + + /** + * Time offset from the next stop to the current position of the transit vehicle (in + * seconds). + */ + @JsonProperty("nextStopTimeOffset") + @ExcludeMissing + fun _nextStopTimeOffset() = nextStopTimeOffset + + /** Capacity of the transit vehicle in terms of occupancy. */ + @JsonProperty("occupancyCapacity") + @ExcludeMissing + fun _occupancyCapacity() = occupancyCapacity + + /** Current count of occupants in the transit vehicle. */ + @JsonProperty("occupancyCount") + @ExcludeMissing + fun _occupancyCount() = occupancyCount + + /** Current occupancy status of the transit vehicle. */ + @JsonProperty("occupancyStatus") + @ExcludeMissing + fun _occupancyStatus() = occupancyStatus + + /** Orientation of the transit vehicle, represented as an angle in degrees. */ + @JsonProperty("orientation") @ExcludeMissing fun _orientation() = orientation + + /** Current journey phase of the trip. */ + @JsonProperty("phase") @ExcludeMissing fun _phase() = phase + + /** Current position of the transit vehicle. */ + @JsonProperty("position") @ExcludeMissing fun _position() = position + + /** Indicates if real-time arrival info is available for this trip. */ + @JsonProperty("predicted") @ExcludeMissing fun _predicted() = predicted + + /** + * Deviation from the schedule in seconds (positive for late, negative for early). + */ + @JsonProperty("scheduleDeviation") + @ExcludeMissing + fun _scheduleDeviation() = scheduleDeviation + + /** + * Distance, in meters, the transit vehicle is scheduled to have progressed along + * the active trip. + */ + @JsonProperty("scheduledDistanceAlongTrip") + @ExcludeMissing + fun _scheduledDistanceAlongTrip() = scheduledDistanceAlongTrip + + /** + * Time, in milliseconds since the Unix epoch, of midnight for the start of the + * service date for the trip. + */ + @JsonProperty("serviceDate") @ExcludeMissing fun _serviceDate() = serviceDate + + /** References to situation elements (if any) applicable to this trip. */ + @JsonProperty("situationIds") @ExcludeMissing fun _situationIds() = situationIds + + /** Current status modifiers for the trip. */ + @JsonProperty("status") @ExcludeMissing fun _status() = status + + /** Total length of the trip, in meters. */ + @JsonProperty("totalDistanceAlongTrip") + @ExcludeMissing + fun _totalDistanceAlongTrip() = totalDistanceAlongTrip + + /** ID of the transit vehicle currently serving the trip. */ + @JsonProperty("vehicleId") @ExcludeMissing fun _vehicleId() = vehicleId + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = additionalProperties + + fun validate(): Status = apply { + if (!validated) { + activeTripId() + blockTripSequence() + closestStop() + closestStopTimeOffset() + distanceAlongTrip() + frequency() + lastKnownDistanceAlongTrip() + lastKnownLocation()?.validate() + lastKnownOrientation() + lastLocationUpdateTime() + lastUpdateTime() + nextStop() + nextStopTimeOffset() + occupancyCapacity() + occupancyCount() + occupancyStatus() + orientation() + phase() + position()?.validate() + predicted() + scheduleDeviation() + scheduledDistanceAlongTrip() + serviceDate() + situationIds() + status() + totalDistanceAlongTrip() + vehicleId() + validated = true + } + } + + fun toBuilder() = Builder().from(this) + + companion object { + + fun builder() = Builder() + } + + class Builder { + + private var activeTripId: JsonField = JsonMissing.of() + private var blockTripSequence: JsonField = JsonMissing.of() + private var closestStop: JsonField = JsonMissing.of() + private var closestStopTimeOffset: JsonField = JsonMissing.of() + private var distanceAlongTrip: JsonField = JsonMissing.of() + private var frequency: JsonField = JsonMissing.of() + private var lastKnownDistanceAlongTrip: JsonField = JsonMissing.of() + private var lastKnownLocation: JsonField = JsonMissing.of() + private var lastKnownOrientation: JsonField = JsonMissing.of() + private var lastLocationUpdateTime: JsonField = JsonMissing.of() + private var lastUpdateTime: JsonField = JsonMissing.of() + private var nextStop: JsonField = JsonMissing.of() + private var nextStopTimeOffset: JsonField = JsonMissing.of() + private var occupancyCapacity: JsonField = JsonMissing.of() + private var occupancyCount: JsonField = JsonMissing.of() + private var occupancyStatus: JsonField = JsonMissing.of() + private var orientation: JsonField = JsonMissing.of() + private var phase: JsonField = JsonMissing.of() + private var position: JsonField = JsonMissing.of() + private var predicted: JsonField = JsonMissing.of() + private var scheduleDeviation: JsonField = JsonMissing.of() + private var scheduledDistanceAlongTrip: JsonField = JsonMissing.of() + private var serviceDate: JsonField = JsonMissing.of() + private var situationIds: JsonField> = JsonMissing.of() + private var status: JsonField = JsonMissing.of() + private var totalDistanceAlongTrip: JsonField = JsonMissing.of() + private var vehicleId: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + internal fun from(status: Status) = apply { + this.activeTripId = status.activeTripId + this.blockTripSequence = status.blockTripSequence + this.closestStop = status.closestStop + this.closestStopTimeOffset = status.closestStopTimeOffset + this.distanceAlongTrip = status.distanceAlongTrip + this.frequency = status.frequency + this.lastKnownDistanceAlongTrip = status.lastKnownDistanceAlongTrip + this.lastKnownLocation = status.lastKnownLocation + this.lastKnownOrientation = status.lastKnownOrientation + this.lastLocationUpdateTime = status.lastLocationUpdateTime + this.lastUpdateTime = status.lastUpdateTime + this.nextStop = status.nextStop + this.nextStopTimeOffset = status.nextStopTimeOffset + this.occupancyCapacity = status.occupancyCapacity + this.occupancyCount = status.occupancyCount + this.occupancyStatus = status.occupancyStatus + this.orientation = status.orientation + this.phase = status.phase + this.position = status.position + this.predicted = status.predicted + this.scheduleDeviation = status.scheduleDeviation + this.scheduledDistanceAlongTrip = status.scheduledDistanceAlongTrip + this.serviceDate = status.serviceDate + this.situationIds = status.situationIds + this.status = status.status + this.totalDistanceAlongTrip = status.totalDistanceAlongTrip + this.vehicleId = status.vehicleId + additionalProperties(status.additionalProperties) + } + + /** Trip ID of the trip the vehicle is actively serving. */ + fun activeTripId(activeTripId: String) = + activeTripId(JsonField.of(activeTripId)) + + /** Trip ID of the trip the vehicle is actively serving. */ + @JsonProperty("activeTripId") + @ExcludeMissing + fun activeTripId(activeTripId: JsonField) = apply { + this.activeTripId = activeTripId + } + + /** Index of the active trip into the sequence of trips for the active block. */ + fun blockTripSequence(blockTripSequence: Long) = + blockTripSequence(JsonField.of(blockTripSequence)) + + /** Index of the active trip into the sequence of trips for the active block. */ + @JsonProperty("blockTripSequence") + @ExcludeMissing + fun blockTripSequence(blockTripSequence: JsonField) = apply { + this.blockTripSequence = blockTripSequence + } + + /** ID of the closest stop to the current location of the transit vehicle. */ + fun closestStop(closestStop: String) = closestStop(JsonField.of(closestStop)) + + /** ID of the closest stop to the current location of the transit vehicle. */ + @JsonProperty("closestStop") + @ExcludeMissing + fun closestStop(closestStop: JsonField) = apply { + this.closestStop = closestStop + } + + /** + * Time offset from the closest stop to the current position of the transit + * vehicle (in seconds). + */ + fun closestStopTimeOffset(closestStopTimeOffset: Long) = + closestStopTimeOffset(JsonField.of(closestStopTimeOffset)) + + /** + * Time offset from the closest stop to the current position of the transit + * vehicle (in seconds). + */ + @JsonProperty("closestStopTimeOffset") + @ExcludeMissing + fun closestStopTimeOffset(closestStopTimeOffset: JsonField) = apply { + this.closestStopTimeOffset = closestStopTimeOffset + } + + /** + * Distance, in meters, the transit vehicle has progressed along the active + * trip. + */ + fun distanceAlongTrip(distanceAlongTrip: Double) = + distanceAlongTrip(JsonField.of(distanceAlongTrip)) + + /** + * Distance, in meters, the transit vehicle has progressed along the active + * trip. + */ + @JsonProperty("distanceAlongTrip") + @ExcludeMissing + fun distanceAlongTrip(distanceAlongTrip: JsonField) = apply { + this.distanceAlongTrip = distanceAlongTrip + } + + /** Information about frequency-based scheduling, if applicable to the trip. */ + fun frequency(frequency: String) = frequency(JsonField.of(frequency)) + + /** Information about frequency-based scheduling, if applicable to the trip. */ + @JsonProperty("frequency") + @ExcludeMissing + fun frequency(frequency: JsonField) = apply { + this.frequency = frequency + } + + /** + * Last known distance along the trip received in real-time from the transit + * vehicle. + */ + fun lastKnownDistanceAlongTrip(lastKnownDistanceAlongTrip: Double) = + lastKnownDistanceAlongTrip(JsonField.of(lastKnownDistanceAlongTrip)) + + /** + * Last known distance along the trip received in real-time from the transit + * vehicle. + */ + @JsonProperty("lastKnownDistanceAlongTrip") + @ExcludeMissing + fun lastKnownDistanceAlongTrip(lastKnownDistanceAlongTrip: JsonField) = + apply { + this.lastKnownDistanceAlongTrip = lastKnownDistanceAlongTrip + } + + /** Last known location of the transit vehicle. */ + fun lastKnownLocation(lastKnownLocation: LastKnownLocation) = + lastKnownLocation(JsonField.of(lastKnownLocation)) + + /** Last known location of the transit vehicle. */ + @JsonProperty("lastKnownLocation") + @ExcludeMissing + fun lastKnownLocation(lastKnownLocation: JsonField) = apply { + this.lastKnownLocation = lastKnownLocation + } + + /** + * Last known orientation value received in real-time from the transit vehicle. + */ + fun lastKnownOrientation(lastKnownOrientation: Double) = + lastKnownOrientation(JsonField.of(lastKnownOrientation)) + + /** + * Last known orientation value received in real-time from the transit vehicle. + */ + @JsonProperty("lastKnownOrientation") + @ExcludeMissing + fun lastKnownOrientation(lastKnownOrientation: JsonField) = apply { + this.lastKnownOrientation = lastKnownOrientation + } + + /** + * Timestamp of the last known real-time location update from the transit + * vehicle. + */ + fun lastLocationUpdateTime(lastLocationUpdateTime: Long) = + lastLocationUpdateTime(JsonField.of(lastLocationUpdateTime)) + + /** + * Timestamp of the last known real-time location update from the transit + * vehicle. + */ + @JsonProperty("lastLocationUpdateTime") + @ExcludeMissing + fun lastLocationUpdateTime(lastLocationUpdateTime: JsonField) = apply { + this.lastLocationUpdateTime = lastLocationUpdateTime + } + + /** Timestamp of the last known real-time update from the transit vehicle. */ + fun lastUpdateTime(lastUpdateTime: Long) = + lastUpdateTime(JsonField.of(lastUpdateTime)) + + /** Timestamp of the last known real-time update from the transit vehicle. */ + @JsonProperty("lastUpdateTime") + @ExcludeMissing + fun lastUpdateTime(lastUpdateTime: JsonField) = apply { + this.lastUpdateTime = lastUpdateTime + } + + /** ID of the next stop the transit vehicle is scheduled to arrive at. */ + fun nextStop(nextStop: String) = nextStop(JsonField.of(nextStop)) + + /** ID of the next stop the transit vehicle is scheduled to arrive at. */ + @JsonProperty("nextStop") + @ExcludeMissing + fun nextStop(nextStop: JsonField) = apply { this.nextStop = nextStop } + + /** + * Time offset from the next stop to the current position of the transit vehicle + * (in seconds). + */ + fun nextStopTimeOffset(nextStopTimeOffset: Long) = + nextStopTimeOffset(JsonField.of(nextStopTimeOffset)) + + /** + * Time offset from the next stop to the current position of the transit vehicle + * (in seconds). + */ + @JsonProperty("nextStopTimeOffset") + @ExcludeMissing + fun nextStopTimeOffset(nextStopTimeOffset: JsonField) = apply { + this.nextStopTimeOffset = nextStopTimeOffset + } + + /** Capacity of the transit vehicle in terms of occupancy. */ + fun occupancyCapacity(occupancyCapacity: Long) = + occupancyCapacity(JsonField.of(occupancyCapacity)) + + /** Capacity of the transit vehicle in terms of occupancy. */ + @JsonProperty("occupancyCapacity") + @ExcludeMissing + fun occupancyCapacity(occupancyCapacity: JsonField) = apply { + this.occupancyCapacity = occupancyCapacity + } + + /** Current count of occupants in the transit vehicle. */ + fun occupancyCount(occupancyCount: Long) = + occupancyCount(JsonField.of(occupancyCount)) + + /** Current count of occupants in the transit vehicle. */ + @JsonProperty("occupancyCount") + @ExcludeMissing + fun occupancyCount(occupancyCount: JsonField) = apply { + this.occupancyCount = occupancyCount + } + + /** Current occupancy status of the transit vehicle. */ + fun occupancyStatus(occupancyStatus: String) = + occupancyStatus(JsonField.of(occupancyStatus)) + + /** Current occupancy status of the transit vehicle. */ + @JsonProperty("occupancyStatus") + @ExcludeMissing + fun occupancyStatus(occupancyStatus: JsonField) = apply { + this.occupancyStatus = occupancyStatus + } + + /** Orientation of the transit vehicle, represented as an angle in degrees. */ + fun orientation(orientation: Double) = orientation(JsonField.of(orientation)) + + /** Orientation of the transit vehicle, represented as an angle in degrees. */ + @JsonProperty("orientation") + @ExcludeMissing + fun orientation(orientation: JsonField) = apply { + this.orientation = orientation + } + + /** Current journey phase of the trip. */ + fun phase(phase: String) = phase(JsonField.of(phase)) + + /** Current journey phase of the trip. */ + @JsonProperty("phase") + @ExcludeMissing + fun phase(phase: JsonField) = apply { this.phase = phase } + + /** Current position of the transit vehicle. */ + fun position(position: Position) = position(JsonField.of(position)) + + /** Current position of the transit vehicle. */ + @JsonProperty("position") + @ExcludeMissing + fun position(position: JsonField) = apply { this.position = position } + + /** Indicates if real-time arrival info is available for this trip. */ + fun predicted(predicted: Boolean) = predicted(JsonField.of(predicted)) + + /** Indicates if real-time arrival info is available for this trip. */ + @JsonProperty("predicted") + @ExcludeMissing + fun predicted(predicted: JsonField) = apply { + this.predicted = predicted + } + + /** + * Deviation from the schedule in seconds (positive for late, negative for + * early). + */ + fun scheduleDeviation(scheduleDeviation: Long) = + scheduleDeviation(JsonField.of(scheduleDeviation)) + + /** + * Deviation from the schedule in seconds (positive for late, negative for + * early). + */ + @JsonProperty("scheduleDeviation") + @ExcludeMissing + fun scheduleDeviation(scheduleDeviation: JsonField) = apply { + this.scheduleDeviation = scheduleDeviation + } + + /** + * Distance, in meters, the transit vehicle is scheduled to have progressed + * along the active trip. + */ + fun scheduledDistanceAlongTrip(scheduledDistanceAlongTrip: Double) = + scheduledDistanceAlongTrip(JsonField.of(scheduledDistanceAlongTrip)) + + /** + * Distance, in meters, the transit vehicle is scheduled to have progressed + * along the active trip. + */ + @JsonProperty("scheduledDistanceAlongTrip") + @ExcludeMissing + fun scheduledDistanceAlongTrip(scheduledDistanceAlongTrip: JsonField) = + apply { + this.scheduledDistanceAlongTrip = scheduledDistanceAlongTrip + } + + /** + * Time, in milliseconds since the Unix epoch, of midnight for the start of the + * service date for the trip. + */ + fun serviceDate(serviceDate: Long) = serviceDate(JsonField.of(serviceDate)) + + /** + * Time, in milliseconds since the Unix epoch, of midnight for the start of the + * service date for the trip. + */ + @JsonProperty("serviceDate") + @ExcludeMissing + fun serviceDate(serviceDate: JsonField) = apply { + this.serviceDate = serviceDate + } + + /** References to situation elements (if any) applicable to this trip. */ + fun situationIds(situationIds: List) = + situationIds(JsonField.of(situationIds)) + + /** References to situation elements (if any) applicable to this trip. */ + @JsonProperty("situationIds") + @ExcludeMissing + fun situationIds(situationIds: JsonField>) = apply { + this.situationIds = situationIds + } + + /** Current status modifiers for the trip. */ + fun status(status: String) = status(JsonField.of(status)) + + /** Current status modifiers for the trip. */ + @JsonProperty("status") + @ExcludeMissing + fun status(status: JsonField) = apply { this.status = status } + + /** Total length of the trip, in meters. */ + fun totalDistanceAlongTrip(totalDistanceAlongTrip: Double) = + totalDistanceAlongTrip(JsonField.of(totalDistanceAlongTrip)) + + /** Total length of the trip, in meters. */ + @JsonProperty("totalDistanceAlongTrip") + @ExcludeMissing + fun totalDistanceAlongTrip(totalDistanceAlongTrip: JsonField) = apply { + this.totalDistanceAlongTrip = totalDistanceAlongTrip + } + + /** ID of the transit vehicle currently serving the trip. */ + fun vehicleId(vehicleId: String) = vehicleId(JsonField.of(vehicleId)) + + /** ID of the transit vehicle currently serving the trip. */ + @JsonProperty("vehicleId") + @ExcludeMissing + fun vehicleId(vehicleId: JsonField) = apply { + this.vehicleId = vehicleId + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + this.additionalProperties.putAll(additionalProperties) + } + + @JsonAnySetter + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + this.additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = + apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun build(): Status = + Status( + activeTripId, + blockTripSequence, + closestStop, + closestStopTimeOffset, + distanceAlongTrip, + frequency, + lastKnownDistanceAlongTrip, + lastKnownLocation, + lastKnownOrientation, + lastLocationUpdateTime, + lastUpdateTime, + nextStop, + nextStopTimeOffset, + occupancyCapacity, + occupancyCount, + occupancyStatus, + orientation, + phase, + position, + predicted, + scheduleDeviation, + scheduledDistanceAlongTrip, + serviceDate, + situationIds.map { it.toImmutable() }, + status, + totalDistanceAlongTrip, + vehicleId, + additionalProperties.toImmutable(), + ) + } + + /** Last known location of the transit vehicle. */ + @JsonDeserialize(builder = LastKnownLocation.Builder::class) + @NoAutoDetect + class LastKnownLocation + private constructor( + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, + ) { + + private var validated: Boolean = false + + /** Latitude of the last known location of the transit vehicle. */ + fun lat(): Double? = lat.getNullable("lat") + + /** Longitude of the last known location of the transit vehicle. */ + fun lon(): Double? = lon.getNullable("lon") + + /** Latitude of the last known location of the transit vehicle. */ + @JsonProperty("lat") @ExcludeMissing fun _lat() = lat + + /** Longitude of the last known location of the transit vehicle. */ + @JsonProperty("lon") @ExcludeMissing fun _lon() = lon + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = additionalProperties + + fun validate(): LastKnownLocation = apply { + if (!validated) { + lat() + lon() + validated = true + } + } + + fun toBuilder() = Builder().from(this) + + companion object { + + fun builder() = Builder() + } + + class Builder { + + private var lat: JsonField = JsonMissing.of() + private var lon: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = + mutableMapOf() + + internal fun from(lastKnownLocation: LastKnownLocation) = apply { + this.lat = lastKnownLocation.lat + this.lon = lastKnownLocation.lon + additionalProperties(lastKnownLocation.additionalProperties) + } + + /** Latitude of the last known location of the transit vehicle. */ + fun lat(lat: Double) = lat(JsonField.of(lat)) + + /** Latitude of the last known location of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing + fun lat(lat: JsonField) = apply { this.lat = lat } + + /** Longitude of the last known location of the transit vehicle. */ + fun lon(lon: Double) = lon(JsonField.of(lon)) + + /** Longitude of the last known location of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing + fun lon(lon: JsonField) = apply { this.lon = lon } + + fun additionalProperties(additionalProperties: Map) = + apply { + this.additionalProperties.clear() + this.additionalProperties.putAll(additionalProperties) + } + + @JsonAnySetter + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + this.additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties( + additionalProperties: Map + ) = apply { this.additionalProperties.putAll(additionalProperties) } + + fun build(): LastKnownLocation = + LastKnownLocation( + lat, + lon, + additionalProperties.toImmutable(), + ) + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is LastKnownLocation && lat == other.lat && lon == other.lon && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(lat, lon, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "LastKnownLocation{lat=$lat, lon=$lon, additionalProperties=$additionalProperties}" + } + + /** Current position of the transit vehicle. */ + @JsonDeserialize(builder = Position.Builder::class) + @NoAutoDetect + class Position + private constructor( + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, + ) { + + private var validated: Boolean = false + + /** Latitude of the current position of the transit vehicle. */ + fun lat(): Double? = lat.getNullable("lat") + + /** Longitude of the current position of the transit vehicle. */ + fun lon(): Double? = lon.getNullable("lon") + + /** Latitude of the current position of the transit vehicle. */ + @JsonProperty("lat") @ExcludeMissing fun _lat() = lat + + /** Longitude of the current position of the transit vehicle. */ + @JsonProperty("lon") @ExcludeMissing fun _lon() = lon + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = additionalProperties + + fun validate(): Position = apply { + if (!validated) { + lat() + lon() + validated = true + } + } + + fun toBuilder() = Builder().from(this) + + companion object { + + fun builder() = Builder() + } + + class Builder { + + private var lat: JsonField = JsonMissing.of() + private var lon: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = + mutableMapOf() + + internal fun from(position: Position) = apply { + this.lat = position.lat + this.lon = position.lon + additionalProperties(position.additionalProperties) + } + + /** Latitude of the current position of the transit vehicle. */ + fun lat(lat: Double) = lat(JsonField.of(lat)) + + /** Latitude of the current position of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing + fun lat(lat: JsonField) = apply { this.lat = lat } + + /** Longitude of the current position of the transit vehicle. */ + fun lon(lon: Double) = lon(JsonField.of(lon)) + + /** Longitude of the current position of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing + fun lon(lon: JsonField) = apply { this.lon = lon } + + fun additionalProperties(additionalProperties: Map) = + apply { + this.additionalProperties.clear() + this.additionalProperties.putAll(additionalProperties) + } + + @JsonAnySetter + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + this.additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties( + additionalProperties: Map + ) = apply { this.additionalProperties.putAll(additionalProperties) } + + fun build(): Position = + Position( + lat, + lon, + additionalProperties.toImmutable(), + ) + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Position && lat == other.lat && lon == other.lon && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(lat, lon, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Position{lat=$lat, lon=$lon, additionalProperties=$additionalProperties}" + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Status && activeTripId == other.activeTripId && blockTripSequence == other.blockTripSequence && closestStop == other.closestStop && closestStopTimeOffset == other.closestStopTimeOffset && distanceAlongTrip == other.distanceAlongTrip && frequency == other.frequency && lastKnownDistanceAlongTrip == other.lastKnownDistanceAlongTrip && lastKnownLocation == other.lastKnownLocation && lastKnownOrientation == other.lastKnownOrientation && lastLocationUpdateTime == other.lastLocationUpdateTime && lastUpdateTime == other.lastUpdateTime && nextStop == other.nextStop && nextStopTimeOffset == other.nextStopTimeOffset && occupancyCapacity == other.occupancyCapacity && occupancyCount == other.occupancyCount && occupancyStatus == other.occupancyStatus && orientation == other.orientation && phase == other.phase && position == other.position && predicted == other.predicted && scheduleDeviation == other.scheduleDeviation && scheduledDistanceAlongTrip == other.scheduledDistanceAlongTrip && serviceDate == other.serviceDate && situationIds == other.situationIds && status == other.status && totalDistanceAlongTrip == other.totalDistanceAlongTrip && vehicleId == other.vehicleId && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(activeTripId, blockTripSequence, closestStop, closestStopTimeOffset, distanceAlongTrip, frequency, lastKnownDistanceAlongTrip, lastKnownLocation, lastKnownOrientation, lastLocationUpdateTime, lastUpdateTime, nextStop, nextStopTimeOffset, occupancyCapacity, occupancyCount, occupancyStatus, orientation, phase, position, predicted, scheduleDeviation, scheduledDistanceAlongTrip, serviceDate, situationIds, status, totalDistanceAlongTrip, vehicleId, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Status{activeTripId=$activeTripId, blockTripSequence=$blockTripSequence, closestStop=$closestStop, closestStopTimeOffset=$closestStopTimeOffset, distanceAlongTrip=$distanceAlongTrip, frequency=$frequency, lastKnownDistanceAlongTrip=$lastKnownDistanceAlongTrip, lastKnownLocation=$lastKnownLocation, lastKnownOrientation=$lastKnownOrientation, lastLocationUpdateTime=$lastLocationUpdateTime, lastUpdateTime=$lastUpdateTime, nextStop=$nextStop, nextStopTimeOffset=$nextStopTimeOffset, occupancyCapacity=$occupancyCapacity, occupancyCount=$occupancyCount, occupancyStatus=$occupancyStatus, orientation=$orientation, phase=$phase, position=$position, predicted=$predicted, scheduleDeviation=$scheduleDeviation, scheduledDistanceAlongTrip=$scheduledDistanceAlongTrip, serviceDate=$serviceDate, situationIds=$situationIds, status=$status, totalDistanceAlongTrip=$totalDistanceAlongTrip, vehicleId=$vehicleId, additionalProperties=$additionalProperties}" + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is List && frequency == other.frequency && serviceDate == other.serviceDate && situationIds == other.situationIds && tripId == other.tripId && schedule == other.schedule && status == other.status && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(frequency, serviceDate, situationIds, tripId, schedule, status, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "List{frequency=$frequency, serviceDate=$serviceDate, situationIds=$situationIds, tripId=$tripId, schedule=$schedule, status=$status, additionalProperties=$additionalProperties}" + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Data && limitExceeded == other.limitExceeded && list == other.list && outOfRange == other.outOfRange && references == other.references && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(limitExceeded, list, outOfRange, references, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Data{limitExceeded=$limitExceeded, list=$list, outOfRange=$outOfRange, references=$references, additionalProperties=$additionalProperties}" + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is TripsForLocationListResponse && code == other.code && currentTime == other.currentTime && text == other.text && version == other.version && data == other.data && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(code, currentTime, text, version, data, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "TripsForLocationListResponse{code=$code, currentTime=$currentTime, text=$text, version=$version, data=$data, additionalProperties=$additionalProperties}" +} +// File generated from our OpenAPI spec by Stainless. + +package org.onebusaway.models + import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripsForRouteListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripsForRouteListResponse.kt index 3b47495..6f4c1c8 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripsForRouteListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/TripsForRouteListResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = TripsForRouteListResponse.Builder::class) @NoAutoDetect class TripsForRouteListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): TripsForRouteListResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(tripsForRouteListResponse: TripsForRouteListResponse) = apply { - code = tripsForRouteListResponse.code - currentTime = tripsForRouteListResponse.currentTime - text = tripsForRouteListResponse.text - version = tripsForRouteListResponse.version - data = tripsForRouteListResponse.data - additionalProperties = tripsForRouteListResponse.additionalProperties.toMutableMap() + this.code = tripsForRouteListResponse.code + this.currentTime = tripsForRouteListResponse.currentTime + this.text = tripsForRouteListResponse.text + this.version = tripsForRouteListResponse.version + this.data = tripsForRouteListResponse.data + additionalProperties(tripsForRouteListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): TripsForRouteListResponse = TripsForRouteListResponse( code, @@ -151,23 +151,18 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("limitExceeded") - @ExcludeMissing - private val limitExceeded: JsonField = JsonMissing.of(), - @JsonProperty("list") - @ExcludeMissing - private val list: JsonField> = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val limitExceeded: JsonField, + private val list: JsonField>, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun limitExceeded(): Boolean = limitExceeded.getRequired("limitExceeded") fun list(): kotlin.collections.List = list.getRequired("list") @@ -184,8 +179,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { limitExceeded() @@ -210,47 +203,48 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - limitExceeded = data.limitExceeded - list = data.list - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.limitExceeded = data.limitExceeded + this.list = data.list + this.references = data.references + additionalProperties(data.additionalProperties) } fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + @JsonProperty("limitExceeded") + @ExcludeMissing fun limitExceeded(limitExceeded: JsonField) = apply { this.limitExceeded = limitExceeded } fun list(list: kotlin.collections.List) = list(JsonField.of(list)) + @JsonProperty("list") + @ExcludeMissing fun list(list: JsonField>) = apply { this.list = list } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( limitExceeded, @@ -260,32 +254,21 @@ private constructor( ) } + @JsonDeserialize(builder = List.Builder::class) @NoAutoDetect class List - @JsonCreator private constructor( - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("serviceDate") - @ExcludeMissing - private val serviceDate: JsonField = JsonMissing.of(), - @JsonProperty("situationIds") - @ExcludeMissing - private val situationIds: JsonField> = JsonMissing.of(), - @JsonProperty("tripId") - @ExcludeMissing - private val tripId: JsonField = JsonMissing.of(), - @JsonProperty("schedule") - @ExcludeMissing - private val schedule: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val frequency: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val tripId: JsonField, + private val schedule: JsonField, + private val status: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun frequency(): String? = frequency.getNullable("frequency") fun serviceDate(): Long? = serviceDate.getNullable("serviceDate") @@ -315,8 +298,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): List = apply { if (!validated) { frequency() @@ -348,21 +329,25 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(list: List) = apply { - frequency = list.frequency - serviceDate = list.serviceDate - situationIds = list.situationIds - tripId = list.tripId - schedule = list.schedule - status = list.status - additionalProperties = list.additionalProperties.toMutableMap() + this.frequency = list.frequency + this.serviceDate = list.serviceDate + this.situationIds = list.situationIds + this.tripId = list.tripId + this.schedule = list.schedule + this.status = list.status + additionalProperties(list.additionalProperties) } fun frequency(frequency: String) = frequency(JsonField.of(frequency)) + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } fun serviceDate(serviceDate: Long) = serviceDate(JsonField.of(serviceDate)) + @JsonProperty("serviceDate") + @ExcludeMissing fun serviceDate(serviceDate: JsonField) = apply { this.serviceDate = serviceDate } @@ -370,29 +355,38 @@ private constructor( fun situationIds(situationIds: kotlin.collections.List) = situationIds(JsonField.of(situationIds)) + @JsonProperty("situationIds") + @ExcludeMissing fun situationIds(situationIds: JsonField>) = apply { this.situationIds = situationIds } fun tripId(tripId: String) = tripId(JsonField.of(tripId)) + @JsonProperty("tripId") + @ExcludeMissing fun tripId(tripId: JsonField) = apply { this.tripId = tripId } fun schedule(schedule: Schedule) = schedule(JsonField.of(schedule)) + @JsonProperty("schedule") + @ExcludeMissing fun schedule(schedule: JsonField) = apply { this.schedule = schedule } fun status(status: Status) = status(JsonField.of(status)) + @JsonProperty("status") + @ExcludeMissing fun status(status: JsonField) = apply { this.status = status } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -400,14 +394,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): List = List( frequency, @@ -420,29 +406,20 @@ private constructor( ) } + @JsonDeserialize(builder = Schedule.Builder::class) @NoAutoDetect class Schedule - @JsonCreator private constructor( - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("nextTripId") - @ExcludeMissing - private val nextTripId: JsonField = JsonMissing.of(), - @JsonProperty("previousTripId") - @ExcludeMissing - private val previousTripId: JsonField = JsonMissing.of(), - @JsonProperty("stopTimes") - @ExcludeMissing - private val stopTimes: JsonField> = JsonMissing.of(), - @JsonProperty("timeZone") - @ExcludeMissing - private val timeZone: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val frequency: JsonField, + private val nextTripId: JsonField, + private val previousTripId: JsonField, + private val stopTimes: JsonField>, + private val timeZone: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun frequency(): String? = frequency.getNullable("frequency") fun nextTripId(): String = nextTripId.getRequired("nextTripId") @@ -470,8 +447,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Schedule = apply { if (!validated) { frequency() @@ -501,22 +476,26 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(schedule: Schedule) = apply { - frequency = schedule.frequency - nextTripId = schedule.nextTripId - previousTripId = schedule.previousTripId - stopTimes = schedule.stopTimes - timeZone = schedule.timeZone - additionalProperties = schedule.additionalProperties.toMutableMap() + this.frequency = schedule.frequency + this.nextTripId = schedule.nextTripId + this.previousTripId = schedule.previousTripId + this.stopTimes = schedule.stopTimes + this.timeZone = schedule.timeZone + additionalProperties(schedule.additionalProperties) } fun frequency(frequency: String) = frequency(JsonField.of(frequency)) + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } fun nextTripId(nextTripId: String) = nextTripId(JsonField.of(nextTripId)) + @JsonProperty("nextTripId") + @ExcludeMissing fun nextTripId(nextTripId: JsonField) = apply { this.nextTripId = nextTripId } @@ -524,6 +503,8 @@ private constructor( fun previousTripId(previousTripId: String) = previousTripId(JsonField.of(previousTripId)) + @JsonProperty("previousTripId") + @ExcludeMissing fun previousTripId(previousTripId: JsonField) = apply { this.previousTripId = previousTripId } @@ -531,21 +512,26 @@ private constructor( fun stopTimes(stopTimes: kotlin.collections.List) = stopTimes(JsonField.of(stopTimes)) + @JsonProperty("stopTimes") + @ExcludeMissing fun stopTimes(stopTimes: JsonField>) = apply { this.stopTimes = stopTimes } fun timeZone(timeZone: String) = timeZone(JsonField.of(timeZone)) + @JsonProperty("timeZone") + @ExcludeMissing fun timeZone(timeZone: JsonField) = apply { this.timeZone = timeZone } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -553,14 +539,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Schedule = Schedule( frequency, @@ -572,32 +550,21 @@ private constructor( ) } + @JsonDeserialize(builder = StopTime.Builder::class) @NoAutoDetect class StopTime - @JsonCreator private constructor( - @JsonProperty("arrivalTime") - @ExcludeMissing - private val arrivalTime: JsonField = JsonMissing.of(), - @JsonProperty("departureTime") - @ExcludeMissing - private val departureTime: JsonField = JsonMissing.of(), - @JsonProperty("distanceAlongTrip") - @ExcludeMissing - private val distanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("historicalOccupancy") - @ExcludeMissing - private val historicalOccupancy: JsonField = JsonMissing.of(), - @JsonProperty("stopHeadsign") - @ExcludeMissing - private val stopHeadsign: JsonField = JsonMissing.of(), - @JsonProperty("stopId") - @ExcludeMissing - private val stopId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val arrivalTime: JsonField, + private val departureTime: JsonField, + private val distanceAlongTrip: JsonField, + private val historicalOccupancy: JsonField, + private val stopHeadsign: JsonField, + private val stopId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun arrivalTime(): Long? = arrivalTime.getNullable("arrivalTime") fun departureTime(): Long? = departureTime.getNullable("departureTime") @@ -634,8 +601,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): StopTime = apply { if (!validated) { arrivalTime() @@ -667,17 +632,19 @@ private constructor( mutableMapOf() internal fun from(stopTime: StopTime) = apply { - arrivalTime = stopTime.arrivalTime - departureTime = stopTime.departureTime - distanceAlongTrip = stopTime.distanceAlongTrip - historicalOccupancy = stopTime.historicalOccupancy - stopHeadsign = stopTime.stopHeadsign - stopId = stopTime.stopId - additionalProperties = stopTime.additionalProperties.toMutableMap() + this.arrivalTime = stopTime.arrivalTime + this.departureTime = stopTime.departureTime + this.distanceAlongTrip = stopTime.distanceAlongTrip + this.historicalOccupancy = stopTime.historicalOccupancy + this.stopHeadsign = stopTime.stopHeadsign + this.stopId = stopTime.stopId + additionalProperties(stopTime.additionalProperties) } fun arrivalTime(arrivalTime: Long) = arrivalTime(JsonField.of(arrivalTime)) + @JsonProperty("arrivalTime") + @ExcludeMissing fun arrivalTime(arrivalTime: JsonField) = apply { this.arrivalTime = arrivalTime } @@ -685,6 +652,8 @@ private constructor( fun departureTime(departureTime: Long) = departureTime(JsonField.of(departureTime)) + @JsonProperty("departureTime") + @ExcludeMissing fun departureTime(departureTime: JsonField) = apply { this.departureTime = departureTime } @@ -692,6 +661,8 @@ private constructor( fun distanceAlongTrip(distanceAlongTrip: Double) = distanceAlongTrip(JsonField.of(distanceAlongTrip)) + @JsonProperty("distanceAlongTrip") + @ExcludeMissing fun distanceAlongTrip(distanceAlongTrip: JsonField) = apply { this.distanceAlongTrip = distanceAlongTrip } @@ -699,6 +670,8 @@ private constructor( fun historicalOccupancy(historicalOccupancy: String) = historicalOccupancy(JsonField.of(historicalOccupancy)) + @JsonProperty("historicalOccupancy") + @ExcludeMissing fun historicalOccupancy(historicalOccupancy: JsonField) = apply { this.historicalOccupancy = historicalOccupancy } @@ -706,36 +679,33 @@ private constructor( fun stopHeadsign(stopHeadsign: String) = stopHeadsign(JsonField.of(stopHeadsign)) + @JsonProperty("stopHeadsign") + @ExcludeMissing fun stopHeadsign(stopHeadsign: JsonField) = apply { this.stopHeadsign = stopHeadsign } fun stopId(stopId: String) = stopId(JsonField.of(stopId)) + @JsonProperty("stopId") + @ExcludeMissing fun stopId(stopId: JsonField) = apply { this.stopId = stopId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): StopTime = StopTime( arrivalTime, @@ -784,95 +754,42 @@ private constructor( "Schedule{frequency=$frequency, nextTripId=$nextTripId, previousTripId=$previousTripId, stopTimes=$stopTimes, timeZone=$timeZone, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = Status.Builder::class) @NoAutoDetect class Status - @JsonCreator private constructor( - @JsonProperty("activeTripId") - @ExcludeMissing - private val activeTripId: JsonField = JsonMissing.of(), - @JsonProperty("blockTripSequence") - @ExcludeMissing - private val blockTripSequence: JsonField = JsonMissing.of(), - @JsonProperty("closestStop") - @ExcludeMissing - private val closestStop: JsonField = JsonMissing.of(), - @JsonProperty("closestStopTimeOffset") - @ExcludeMissing - private val closestStopTimeOffset: JsonField = JsonMissing.of(), - @JsonProperty("distanceAlongTrip") - @ExcludeMissing - private val distanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownDistanceAlongTrip") - @ExcludeMissing - private val lastKnownDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownLocation") - @ExcludeMissing - private val lastKnownLocation: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownOrientation") - @ExcludeMissing - private val lastKnownOrientation: JsonField = JsonMissing.of(), - @JsonProperty("lastLocationUpdateTime") - @ExcludeMissing - private val lastLocationUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("lastUpdateTime") - @ExcludeMissing - private val lastUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("nextStop") - @ExcludeMissing - private val nextStop: JsonField = JsonMissing.of(), - @JsonProperty("nextStopTimeOffset") - @ExcludeMissing - private val nextStopTimeOffset: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCapacity") - @ExcludeMissing - private val occupancyCapacity: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCount") - @ExcludeMissing - private val occupancyCount: JsonField = JsonMissing.of(), - @JsonProperty("occupancyStatus") - @ExcludeMissing - private val occupancyStatus: JsonField = JsonMissing.of(), - @JsonProperty("orientation") - @ExcludeMissing - private val orientation: JsonField = JsonMissing.of(), - @JsonProperty("phase") - @ExcludeMissing - private val phase: JsonField = JsonMissing.of(), - @JsonProperty("position") - @ExcludeMissing - private val position: JsonField = JsonMissing.of(), - @JsonProperty("predicted") - @ExcludeMissing - private val predicted: JsonField = JsonMissing.of(), - @JsonProperty("scheduleDeviation") - @ExcludeMissing - private val scheduleDeviation: JsonField = JsonMissing.of(), - @JsonProperty("scheduledDistanceAlongTrip") - @ExcludeMissing - private val scheduledDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("serviceDate") - @ExcludeMissing - private val serviceDate: JsonField = JsonMissing.of(), - @JsonProperty("situationIds") - @ExcludeMissing - private val situationIds: JsonField> = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("totalDistanceAlongTrip") - @ExcludeMissing - private val totalDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("vehicleId") - @ExcludeMissing - private val vehicleId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val activeTripId: JsonField, + private val blockTripSequence: JsonField, + private val closestStop: JsonField, + private val closestStopTimeOffset: JsonField, + private val distanceAlongTrip: JsonField, + private val frequency: JsonField, + private val lastKnownDistanceAlongTrip: JsonField, + private val lastKnownLocation: JsonField, + private val lastKnownOrientation: JsonField, + private val lastLocationUpdateTime: JsonField, + private val lastUpdateTime: JsonField, + private val nextStop: JsonField, + private val nextStopTimeOffset: JsonField, + private val occupancyCapacity: JsonField, + private val occupancyCount: JsonField, + private val occupancyStatus: JsonField, + private val orientation: JsonField, + private val phase: JsonField, + private val position: JsonField, + private val predicted: JsonField, + private val scheduleDeviation: JsonField, + private val scheduledDistanceAlongTrip: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val status: JsonField, + private val totalDistanceAlongTrip: JsonField, + private val vehicleId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Trip ID of the trip the vehicle is actively serving. */ fun activeTripId(): String = activeTripId.getRequired("activeTripId") @@ -1120,8 +1037,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Status = apply { if (!validated) { activeTripId() @@ -1195,34 +1110,34 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(status: Status) = apply { - activeTripId = status.activeTripId - blockTripSequence = status.blockTripSequence - closestStop = status.closestStop - closestStopTimeOffset = status.closestStopTimeOffset - distanceAlongTrip = status.distanceAlongTrip - frequency = status.frequency - lastKnownDistanceAlongTrip = status.lastKnownDistanceAlongTrip - lastKnownLocation = status.lastKnownLocation - lastKnownOrientation = status.lastKnownOrientation - lastLocationUpdateTime = status.lastLocationUpdateTime - lastUpdateTime = status.lastUpdateTime - nextStop = status.nextStop - nextStopTimeOffset = status.nextStopTimeOffset - occupancyCapacity = status.occupancyCapacity - occupancyCount = status.occupancyCount - occupancyStatus = status.occupancyStatus - orientation = status.orientation - phase = status.phase - position = status.position - predicted = status.predicted - scheduleDeviation = status.scheduleDeviation - scheduledDistanceAlongTrip = status.scheduledDistanceAlongTrip - serviceDate = status.serviceDate - situationIds = status.situationIds + this.activeTripId = status.activeTripId + this.blockTripSequence = status.blockTripSequence + this.closestStop = status.closestStop + this.closestStopTimeOffset = status.closestStopTimeOffset + this.distanceAlongTrip = status.distanceAlongTrip + this.frequency = status.frequency + this.lastKnownDistanceAlongTrip = status.lastKnownDistanceAlongTrip + this.lastKnownLocation = status.lastKnownLocation + this.lastKnownOrientation = status.lastKnownOrientation + this.lastLocationUpdateTime = status.lastLocationUpdateTime + this.lastUpdateTime = status.lastUpdateTime + this.nextStop = status.nextStop + this.nextStopTimeOffset = status.nextStopTimeOffset + this.occupancyCapacity = status.occupancyCapacity + this.occupancyCount = status.occupancyCount + this.occupancyStatus = status.occupancyStatus + this.orientation = status.orientation + this.phase = status.phase + this.position = status.position + this.predicted = status.predicted + this.scheduleDeviation = status.scheduleDeviation + this.scheduledDistanceAlongTrip = status.scheduledDistanceAlongTrip + this.serviceDate = status.serviceDate + this.situationIds = status.situationIds this.status = status.status - totalDistanceAlongTrip = status.totalDistanceAlongTrip - vehicleId = status.vehicleId - additionalProperties = status.additionalProperties.toMutableMap() + this.totalDistanceAlongTrip = status.totalDistanceAlongTrip + this.vehicleId = status.vehicleId + additionalProperties(status.additionalProperties) } /** Trip ID of the trip the vehicle is actively serving. */ @@ -1230,6 +1145,8 @@ private constructor( activeTripId(JsonField.of(activeTripId)) /** Trip ID of the trip the vehicle is actively serving. */ + @JsonProperty("activeTripId") + @ExcludeMissing fun activeTripId(activeTripId: JsonField) = apply { this.activeTripId = activeTripId } @@ -1239,6 +1156,8 @@ private constructor( blockTripSequence(JsonField.of(blockTripSequence)) /** Index of the active trip into the sequence of trips for the active block. */ + @JsonProperty("blockTripSequence") + @ExcludeMissing fun blockTripSequence(blockTripSequence: JsonField) = apply { this.blockTripSequence = blockTripSequence } @@ -1247,6 +1166,8 @@ private constructor( fun closestStop(closestStop: String) = closestStop(JsonField.of(closestStop)) /** ID of the closest stop to the current location of the transit vehicle. */ + @JsonProperty("closestStop") + @ExcludeMissing fun closestStop(closestStop: JsonField) = apply { this.closestStop = closestStop } @@ -1262,6 +1183,8 @@ private constructor( * Time offset from the closest stop to the current position of the transit * vehicle (in seconds). */ + @JsonProperty("closestStopTimeOffset") + @ExcludeMissing fun closestStopTimeOffset(closestStopTimeOffset: JsonField) = apply { this.closestStopTimeOffset = closestStopTimeOffset } @@ -1277,6 +1200,8 @@ private constructor( * Distance, in meters, the transit vehicle has progressed along the active * trip. */ + @JsonProperty("distanceAlongTrip") + @ExcludeMissing fun distanceAlongTrip(distanceAlongTrip: JsonField) = apply { this.distanceAlongTrip = distanceAlongTrip } @@ -1285,6 +1210,8 @@ private constructor( fun frequency(frequency: String) = frequency(JsonField.of(frequency)) /** Information about frequency-based scheduling, if applicable to the trip. */ + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } @@ -1300,6 +1227,8 @@ private constructor( * Last known distance along the trip received in real-time from the transit * vehicle. */ + @JsonProperty("lastKnownDistanceAlongTrip") + @ExcludeMissing fun lastKnownDistanceAlongTrip(lastKnownDistanceAlongTrip: JsonField) = apply { this.lastKnownDistanceAlongTrip = lastKnownDistanceAlongTrip @@ -1310,6 +1239,8 @@ private constructor( lastKnownLocation(JsonField.of(lastKnownLocation)) /** Last known location of the transit vehicle. */ + @JsonProperty("lastKnownLocation") + @ExcludeMissing fun lastKnownLocation(lastKnownLocation: JsonField) = apply { this.lastKnownLocation = lastKnownLocation } @@ -1323,6 +1254,8 @@ private constructor( /** * Last known orientation value received in real-time from the transit vehicle. */ + @JsonProperty("lastKnownOrientation") + @ExcludeMissing fun lastKnownOrientation(lastKnownOrientation: JsonField) = apply { this.lastKnownOrientation = lastKnownOrientation } @@ -1338,6 +1271,8 @@ private constructor( * Timestamp of the last known real-time location update from the transit * vehicle. */ + @JsonProperty("lastLocationUpdateTime") + @ExcludeMissing fun lastLocationUpdateTime(lastLocationUpdateTime: JsonField) = apply { this.lastLocationUpdateTime = lastLocationUpdateTime } @@ -1347,6 +1282,8 @@ private constructor( lastUpdateTime(JsonField.of(lastUpdateTime)) /** Timestamp of the last known real-time update from the transit vehicle. */ + @JsonProperty("lastUpdateTime") + @ExcludeMissing fun lastUpdateTime(lastUpdateTime: JsonField) = apply { this.lastUpdateTime = lastUpdateTime } @@ -1355,6 +1292,8 @@ private constructor( fun nextStop(nextStop: String) = nextStop(JsonField.of(nextStop)) /** ID of the next stop the transit vehicle is scheduled to arrive at. */ + @JsonProperty("nextStop") + @ExcludeMissing fun nextStop(nextStop: JsonField) = apply { this.nextStop = nextStop } /** @@ -1368,6 +1307,8 @@ private constructor( * Time offset from the next stop to the current position of the transit vehicle * (in seconds). */ + @JsonProperty("nextStopTimeOffset") + @ExcludeMissing fun nextStopTimeOffset(nextStopTimeOffset: JsonField) = apply { this.nextStopTimeOffset = nextStopTimeOffset } @@ -1377,6 +1318,8 @@ private constructor( occupancyCapacity(JsonField.of(occupancyCapacity)) /** Capacity of the transit vehicle in terms of occupancy. */ + @JsonProperty("occupancyCapacity") + @ExcludeMissing fun occupancyCapacity(occupancyCapacity: JsonField) = apply { this.occupancyCapacity = occupancyCapacity } @@ -1386,6 +1329,8 @@ private constructor( occupancyCount(JsonField.of(occupancyCount)) /** Current count of occupants in the transit vehicle. */ + @JsonProperty("occupancyCount") + @ExcludeMissing fun occupancyCount(occupancyCount: JsonField) = apply { this.occupancyCount = occupancyCount } @@ -1395,6 +1340,8 @@ private constructor( occupancyStatus(JsonField.of(occupancyStatus)) /** Current occupancy status of the transit vehicle. */ + @JsonProperty("occupancyStatus") + @ExcludeMissing fun occupancyStatus(occupancyStatus: JsonField) = apply { this.occupancyStatus = occupancyStatus } @@ -1403,6 +1350,8 @@ private constructor( fun orientation(orientation: Double) = orientation(JsonField.of(orientation)) /** Orientation of the transit vehicle, represented as an angle in degrees. */ + @JsonProperty("orientation") + @ExcludeMissing fun orientation(orientation: JsonField) = apply { this.orientation = orientation } @@ -1411,18 +1360,24 @@ private constructor( fun phase(phase: String) = phase(JsonField.of(phase)) /** Current journey phase of the trip. */ + @JsonProperty("phase") + @ExcludeMissing fun phase(phase: JsonField) = apply { this.phase = phase } /** Current position of the transit vehicle. */ fun position(position: Position) = position(JsonField.of(position)) /** Current position of the transit vehicle. */ + @JsonProperty("position") + @ExcludeMissing fun position(position: JsonField) = apply { this.position = position } /** Indicates if real-time arrival info is available for this trip. */ fun predicted(predicted: Boolean) = predicted(JsonField.of(predicted)) /** Indicates if real-time arrival info is available for this trip. */ + @JsonProperty("predicted") + @ExcludeMissing fun predicted(predicted: JsonField) = apply { this.predicted = predicted } @@ -1438,6 +1393,8 @@ private constructor( * Deviation from the schedule in seconds (positive for late, negative for * early). */ + @JsonProperty("scheduleDeviation") + @ExcludeMissing fun scheduleDeviation(scheduleDeviation: JsonField) = apply { this.scheduleDeviation = scheduleDeviation } @@ -1453,6 +1410,8 @@ private constructor( * Distance, in meters, the transit vehicle is scheduled to have progressed * along the active trip. */ + @JsonProperty("scheduledDistanceAlongTrip") + @ExcludeMissing fun scheduledDistanceAlongTrip(scheduledDistanceAlongTrip: JsonField) = apply { this.scheduledDistanceAlongTrip = scheduledDistanceAlongTrip @@ -1468,6 +1427,8 @@ private constructor( * Time, in milliseconds since the Unix epoch, of midnight for the start of the * service date for the trip. */ + @JsonProperty("serviceDate") + @ExcludeMissing fun serviceDate(serviceDate: JsonField) = apply { this.serviceDate = serviceDate } @@ -1477,6 +1438,8 @@ private constructor( situationIds(JsonField.of(situationIds)) /** References to situation elements (if any) applicable to this trip. */ + @JsonProperty("situationIds") + @ExcludeMissing fun situationIds(situationIds: JsonField>) = apply { this.situationIds = situationIds } @@ -1485,6 +1448,8 @@ private constructor( fun status(status: String) = status(JsonField.of(status)) /** Current status modifiers for the trip. */ + @JsonProperty("status") + @ExcludeMissing fun status(status: JsonField) = apply { this.status = status } /** Total length of the trip, in meters. */ @@ -1492,6 +1457,8 @@ private constructor( totalDistanceAlongTrip(JsonField.of(totalDistanceAlongTrip)) /** Total length of the trip, in meters. */ + @JsonProperty("totalDistanceAlongTrip") + @ExcludeMissing fun totalDistanceAlongTrip(totalDistanceAlongTrip: JsonField) = apply { this.totalDistanceAlongTrip = totalDistanceAlongTrip } @@ -1500,17 +1467,20 @@ private constructor( fun vehicleId(vehicleId: String) = vehicleId(JsonField.of(vehicleId)) /** ID of the transit vehicle currently serving the trip. */ + @JsonProperty("vehicleId") + @ExcludeMissing fun vehicleId(vehicleId: JsonField) = apply { this.vehicleId = vehicleId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1518,14 +1488,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Status = Status( activeTripId, @@ -1560,20 +1522,17 @@ private constructor( } /** Last known location of the transit vehicle. */ + @JsonDeserialize(builder = LastKnownLocation.Builder::class) @NoAutoDetect class LastKnownLocation - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Latitude of the last known location of the transit vehicle. */ fun lat(): Double? = lat.getNullable("lat") @@ -1590,8 +1549,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): LastKnownLocation = apply { if (!validated) { lat() @@ -1615,46 +1572,42 @@ private constructor( mutableMapOf() internal fun from(lastKnownLocation: LastKnownLocation) = apply { - lat = lastKnownLocation.lat - lon = lastKnownLocation.lon - additionalProperties = - lastKnownLocation.additionalProperties.toMutableMap() + this.lat = lastKnownLocation.lat + this.lon = lastKnownLocation.lon + additionalProperties(lastKnownLocation.additionalProperties) } /** Latitude of the last known location of the transit vehicle. */ fun lat(lat: Double) = lat(JsonField.of(lat)) /** Latitude of the last known location of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } /** Longitude of the last known location of the transit vehicle. */ fun lon(lon: Double) = lon(JsonField.of(lon)) /** Longitude of the last known location of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): LastKnownLocation = LastKnownLocation( lat, @@ -1682,20 +1635,17 @@ private constructor( } /** Current position of the transit vehicle. */ + @JsonDeserialize(builder = Position.Builder::class) @NoAutoDetect class Position - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Latitude of the current position of the transit vehicle. */ fun lat(): Double? = lat.getNullable("lat") @@ -1712,8 +1662,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Position = apply { if (!validated) { lat() @@ -1737,45 +1685,42 @@ private constructor( mutableMapOf() internal fun from(position: Position) = apply { - lat = position.lat - lon = position.lon - additionalProperties = position.additionalProperties.toMutableMap() + this.lat = position.lat + this.lon = position.lon + additionalProperties(position.additionalProperties) } /** Latitude of the current position of the transit vehicle. */ fun lat(lat: Double) = lat(JsonField.of(lat)) /** Latitude of the current position of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } /** Longitude of the current position of the transit vehicle. */ fun lon(lon: Double) = lon(JsonField.of(lon)) /** Longitude of the current position of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Position = Position( lat, diff --git a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/VehiclesForAgencyListResponse.kt b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/VehiclesForAgencyListResponse.kt index 22e33a6..77f0bdc 100644 --- a/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/VehiclesForAgencyListResponse.kt +++ b/onebusaway-sdk-kotlin-core/src/main/kotlin/org/onebusaway/models/VehiclesForAgencyListResponse.kt @@ -4,33 +4,30 @@ package org.onebusaway.models import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter -import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize import java.util.Objects import org.onebusaway.core.ExcludeMissing import org.onebusaway.core.JsonField import org.onebusaway.core.JsonMissing import org.onebusaway.core.JsonValue import org.onebusaway.core.NoAutoDetect -import org.onebusaway.core.immutableEmptyMap import org.onebusaway.core.toImmutable +@JsonDeserialize(builder = VehiclesForAgencyListResponse.Builder::class) @NoAutoDetect class VehiclesForAgencyListResponse -@JsonCreator private constructor( - @JsonProperty("code") @ExcludeMissing private val code: JsonField = JsonMissing.of(), - @JsonProperty("currentTime") - @ExcludeMissing - private val currentTime: JsonField = JsonMissing.of(), - @JsonProperty("text") @ExcludeMissing private val text: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonProperty("data") @ExcludeMissing private val data: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val code: JsonField, + private val currentTime: JsonField, + private val text: JsonField, + private val version: JsonField, + private val data: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun code(): Long = code.getRequired("code") fun currentTime(): Long = currentTime.getRequired("currentTime") @@ -41,6 +38,14 @@ private constructor( fun data(): Data = data.getRequired("data") + fun toResponseWrapper(): ResponseWrapper = + ResponseWrapper.builder() + .code(code) + .currentTime(currentTime) + .text(text) + .version(version) + .build() + @JsonProperty("code") @ExcludeMissing fun _code() = code @JsonProperty("currentTime") @ExcludeMissing fun _currentTime() = currentTime @@ -55,16 +60,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - fun toResponseWrapper(): ResponseWrapper = - ResponseWrapper.builder() - .code(code) - .currentTime(currentTime) - .text(text) - .version(version) - .build() - - private var validated: Boolean = false - fun validate(): VehiclesForAgencyListResponse = apply { if (!validated) { code() @@ -93,53 +88,58 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(vehiclesForAgencyListResponse: VehiclesForAgencyListResponse) = apply { - code = vehiclesForAgencyListResponse.code - currentTime = vehiclesForAgencyListResponse.currentTime - text = vehiclesForAgencyListResponse.text - version = vehiclesForAgencyListResponse.version - data = vehiclesForAgencyListResponse.data - additionalProperties = vehiclesForAgencyListResponse.additionalProperties.toMutableMap() + this.code = vehiclesForAgencyListResponse.code + this.currentTime = vehiclesForAgencyListResponse.currentTime + this.text = vehiclesForAgencyListResponse.text + this.version = vehiclesForAgencyListResponse.version + this.data = vehiclesForAgencyListResponse.data + additionalProperties(vehiclesForAgencyListResponse.additionalProperties) } fun code(code: Long) = code(JsonField.of(code)) + @JsonProperty("code") + @ExcludeMissing fun code(code: JsonField) = apply { this.code = code } fun currentTime(currentTime: Long) = currentTime(JsonField.of(currentTime)) + @JsonProperty("currentTime") + @ExcludeMissing fun currentTime(currentTime: JsonField) = apply { this.currentTime = currentTime } fun text(text: String) = text(JsonField.of(text)) + @JsonProperty("text") + @ExcludeMissing fun text(text: JsonField) = apply { this.text = text } fun version(version: Long) = version(JsonField.of(version)) + @JsonProperty("version") + @ExcludeMissing fun version(version: JsonField) = apply { this.version = version } fun data(data: Data) = data(JsonField.of(data)) + @JsonProperty("data") + @ExcludeMissing fun data(data: JsonField) = apply { this.data = data } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): VehiclesForAgencyListResponse = VehiclesForAgencyListResponse( code, @@ -151,23 +151,18 @@ private constructor( ) } + @JsonDeserialize(builder = Data.Builder::class) @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("list") - @ExcludeMissing - private val list: JsonField> = JsonMissing.of(), - @JsonProperty("limitExceeded") - @ExcludeMissing - private val limitExceeded: JsonField = JsonMissing.of(), - @JsonProperty("references") - @ExcludeMissing - private val references: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val list: JsonField>, + private val limitExceeded: JsonField, + private val references: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun list(): kotlin.collections.List = list.getRequired("list") fun limitExceeded(): Boolean = limitExceeded.getRequired("limitExceeded") @@ -184,8 +179,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Data = apply { if (!validated) { list().forEach { it.validate() } @@ -210,10 +203,10 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(data: Data) = apply { - list = data.list - limitExceeded = data.limitExceeded - references = data.references - additionalProperties = data.additionalProperties.toMutableMap() + this.list = data.list + this.limitExceeded = data.limitExceeded + this.references = data.references + additionalProperties(data.additionalProperties) } fun list(list: kotlin.collections.List) = list(JsonField.of(list)) @@ -222,35 +215,34 @@ private constructor( fun limitExceeded(limitExceeded: Boolean) = limitExceeded(JsonField.of(limitExceeded)) + @JsonProperty("limitExceeded") + @ExcludeMissing fun limitExceeded(limitExceeded: JsonField) = apply { this.limitExceeded = limitExceeded } fun references(references: References) = references(JsonField.of(references)) + @JsonProperty("references") + @ExcludeMissing fun references(references: JsonField) = apply { this.references = references } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Data = Data( list.map { it.toImmutable() }, @@ -260,47 +252,26 @@ private constructor( ) } + @JsonDeserialize(builder = List.Builder::class) @NoAutoDetect class List - @JsonCreator private constructor( - @JsonProperty("vehicleId") - @ExcludeMissing - private val vehicleId: JsonField = JsonMissing.of(), - @JsonProperty("lastUpdateTime") - @ExcludeMissing - private val lastUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("lastLocationUpdateTime") - @ExcludeMissing - private val lastLocationUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("location") - @ExcludeMissing - private val location: JsonField = JsonMissing.of(), - @JsonProperty("tripId") - @ExcludeMissing - private val tripId: JsonField = JsonMissing.of(), - @JsonProperty("tripStatus") - @ExcludeMissing - private val tripStatus: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCapacity") - @ExcludeMissing - private val occupancyCapacity: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCount") - @ExcludeMissing - private val occupancyCount: JsonField = JsonMissing.of(), - @JsonProperty("occupancyStatus") - @ExcludeMissing - private val occupancyStatus: JsonField = JsonMissing.of(), - @JsonProperty("phase") - @ExcludeMissing - private val phase: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val vehicleId: JsonField, + private val lastUpdateTime: JsonField, + private val lastLocationUpdateTime: JsonField, + private val location: JsonField, + private val tripId: JsonField, + private val tripStatus: JsonField, + private val occupancyCapacity: JsonField, + private val occupancyCount: JsonField, + private val occupancyStatus: JsonField, + private val phase: JsonField, + private val status: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun vehicleId(): String = vehicleId.getRequired("vehicleId") fun lastUpdateTime(): Long = lastUpdateTime.getRequired("lastUpdateTime") @@ -356,8 +327,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): List = apply { if (!validated) { vehicleId() @@ -398,27 +367,31 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(list: List) = apply { - vehicleId = list.vehicleId - lastUpdateTime = list.lastUpdateTime - lastLocationUpdateTime = list.lastLocationUpdateTime - location = list.location - tripId = list.tripId - tripStatus = list.tripStatus - occupancyCapacity = list.occupancyCapacity - occupancyCount = list.occupancyCount - occupancyStatus = list.occupancyStatus - phase = list.phase - status = list.status - additionalProperties = list.additionalProperties.toMutableMap() + this.vehicleId = list.vehicleId + this.lastUpdateTime = list.lastUpdateTime + this.lastLocationUpdateTime = list.lastLocationUpdateTime + this.location = list.location + this.tripId = list.tripId + this.tripStatus = list.tripStatus + this.occupancyCapacity = list.occupancyCapacity + this.occupancyCount = list.occupancyCount + this.occupancyStatus = list.occupancyStatus + this.phase = list.phase + this.status = list.status + additionalProperties(list.additionalProperties) } fun vehicleId(vehicleId: String) = vehicleId(JsonField.of(vehicleId)) + @JsonProperty("vehicleId") + @ExcludeMissing fun vehicleId(vehicleId: JsonField) = apply { this.vehicleId = vehicleId } fun lastUpdateTime(lastUpdateTime: Long) = lastUpdateTime(JsonField.of(lastUpdateTime)) + @JsonProperty("lastUpdateTime") + @ExcludeMissing fun lastUpdateTime(lastUpdateTime: JsonField) = apply { this.lastUpdateTime = lastUpdateTime } @@ -426,20 +399,28 @@ private constructor( fun lastLocationUpdateTime(lastLocationUpdateTime: Long) = lastLocationUpdateTime(JsonField.of(lastLocationUpdateTime)) + @JsonProperty("lastLocationUpdateTime") + @ExcludeMissing fun lastLocationUpdateTime(lastLocationUpdateTime: JsonField) = apply { this.lastLocationUpdateTime = lastLocationUpdateTime } fun location(location: Location) = location(JsonField.of(location)) + @JsonProperty("location") + @ExcludeMissing fun location(location: JsonField) = apply { this.location = location } fun tripId(tripId: String) = tripId(JsonField.of(tripId)) + @JsonProperty("tripId") + @ExcludeMissing fun tripId(tripId: JsonField) = apply { this.tripId = tripId } fun tripStatus(tripStatus: TripStatus) = tripStatus(JsonField.of(tripStatus)) + @JsonProperty("tripStatus") + @ExcludeMissing fun tripStatus(tripStatus: JsonField) = apply { this.tripStatus = tripStatus } @@ -447,6 +428,8 @@ private constructor( fun occupancyCapacity(occupancyCapacity: Long) = occupancyCapacity(JsonField.of(occupancyCapacity)) + @JsonProperty("occupancyCapacity") + @ExcludeMissing fun occupancyCapacity(occupancyCapacity: JsonField) = apply { this.occupancyCapacity = occupancyCapacity } @@ -454,6 +437,8 @@ private constructor( fun occupancyCount(occupancyCount: Long) = occupancyCount(JsonField.of(occupancyCount)) + @JsonProperty("occupancyCount") + @ExcludeMissing fun occupancyCount(occupancyCount: JsonField) = apply { this.occupancyCount = occupancyCount } @@ -461,25 +446,32 @@ private constructor( fun occupancyStatus(occupancyStatus: String) = occupancyStatus(JsonField.of(occupancyStatus)) + @JsonProperty("occupancyStatus") + @ExcludeMissing fun occupancyStatus(occupancyStatus: JsonField) = apply { this.occupancyStatus = occupancyStatus } fun phase(phase: String) = phase(JsonField.of(phase)) + @JsonProperty("phase") + @ExcludeMissing fun phase(phase: JsonField) = apply { this.phase = phase } fun status(status: String) = status(JsonField.of(status)) + @JsonProperty("status") + @ExcludeMissing fun status(status: JsonField) = apply { this.status = status } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -487,14 +479,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): List = List( vehicleId, @@ -512,20 +496,17 @@ private constructor( ) } + @JsonDeserialize(builder = Location.Builder::class) @NoAutoDetect class Location - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + fun lat(): Double? = lat.getNullable("lat") fun lon(): Double? = lon.getNullable("lon") @@ -538,8 +519,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Location = apply { if (!validated) { lat() @@ -562,26 +541,31 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(location: Location) = apply { - lat = location.lat - lon = location.lon - additionalProperties = location.additionalProperties.toMutableMap() + this.lat = location.lat + this.lon = location.lon + additionalProperties(location.additionalProperties) } fun lat(lat: Double) = lat(JsonField.of(lat)) + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } fun lon(lon: Double) = lon(JsonField.of(lon)) + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -589,14 +573,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Location = Location( lat, @@ -623,95 +599,42 @@ private constructor( "Location{lat=$lat, lon=$lon, additionalProperties=$additionalProperties}" } + @JsonDeserialize(builder = TripStatus.Builder::class) @NoAutoDetect class TripStatus - @JsonCreator private constructor( - @JsonProperty("activeTripId") - @ExcludeMissing - private val activeTripId: JsonField = JsonMissing.of(), - @JsonProperty("blockTripSequence") - @ExcludeMissing - private val blockTripSequence: JsonField = JsonMissing.of(), - @JsonProperty("closestStop") - @ExcludeMissing - private val closestStop: JsonField = JsonMissing.of(), - @JsonProperty("closestStopTimeOffset") - @ExcludeMissing - private val closestStopTimeOffset: JsonField = JsonMissing.of(), - @JsonProperty("distanceAlongTrip") - @ExcludeMissing - private val distanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("frequency") - @ExcludeMissing - private val frequency: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownDistanceAlongTrip") - @ExcludeMissing - private val lastKnownDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownLocation") - @ExcludeMissing - private val lastKnownLocation: JsonField = JsonMissing.of(), - @JsonProperty("lastKnownOrientation") - @ExcludeMissing - private val lastKnownOrientation: JsonField = JsonMissing.of(), - @JsonProperty("lastLocationUpdateTime") - @ExcludeMissing - private val lastLocationUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("lastUpdateTime") - @ExcludeMissing - private val lastUpdateTime: JsonField = JsonMissing.of(), - @JsonProperty("nextStop") - @ExcludeMissing - private val nextStop: JsonField = JsonMissing.of(), - @JsonProperty("nextStopTimeOffset") - @ExcludeMissing - private val nextStopTimeOffset: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCapacity") - @ExcludeMissing - private val occupancyCapacity: JsonField = JsonMissing.of(), - @JsonProperty("occupancyCount") - @ExcludeMissing - private val occupancyCount: JsonField = JsonMissing.of(), - @JsonProperty("occupancyStatus") - @ExcludeMissing - private val occupancyStatus: JsonField = JsonMissing.of(), - @JsonProperty("orientation") - @ExcludeMissing - private val orientation: JsonField = JsonMissing.of(), - @JsonProperty("phase") - @ExcludeMissing - private val phase: JsonField = JsonMissing.of(), - @JsonProperty("position") - @ExcludeMissing - private val position: JsonField = JsonMissing.of(), - @JsonProperty("predicted") - @ExcludeMissing - private val predicted: JsonField = JsonMissing.of(), - @JsonProperty("scheduleDeviation") - @ExcludeMissing - private val scheduleDeviation: JsonField = JsonMissing.of(), - @JsonProperty("scheduledDistanceAlongTrip") - @ExcludeMissing - private val scheduledDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("serviceDate") - @ExcludeMissing - private val serviceDate: JsonField = JsonMissing.of(), - @JsonProperty("situationIds") - @ExcludeMissing - private val situationIds: JsonField> = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("totalDistanceAlongTrip") - @ExcludeMissing - private val totalDistanceAlongTrip: JsonField = JsonMissing.of(), - @JsonProperty("vehicleId") - @ExcludeMissing - private val vehicleId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val activeTripId: JsonField, + private val blockTripSequence: JsonField, + private val closestStop: JsonField, + private val closestStopTimeOffset: JsonField, + private val distanceAlongTrip: JsonField, + private val frequency: JsonField, + private val lastKnownDistanceAlongTrip: JsonField, + private val lastKnownLocation: JsonField, + private val lastKnownOrientation: JsonField, + private val lastLocationUpdateTime: JsonField, + private val lastUpdateTime: JsonField, + private val nextStop: JsonField, + private val nextStopTimeOffset: JsonField, + private val occupancyCapacity: JsonField, + private val occupancyCount: JsonField, + private val occupancyStatus: JsonField, + private val orientation: JsonField, + private val phase: JsonField, + private val position: JsonField, + private val predicted: JsonField, + private val scheduleDeviation: JsonField, + private val scheduledDistanceAlongTrip: JsonField, + private val serviceDate: JsonField, + private val situationIds: JsonField>, + private val status: JsonField, + private val totalDistanceAlongTrip: JsonField, + private val vehicleId: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Trip ID of the trip the vehicle is actively serving. */ fun activeTripId(): String = activeTripId.getRequired("activeTripId") @@ -959,8 +882,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): TripStatus = apply { if (!validated) { activeTripId() @@ -1034,34 +955,34 @@ private constructor( private var additionalProperties: MutableMap = mutableMapOf() internal fun from(tripStatus: TripStatus) = apply { - activeTripId = tripStatus.activeTripId - blockTripSequence = tripStatus.blockTripSequence - closestStop = tripStatus.closestStop - closestStopTimeOffset = tripStatus.closestStopTimeOffset - distanceAlongTrip = tripStatus.distanceAlongTrip - frequency = tripStatus.frequency - lastKnownDistanceAlongTrip = tripStatus.lastKnownDistanceAlongTrip - lastKnownLocation = tripStatus.lastKnownLocation - lastKnownOrientation = tripStatus.lastKnownOrientation - lastLocationUpdateTime = tripStatus.lastLocationUpdateTime - lastUpdateTime = tripStatus.lastUpdateTime - nextStop = tripStatus.nextStop - nextStopTimeOffset = tripStatus.nextStopTimeOffset - occupancyCapacity = tripStatus.occupancyCapacity - occupancyCount = tripStatus.occupancyCount - occupancyStatus = tripStatus.occupancyStatus - orientation = tripStatus.orientation - phase = tripStatus.phase - position = tripStatus.position - predicted = tripStatus.predicted - scheduleDeviation = tripStatus.scheduleDeviation - scheduledDistanceAlongTrip = tripStatus.scheduledDistanceAlongTrip - serviceDate = tripStatus.serviceDate - situationIds = tripStatus.situationIds - status = tripStatus.status - totalDistanceAlongTrip = tripStatus.totalDistanceAlongTrip - vehicleId = tripStatus.vehicleId - additionalProperties = tripStatus.additionalProperties.toMutableMap() + this.activeTripId = tripStatus.activeTripId + this.blockTripSequence = tripStatus.blockTripSequence + this.closestStop = tripStatus.closestStop + this.closestStopTimeOffset = tripStatus.closestStopTimeOffset + this.distanceAlongTrip = tripStatus.distanceAlongTrip + this.frequency = tripStatus.frequency + this.lastKnownDistanceAlongTrip = tripStatus.lastKnownDistanceAlongTrip + this.lastKnownLocation = tripStatus.lastKnownLocation + this.lastKnownOrientation = tripStatus.lastKnownOrientation + this.lastLocationUpdateTime = tripStatus.lastLocationUpdateTime + this.lastUpdateTime = tripStatus.lastUpdateTime + this.nextStop = tripStatus.nextStop + this.nextStopTimeOffset = tripStatus.nextStopTimeOffset + this.occupancyCapacity = tripStatus.occupancyCapacity + this.occupancyCount = tripStatus.occupancyCount + this.occupancyStatus = tripStatus.occupancyStatus + this.orientation = tripStatus.orientation + this.phase = tripStatus.phase + this.position = tripStatus.position + this.predicted = tripStatus.predicted + this.scheduleDeviation = tripStatus.scheduleDeviation + this.scheduledDistanceAlongTrip = tripStatus.scheduledDistanceAlongTrip + this.serviceDate = tripStatus.serviceDate + this.situationIds = tripStatus.situationIds + this.status = tripStatus.status + this.totalDistanceAlongTrip = tripStatus.totalDistanceAlongTrip + this.vehicleId = tripStatus.vehicleId + additionalProperties(tripStatus.additionalProperties) } /** Trip ID of the trip the vehicle is actively serving. */ @@ -1069,6 +990,8 @@ private constructor( activeTripId(JsonField.of(activeTripId)) /** Trip ID of the trip the vehicle is actively serving. */ + @JsonProperty("activeTripId") + @ExcludeMissing fun activeTripId(activeTripId: JsonField) = apply { this.activeTripId = activeTripId } @@ -1078,6 +1001,8 @@ private constructor( blockTripSequence(JsonField.of(blockTripSequence)) /** Index of the active trip into the sequence of trips for the active block. */ + @JsonProperty("blockTripSequence") + @ExcludeMissing fun blockTripSequence(blockTripSequence: JsonField) = apply { this.blockTripSequence = blockTripSequence } @@ -1086,6 +1011,8 @@ private constructor( fun closestStop(closestStop: String) = closestStop(JsonField.of(closestStop)) /** ID of the closest stop to the current location of the transit vehicle. */ + @JsonProperty("closestStop") + @ExcludeMissing fun closestStop(closestStop: JsonField) = apply { this.closestStop = closestStop } @@ -1101,6 +1028,8 @@ private constructor( * Time offset from the closest stop to the current position of the transit * vehicle (in seconds). */ + @JsonProperty("closestStopTimeOffset") + @ExcludeMissing fun closestStopTimeOffset(closestStopTimeOffset: JsonField) = apply { this.closestStopTimeOffset = closestStopTimeOffset } @@ -1116,6 +1045,8 @@ private constructor( * Distance, in meters, the transit vehicle has progressed along the active * trip. */ + @JsonProperty("distanceAlongTrip") + @ExcludeMissing fun distanceAlongTrip(distanceAlongTrip: JsonField) = apply { this.distanceAlongTrip = distanceAlongTrip } @@ -1124,6 +1055,8 @@ private constructor( fun frequency(frequency: String) = frequency(JsonField.of(frequency)) /** Information about frequency-based scheduling, if applicable to the trip. */ + @JsonProperty("frequency") + @ExcludeMissing fun frequency(frequency: JsonField) = apply { this.frequency = frequency } @@ -1139,6 +1072,8 @@ private constructor( * Last known distance along the trip received in real-time from the transit * vehicle. */ + @JsonProperty("lastKnownDistanceAlongTrip") + @ExcludeMissing fun lastKnownDistanceAlongTrip(lastKnownDistanceAlongTrip: JsonField) = apply { this.lastKnownDistanceAlongTrip = lastKnownDistanceAlongTrip @@ -1149,6 +1084,8 @@ private constructor( lastKnownLocation(JsonField.of(lastKnownLocation)) /** Last known location of the transit vehicle. */ + @JsonProperty("lastKnownLocation") + @ExcludeMissing fun lastKnownLocation(lastKnownLocation: JsonField) = apply { this.lastKnownLocation = lastKnownLocation } @@ -1162,6 +1099,8 @@ private constructor( /** * Last known orientation value received in real-time from the transit vehicle. */ + @JsonProperty("lastKnownOrientation") + @ExcludeMissing fun lastKnownOrientation(lastKnownOrientation: JsonField) = apply { this.lastKnownOrientation = lastKnownOrientation } @@ -1177,6 +1116,8 @@ private constructor( * Timestamp of the last known real-time location update from the transit * vehicle. */ + @JsonProperty("lastLocationUpdateTime") + @ExcludeMissing fun lastLocationUpdateTime(lastLocationUpdateTime: JsonField) = apply { this.lastLocationUpdateTime = lastLocationUpdateTime } @@ -1186,6 +1127,8 @@ private constructor( lastUpdateTime(JsonField.of(lastUpdateTime)) /** Timestamp of the last known real-time update from the transit vehicle. */ + @JsonProperty("lastUpdateTime") + @ExcludeMissing fun lastUpdateTime(lastUpdateTime: JsonField) = apply { this.lastUpdateTime = lastUpdateTime } @@ -1194,6 +1137,8 @@ private constructor( fun nextStop(nextStop: String) = nextStop(JsonField.of(nextStop)) /** ID of the next stop the transit vehicle is scheduled to arrive at. */ + @JsonProperty("nextStop") + @ExcludeMissing fun nextStop(nextStop: JsonField) = apply { this.nextStop = nextStop } /** @@ -1207,6 +1152,8 @@ private constructor( * Time offset from the next stop to the current position of the transit vehicle * (in seconds). */ + @JsonProperty("nextStopTimeOffset") + @ExcludeMissing fun nextStopTimeOffset(nextStopTimeOffset: JsonField) = apply { this.nextStopTimeOffset = nextStopTimeOffset } @@ -1216,6 +1163,8 @@ private constructor( occupancyCapacity(JsonField.of(occupancyCapacity)) /** Capacity of the transit vehicle in terms of occupancy. */ + @JsonProperty("occupancyCapacity") + @ExcludeMissing fun occupancyCapacity(occupancyCapacity: JsonField) = apply { this.occupancyCapacity = occupancyCapacity } @@ -1225,6 +1174,8 @@ private constructor( occupancyCount(JsonField.of(occupancyCount)) /** Current count of occupants in the transit vehicle. */ + @JsonProperty("occupancyCount") + @ExcludeMissing fun occupancyCount(occupancyCount: JsonField) = apply { this.occupancyCount = occupancyCount } @@ -1234,6 +1185,8 @@ private constructor( occupancyStatus(JsonField.of(occupancyStatus)) /** Current occupancy status of the transit vehicle. */ + @JsonProperty("occupancyStatus") + @ExcludeMissing fun occupancyStatus(occupancyStatus: JsonField) = apply { this.occupancyStatus = occupancyStatus } @@ -1242,6 +1195,8 @@ private constructor( fun orientation(orientation: Double) = orientation(JsonField.of(orientation)) /** Orientation of the transit vehicle, represented as an angle in degrees. */ + @JsonProperty("orientation") + @ExcludeMissing fun orientation(orientation: JsonField) = apply { this.orientation = orientation } @@ -1250,18 +1205,24 @@ private constructor( fun phase(phase: String) = phase(JsonField.of(phase)) /** Current journey phase of the trip. */ + @JsonProperty("phase") + @ExcludeMissing fun phase(phase: JsonField) = apply { this.phase = phase } /** Current position of the transit vehicle. */ fun position(position: Position) = position(JsonField.of(position)) /** Current position of the transit vehicle. */ + @JsonProperty("position") + @ExcludeMissing fun position(position: JsonField) = apply { this.position = position } /** Indicates if real-time arrival info is available for this trip. */ fun predicted(predicted: Boolean) = predicted(JsonField.of(predicted)) /** Indicates if real-time arrival info is available for this trip. */ + @JsonProperty("predicted") + @ExcludeMissing fun predicted(predicted: JsonField) = apply { this.predicted = predicted } @@ -1277,6 +1238,8 @@ private constructor( * Deviation from the schedule in seconds (positive for late, negative for * early). */ + @JsonProperty("scheduleDeviation") + @ExcludeMissing fun scheduleDeviation(scheduleDeviation: JsonField) = apply { this.scheduleDeviation = scheduleDeviation } @@ -1292,6 +1255,8 @@ private constructor( * Distance, in meters, the transit vehicle is scheduled to have progressed * along the active trip. */ + @JsonProperty("scheduledDistanceAlongTrip") + @ExcludeMissing fun scheduledDistanceAlongTrip(scheduledDistanceAlongTrip: JsonField) = apply { this.scheduledDistanceAlongTrip = scheduledDistanceAlongTrip @@ -1307,6 +1272,8 @@ private constructor( * Time, in milliseconds since the Unix epoch, of midnight for the start of the * service date for the trip. */ + @JsonProperty("serviceDate") + @ExcludeMissing fun serviceDate(serviceDate: JsonField) = apply { this.serviceDate = serviceDate } @@ -1316,15 +1283,18 @@ private constructor( situationIds(JsonField.of(situationIds)) /** References to situation elements (if any) applicable to this trip. */ - fun situationIds(situationIds: JsonField>) = - apply { - this.situationIds = situationIds - } + @JsonProperty("situationIds") + @ExcludeMissing + fun situationIds(situationIds: JsonField>) = apply { + this.situationIds = situationIds + } /** Current status modifiers for the trip. */ fun status(status: String) = status(JsonField.of(status)) /** Current status modifiers for the trip. */ + @JsonProperty("status") + @ExcludeMissing fun status(status: JsonField) = apply { this.status = status } /** Total length of the trip, in meters. */ @@ -1332,6 +1302,8 @@ private constructor( totalDistanceAlongTrip(JsonField.of(totalDistanceAlongTrip)) /** Total length of the trip, in meters. */ + @JsonProperty("totalDistanceAlongTrip") + @ExcludeMissing fun totalDistanceAlongTrip(totalDistanceAlongTrip: JsonField) = apply { this.totalDistanceAlongTrip = totalDistanceAlongTrip } @@ -1340,17 +1312,20 @@ private constructor( fun vehicleId(vehicleId: String) = vehicleId(JsonField.of(vehicleId)) /** ID of the transit vehicle currently serving the trip. */ + @JsonProperty("vehicleId") + @ExcludeMissing fun vehicleId(vehicleId: JsonField) = apply { this.vehicleId = vehicleId } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = @@ -1358,14 +1333,6 @@ private constructor( this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): TripStatus = TripStatus( activeTripId, @@ -1400,20 +1367,17 @@ private constructor( } /** Last known location of the transit vehicle. */ + @JsonDeserialize(builder = LastKnownLocation.Builder::class) @NoAutoDetect class LastKnownLocation - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Latitude of the last known location of the transit vehicle. */ fun lat(): Double? = lat.getNullable("lat") @@ -1430,8 +1394,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): LastKnownLocation = apply { if (!validated) { lat() @@ -1455,46 +1417,42 @@ private constructor( mutableMapOf() internal fun from(lastKnownLocation: LastKnownLocation) = apply { - lat = lastKnownLocation.lat - lon = lastKnownLocation.lon - additionalProperties = - lastKnownLocation.additionalProperties.toMutableMap() + this.lat = lastKnownLocation.lat + this.lon = lastKnownLocation.lon + additionalProperties(lastKnownLocation.additionalProperties) } /** Latitude of the last known location of the transit vehicle. */ fun lat(lat: Double) = lat(JsonField.of(lat)) /** Latitude of the last known location of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } /** Longitude of the last known location of the transit vehicle. */ fun lon(lon: Double) = lon(JsonField.of(lon)) /** Longitude of the last known location of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): LastKnownLocation = LastKnownLocation( lat, @@ -1522,20 +1480,17 @@ private constructor( } /** Current position of the transit vehicle. */ + @JsonDeserialize(builder = Position.Builder::class) @NoAutoDetect class Position - @JsonCreator private constructor( - @JsonProperty("lat") - @ExcludeMissing - private val lat: JsonField = JsonMissing.of(), - @JsonProperty("lon") - @ExcludeMissing - private val lon: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val lat: JsonField, + private val lon: JsonField, + private val additionalProperties: Map, ) { + private var validated: Boolean = false + /** Latitude of the current position of the transit vehicle. */ fun lat(): Double? = lat.getNullable("lat") @@ -1552,8 +1507,6 @@ private constructor( @ExcludeMissing fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false - fun validate(): Position = apply { if (!validated) { lat() @@ -1577,45 +1530,42 @@ private constructor( mutableMapOf() internal fun from(position: Position) = apply { - lat = position.lat - lon = position.lon - additionalProperties = position.additionalProperties.toMutableMap() + this.lat = position.lat + this.lon = position.lon + additionalProperties(position.additionalProperties) } /** Latitude of the current position of the transit vehicle. */ fun lat(lat: Double) = lat(JsonField.of(lat)) /** Latitude of the current position of the transit vehicle. */ + @JsonProperty("lat") + @ExcludeMissing fun lat(lat: JsonField) = apply { this.lat = lat } /** Longitude of the current position of the transit vehicle. */ fun lon(lon: Double) = lon(JsonField.of(lon)) /** Longitude of the current position of the transit vehicle. */ + @JsonProperty("lon") + @ExcludeMissing fun lon(lon: JsonField) = apply { this.lon = lon } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) + this.additionalProperties.putAll(additionalProperties) } + @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) + this.additionalProperties.put(key, value) } fun putAllAdditionalProperties( additionalProperties: Map ) = apply { this.additionalProperties.putAll(additionalProperties) } - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - fun build(): Position = Position( lat, diff --git a/onebusaway-sdk-kotlin-core/src/test/kotlin/org/onebusaway/services/ErrorHandlingTest.kt b/onebusaway-sdk-kotlin-core/src/test/kotlin/org/onebusaway/services/ErrorHandlingTest.kt index 1162b3b..cd80fbb 100644 --- a/onebusaway-sdk-kotlin-core/src/test/kotlin/org/onebusaway/services/ErrorHandlingTest.kt +++ b/onebusaway-sdk-kotlin-core/src/test/kotlin/org/onebusaway/services/ErrorHandlingTest.kt @@ -32,7 +32,6 @@ import org.onebusaway.errors.UnexpectedStatusCodeException import org.onebusaway.errors.UnprocessableEntityException import org.onebusaway.models.CurrentTimeRetrieveParams import org.onebusaway.models.CurrentTimeRetrieveResponse -import org.onebusaway.models.References @WireMockTest class ErrorHandlingTest { @@ -59,182 +58,141 @@ class ErrorHandlingTest { val expected = CurrentTimeRetrieveResponse.builder() - .code(0L) - .currentTime(0L) - .text("text") - .version(0L) - .data( - CurrentTimeRetrieveResponse.Data.builder() - .entry( - CurrentTimeRetrieveResponse.Data.Entry.builder() - .readableTime("readableTime") - .time(0L) - .build() - ) - .references( - References.builder() - .agencies( - listOf( - References.Agency.builder() - .id("id") - .name("name") - .timezone("timezone") - .url("url") - .disclaimer("disclaimer") - .email("email") - .fareUrl("fareUrl") - .lang("lang") - .phone("phone") - .privateService(true) - .build() - ) - ) - .routes( - listOf( - References.Route.builder() - .id("id") - .agencyId("agencyId") - .type(0L) - .color("color") - .description("description") - .longName("longName") - .nullSafeShortName("nullSafeShortName") - .shortName("shortName") - .textColor("textColor") - .url("url") - .build() - ) - ) - .situations( - listOf( - References.Situation.builder() - .id("id") - .creationTime(0L) - .activeWindows( - listOf( - References.Situation.ActiveWindow.builder() - .from(0L) - .to(0L) - .build() - ) + .putAdditionalProperty("code", JsonValue.from(0)) + .putAdditionalProperty("currentTime", JsonValue.from(0)) + .putAdditionalProperty("text", JsonValue.from("text")) + .putAdditionalProperty("version", JsonValue.from(0)) + .putAdditionalProperty( + "data", + JsonValue.from( + mapOf( + "entry" to mapOf("readableTime" to "readableTime", "time" to 0), + "references" to + mapOf( + "agencies" to + listOf( + mapOf( + "id" to "id", + "name" to "name", + "timezone" to "timezone", + "url" to "url", + "disclaimer" to "disclaimer", + "email" to "email", + "fareUrl" to "fareUrl", + "lang" to "lang", + "phone" to "phone", + "privateService" to true, ) - .allAffects( - listOf( - References.Situation.AllAffect.builder() - .agencyId("agencyId") - .applicationId("applicationId") - .directionId("directionId") - .routeId("routeId") - .stopId("stopId") - .tripId("tripId") - .build() - ) + ), + "routes" to + listOf( + mapOf( + "id" to "id", + "agencyId" to "agencyId", + "type" to 0, + "color" to "color", + "description" to "description", + "longName" to "longName", + "nullSafeShortName" to "nullSafeShortName", + "shortName" to "shortName", + "textColor" to "textColor", + "url" to "url", ) - .consequenceMessage("consequenceMessage") - .consequences( - listOf( - References.Situation.Consequence.builder() - .condition("condition") - .conditionDetails( - References.Situation.Consequence - .ConditionDetails - .builder() - .diversionPath( - References.Situation.Consequence - .ConditionDetails - .DiversionPath - .builder() - .length(0L) - .levels("levels") - .points("points") - .build() + ), + "situations" to + listOf( + mapOf( + "id" to "id", + "creationTime" to 0, + "activeWindows" to + listOf(mapOf("from" to 0, "to" to 0)), + "allAffects" to + listOf( + mapOf( + "agencyId" to "agencyId", + "applicationId" to "applicationId", + "directionId" to "directionId", + "routeId" to "routeId", + "stopId" to "stopId", + "tripId" to "tripId", + ) + ), + "consequenceMessage" to "consequenceMessage", + "consequences" to + listOf( + mapOf( + "condition" to "condition", + "conditionDetails" to + mapOf( + "diversionPath" to + mapOf( + "length" to 0, + "levels" to "levels", + "points" to "points", + ), + "diversionStopIds" to + listOf("string") ) - .diversionStopIds(listOf("string")) - .build() ) - .build() - ) + ), + "description" to + mapOf("lang" to "lang", "value" to "value"), + "publicationWindows" to + listOf(mapOf("from" to 0, "to" to 0)), + "reason" to "equipmentReason", + "severity" to "severity", + "summary" to + mapOf("lang" to "lang", "value" to "value"), + "url" to + mapOf("lang" to "lang", "value" to "value"), ) - .description( - References.Situation.Description.builder() - .lang("lang") - .value("value") - .build() + ), + "stops" to + listOf( + mapOf( + "id" to "id", + "lat" to 0, + "lon" to 0, + "name" to "name", + "parent" to "parent", + "routeIds" to listOf("string"), + "staticRouteIds" to listOf("string"), + "code" to "code", + "direction" to "direction", + "locationType" to 0, + "wheelchairBoarding" to "wheelchairBoarding", ) - .publicationWindows( - listOf( - References.Situation.PublicationWindow.builder() - .from(0L) - .to(0L) - .build() - ) + ), + "stopTimes" to + listOf( + mapOf( + "arrivalTime" to 0, + "departureTime" to 0, + "distanceAlongTrip" to 0, + "historicalOccupancy" to "historicalOccupancy", + "stopHeadsign" to "stopHeadsign", + "stopId" to "stopId", ) - .reason(References.Situation.Reason.EQUIPMENT_REASON) - .severity("severity") - .summary( - References.Situation.Summary.builder() - .lang("lang") - .value("value") - .build() + ), + "trips" to + listOf( + mapOf( + "id" to "id", + "routeId" to "routeId", + "serviceId" to "serviceId", + "blockId" to "blockId", + "directionId" to "directionId", + "peakOffpeak" to 0, + "routeShortName" to "routeShortName", + "shapeId" to "shapeId", + "timeZone" to "timeZone", + "tripHeadsign" to "tripHeadsign", + "tripShortName" to "tripShortName", ) - .url( - References.Situation.Url.builder() - .lang("lang") - .value("value") - .build() - ) - .build() - ) - ) - .stops( - listOf( - References.Stop.builder() - .id("id") - .lat(0.0) - .lon(0.0) - .name("name") - .parent("parent") - .routeIds(listOf("string")) - .staticRouteIds(listOf("string")) - .code("code") - .direction("direction") - .locationType(0L) - .wheelchairBoarding("wheelchairBoarding") - .build() - ) - ) - .stopTimes( - listOf( - References.StopTime.builder() - .arrivalTime(0L) - .departureTime(0L) - .distanceAlongTrip(0.0) - .historicalOccupancy("historicalOccupancy") - .stopHeadsign("stopHeadsign") - .stopId("stopId") - .build() - ) - ) - .trips( - listOf( - References.Trip.builder() - .id("id") - .routeId("routeId") - .serviceId("serviceId") - .blockId("blockId") - .directionId("directionId") - .peakOffpeak(0L) - .routeShortName("routeShortName") - .shapeId("shapeId") - .timeZone("timeZone") - .tripHeadsign("tripHeadsign") - .tripShortName("tripShortName") - .build() - ) + ), ) - .build() ) - .build() + ) ) .build() diff --git a/onebusaway-sdk-kotlin-core/src/test/kotlin/org/onebusaway/services/ServiceParamsTest.kt b/onebusaway-sdk-kotlin-core/src/test/kotlin/org/onebusaway/services/ServiceParamsTest.kt index 34c128c..5d0e53f 100644 --- a/onebusaway-sdk-kotlin-core/src/test/kotlin/org/onebusaway/services/ServiceParamsTest.kt +++ b/onebusaway-sdk-kotlin-core/src/test/kotlin/org/onebusaway/services/ServiceParamsTest.kt @@ -16,10 +16,10 @@ import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.onebusaway.client.OnebusawaySdkClient import org.onebusaway.client.okhttp.OnebusawaySdkOkHttpClient +import org.onebusaway.core.JsonValue import org.onebusaway.core.jsonMapper import org.onebusaway.models.CurrentTimeRetrieveParams import org.onebusaway.models.CurrentTimeRetrieveResponse -import org.onebusaway.models.References @WireMockTest class ServiceParamsTest { @@ -55,182 +55,141 @@ class ServiceParamsTest { val apiResponse = CurrentTimeRetrieveResponse.builder() - .code(0L) - .currentTime(0L) - .text("text") - .version(0L) - .data( - CurrentTimeRetrieveResponse.Data.builder() - .entry( - CurrentTimeRetrieveResponse.Data.Entry.builder() - .readableTime("readableTime") - .time(0L) - .build() - ) - .references( - References.builder() - .agencies( - listOf( - References.Agency.builder() - .id("id") - .name("name") - .timezone("timezone") - .url("url") - .disclaimer("disclaimer") - .email("email") - .fareUrl("fareUrl") - .lang("lang") - .phone("phone") - .privateService(true) - .build() - ) - ) - .routes( - listOf( - References.Route.builder() - .id("id") - .agencyId("agencyId") - .type(0L) - .color("color") - .description("description") - .longName("longName") - .nullSafeShortName("nullSafeShortName") - .shortName("shortName") - .textColor("textColor") - .url("url") - .build() - ) - ) - .situations( - listOf( - References.Situation.builder() - .id("id") - .creationTime(0L) - .activeWindows( - listOf( - References.Situation.ActiveWindow.builder() - .from(0L) - .to(0L) - .build() - ) + .putAdditionalProperty("code", JsonValue.from(0)) + .putAdditionalProperty("currentTime", JsonValue.from(0)) + .putAdditionalProperty("text", JsonValue.from("text")) + .putAdditionalProperty("version", JsonValue.from(0)) + .putAdditionalProperty( + "data", + JsonValue.from( + mapOf( + "entry" to mapOf("readableTime" to "readableTime", "time" to 0), + "references" to + mapOf( + "agencies" to + listOf( + mapOf( + "id" to "id", + "name" to "name", + "timezone" to "timezone", + "url" to "url", + "disclaimer" to "disclaimer", + "email" to "email", + "fareUrl" to "fareUrl", + "lang" to "lang", + "phone" to "phone", + "privateService" to true, ) - .allAffects( - listOf( - References.Situation.AllAffect.builder() - .agencyId("agencyId") - .applicationId("applicationId") - .directionId("directionId") - .routeId("routeId") - .stopId("stopId") - .tripId("tripId") - .build() - ) + ), + "routes" to + listOf( + mapOf( + "id" to "id", + "agencyId" to "agencyId", + "type" to 0, + "color" to "color", + "description" to "description", + "longName" to "longName", + "nullSafeShortName" to "nullSafeShortName", + "shortName" to "shortName", + "textColor" to "textColor", + "url" to "url", ) - .consequenceMessage("consequenceMessage") - .consequences( - listOf( - References.Situation.Consequence.builder() - .condition("condition") - .conditionDetails( - References.Situation.Consequence - .ConditionDetails - .builder() - .diversionPath( - References.Situation.Consequence - .ConditionDetails - .DiversionPath - .builder() - .length(0L) - .levels("levels") - .points("points") - .build() + ), + "situations" to + listOf( + mapOf( + "id" to "id", + "creationTime" to 0, + "activeWindows" to + listOf(mapOf("from" to 0, "to" to 0)), + "allAffects" to + listOf( + mapOf( + "agencyId" to "agencyId", + "applicationId" to "applicationId", + "directionId" to "directionId", + "routeId" to "routeId", + "stopId" to "stopId", + "tripId" to "tripId", + ) + ), + "consequenceMessage" to "consequenceMessage", + "consequences" to + listOf( + mapOf( + "condition" to "condition", + "conditionDetails" to + mapOf( + "diversionPath" to + mapOf( + "length" to 0, + "levels" to "levels", + "points" to "points", + ), + "diversionStopIds" to + listOf("string") ) - .diversionStopIds(listOf("string")) - .build() ) - .build() - ) + ), + "description" to + mapOf("lang" to "lang", "value" to "value"), + "publicationWindows" to + listOf(mapOf("from" to 0, "to" to 0)), + "reason" to "equipmentReason", + "severity" to "severity", + "summary" to + mapOf("lang" to "lang", "value" to "value"), + "url" to + mapOf("lang" to "lang", "value" to "value"), ) - .description( - References.Situation.Description.builder() - .lang("lang") - .value("value") - .build() + ), + "stops" to + listOf( + mapOf( + "id" to "id", + "lat" to 0, + "lon" to 0, + "name" to "name", + "parent" to "parent", + "routeIds" to listOf("string"), + "staticRouteIds" to listOf("string"), + "code" to "code", + "direction" to "direction", + "locationType" to 0, + "wheelchairBoarding" to "wheelchairBoarding", ) - .publicationWindows( - listOf( - References.Situation.PublicationWindow.builder() - .from(0L) - .to(0L) - .build() - ) + ), + "stopTimes" to + listOf( + mapOf( + "arrivalTime" to 0, + "departureTime" to 0, + "distanceAlongTrip" to 0, + "historicalOccupancy" to "historicalOccupancy", + "stopHeadsign" to "stopHeadsign", + "stopId" to "stopId", ) - .reason(References.Situation.Reason.EQUIPMENT_REASON) - .severity("severity") - .summary( - References.Situation.Summary.builder() - .lang("lang") - .value("value") - .build() + ), + "trips" to + listOf( + mapOf( + "id" to "id", + "routeId" to "routeId", + "serviceId" to "serviceId", + "blockId" to "blockId", + "directionId" to "directionId", + "peakOffpeak" to 0, + "routeShortName" to "routeShortName", + "shapeId" to "shapeId", + "timeZone" to "timeZone", + "tripHeadsign" to "tripHeadsign", + "tripShortName" to "tripShortName", ) - .url( - References.Situation.Url.builder() - .lang("lang") - .value("value") - .build() - ) - .build() - ) - ) - .stops( - listOf( - References.Stop.builder() - .id("id") - .lat(0.0) - .lon(0.0) - .name("name") - .parent("parent") - .routeIds(listOf("string")) - .staticRouteIds(listOf("string")) - .code("code") - .direction("direction") - .locationType(0L) - .wheelchairBoarding("wheelchairBoarding") - .build() - ) - ) - .stopTimes( - listOf( - References.StopTime.builder() - .arrivalTime(0L) - .departureTime(0L) - .distanceAlongTrip(0.0) - .historicalOccupancy("historicalOccupancy") - .stopHeadsign("stopHeadsign") - .stopId("stopId") - .build() - ) - ) - .trips( - listOf( - References.Trip.builder() - .id("id") - .routeId("routeId") - .serviceId("serviceId") - .blockId("blockId") - .directionId("directionId") - .peakOffpeak(0L) - .routeShortName("routeShortName") - .shapeId("shapeId") - .timeZone("timeZone") - .tripHeadsign("tripHeadsign") - .tripShortName("tripShortName") - .build() - ) + ), ) - .build() ) - .build() + ) ) .build() From 243e8be5b069d7ce9f2d83904cfd6ffb140ab2b9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Dec 2024 17:37:19 +0000 Subject: [PATCH 2/2] release: 0.1.0-alpha.42 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ README.md | 4 ++-- build.gradle.kts | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 9c28aae..859ebd3 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0-alpha.41" + ".": "0.1.0-alpha.42" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bbfbda..fe8ed6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.1.0-alpha.42 (2024-12-24) + +Full Changelog: [v0.1.0-alpha.41...v0.1.0-alpha.42](https://github.com/OneBusAway/kotlin-sdk/compare/v0.1.0-alpha.41...v0.1.0-alpha.42) + +### Chores + +* **internal:** codegen related update ([#129](https://github.com/OneBusAway/kotlin-sdk/issues/129)) ([e11af57](https://github.com/OneBusAway/kotlin-sdk/commit/e11af57399b503d4df57b85a24bdf7c719e2a4cf)) + ## 0.1.0-alpha.41 (2024-12-24) Full Changelog: [v0.1.0-alpha.40...v0.1.0-alpha.41](https://github.com/OneBusAway/kotlin-sdk/compare/v0.1.0-alpha.40...v0.1.0-alpha.41) diff --git a/README.md b/README.md index ed9e046..c763293 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ The REST API documentation can be foundĀ on [developer.onebusaway.org](https://d ```kotlin -implementation("org.onebusaway:onebusaway-sdk-kotlin:0.1.0-alpha.41") +implementation("org.onebusaway:onebusaway-sdk-kotlin:0.1.0-alpha.42") ``` #### Maven @@ -30,7 +30,7 @@ implementation("org.onebusaway:onebusaway-sdk-kotlin:0.1.0-alpha.41") org.onebusaway onebusaway-sdk-kotlin - 0.1.0-alpha.41 + 0.1.0-alpha.42 ``` diff --git a/build.gradle.kts b/build.gradle.kts index b1f4573..03afc3f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,7 +4,7 @@ plugins { allprojects { group = "org.onebusaway" - version = "0.1.0-alpha.41" // x-release-please-version + version = "0.1.0-alpha.42" // x-release-please-version } nexusPublishing {