Add json import/export handling of mmFloor and mmBar

This commit is contained in:
Claude Brisson
2023-11-05 16:10:12 +01:00
parent e694b0431e
commit 41aad62e8f

View File

@@ -307,12 +307,15 @@ fun Pairing.Companion.fromJson(json: Json.Object): Pairing {
val placementParams = json.getArray("placement")?.let { PlacementParams.fromJson(it) } ?: defaultParams.placementParams val placementParams = json.getArray("placement")?.let { PlacementParams.fromJson(it) } ?: defaultParams.placementParams
return when (type) { return when (type) {
SWISS -> Swiss(pairingParams, placementParams) SWISS -> Swiss(pairingParams, placementParams)
MAC_MAHON -> MacMahon(pairingParams, placementParams) MAC_MAHON -> MacMahon(pairingParams, placementParams).also { mm ->
mm.mmFloor = json.getInt("mmFloor") ?: -20
mm.mmBar = json.getInt("mmBar") ?: 0
}
ROUND_ROBIN -> RoundRobin(pairingParams, placementParams) ROUND_ROBIN -> RoundRobin(pairingParams, placementParams)
} }
} }
fun Pairing.toJson() = Json.Object( fun Pairing.toJson(): Json.Object = Json.MutableObject(
"type" to type.name, "type" to type.name,
"base" to pairingParams.base.toJson(), "base" to pairingParams.base.toJson(),
"main" to pairingParams.main.toJson(), "main" to pairingParams.main.toJson(),
@@ -320,4 +323,9 @@ fun Pairing.toJson() = Json.Object(
"geo" to pairingParams.geo.toJson(), "geo" to pairingParams.geo.toJson(),
"handicap" to pairingParams.handicap.toJson(), "handicap" to pairingParams.handicap.toJson(),
"placement" to placementParams.toJson() "placement" to placementParams.toJson()
) ).also { ret ->
if (this is MacMahon) {
ret["mmFloor"] = mmFloor
ret["mmBar"] = mmBar
}
}