I apologize in advance if I wrote my question wrong. I need the following class (AddressPointMo) to be serializable because I am sending this object using the HttpTransportSE :: call method. I have searched many reports and cannot find a solution.
After executing HttpTransportSE :: call, it gets Cannot serialize: com.xxx.ksavi.android.model.AddressPointMo@f0678a47
open class AddressPointMo :Serializable, MobileTransferObject() {
@PrimaryKey
@NonNull
@ColumnInfo
var id: Long? = null
set(id) {
moVerifyChanged(this.id, id)
field = id
}
@ColumnInfo
var cityName: String? = null
set(cityName) {
moVerifyChanged(this.cityName, cityName)
field = cityName
}
@ColumnInfo
var streetName: String? = null
set(streetName) {
moVerifyChanged(this.streetName, streetName)
field = streetName
}
@ColumnInfo
var houseNumber: String? = null
set(houseNumber) {
moVerifyChanged(this.houseNumber, houseNumber)
field = houseNumber
}
@ColumnInfo
var postalCode: String? = null
set(postalCode) {
moVerifyChanged(this.postalCode, postalCode)
field = postalCode
}
@ColumnInfo
var commonName: String? = null
set(commonName) {
moVerifyChanged(this.commonName, commonName)
field = commonName
}
@ColumnInfo
var addressUnitCount: Long? = null
set(addressUnitCount) {
moVerifyChanged(this.addressUnitCount, addressUnitCount)
field = addressUnitCount
}
@TypeConverters(DatabaseConverter::class)
@ColumnInfo
@Contextual
var location: LocationMo? = null
set(location) {
moVerifyChanged(this.location, location)
field = location
}
@TypeConverters(DatabaseConverter::class)
@ColumnInfo
var addressUnitsPopulated: Boolean = false
set(addressUnitsPopulated) {
moVerifyChanged(this.addressUnitsPopulated, addressUnitsPopulated)
field = addressUnitsPopulated
}
@TypeConverters(DatabaseConverter::class)
@ColumnInfo
var addressUnits: AddressUnitMoList? = null
set(addressUnits) {
moVerifyChanged(this.addressUnits, addressUnits)
field = addressUnits
}
@ColumnInfo
var sequenceNumber: Int? = null;
override fun moIsChanged(): Boolean {
return super.moIsChanged() || location?.moIsChanged() ?: false || (addressUnits?.list?.any { it.moIsChanged() }) ?: false
}
override fun hashCode(): Int {
val prime = 31
var result = super.hashCode()
result = prime * result + if (id == null) 0 else id!!.hashCode()
result = prime * result + if (cityName == null) 0 else cityName!!.hashCode()
result = prime * result + if (streetName == null) 0 else streetName!!.hashCode()
result = prime * result + if (houseNumber == null) 0 else houseNumber!!.hashCode()
result = prime * result + if (postalCode == null) 0 else postalCode!!.hashCode()
result = prime * result + if (commonName == null) 0 else commonName!!.hashCode()
result = prime * result + (location?.hashCode() ?: 0)
result = prime * result + (addressUnitsPopulated?.hashCode() ?: 0)
result = prime * result + (addressUnits?.hashCode() ?: 0)
return result
}
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
if (other == null) {
return false
}
if (other !is AddressPointMo) {
return false
}
val obj = other as AddressPointMo?
if (id != obj?.id) {
return false
}
if (cityName != obj?.cityName) {
return false
}
if (streetName != obj?.streetName) {
return false
}
if (houseNumber != obj?.houseNumber) {
return false
}
if (postalCode != obj?.postalCode) {
return false
}
if (commonName != obj?.commonName) {
return false
}
if (location != obj?.location) {
return false
}
if (addressUnits != obj?.addressUnits) {
return false
}
if (addressUnitsPopulated != obj?.addressUnitsPopulated) {
return false
}
return true
}
}```