1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2024-12-25 20:37:59 +01:00

Transform CertificationSet.certifications to backing property to achieve read-onlyness

This commit is contained in:
Paul Schaub 2023-07-03 15:03:27 +02:00
parent d2c768ab86
commit f410fb9bfb
Signed by: vanitasvitae
GPG key ID: 62BEE9264BF17311

View file

@ -11,14 +11,22 @@ package org.pgpainless.wot.dijkstra.sq
* *
* @param issuer synopsis of the certificate that issued the [Certifications][Certification] * @param issuer synopsis of the certificate that issued the [Certifications][Certification]
* @param target synopsis of the certificate that is targeted by the [Certifications][Certification] * @param target synopsis of the certificate that is targeted by the [Certifications][Certification]
* @param certifications [MutableMap] keyed by user-ids, whose values are [MutableLists][MutableList] of * @param certifications [Map] keyed by user-ids, whose values are [Lists][List] of
* [Certifications][Certification] that are calculated over the key user-id. Note, that the key can also be null for * [Certifications][Certification] that are calculated over the key user-id. Note, that the key can also be null for
* [Certifications][Certification] over the targets primary key. * [Certifications][Certification] over the targets primary key.
*/ */
data class CertificationSet( class CertificationSet(
val issuer: CertSynopsis, val issuer: CertSynopsis,
val target: CertSynopsis, val target: CertSynopsis,
val certifications: MutableMap<String?, MutableList<Certification>>) { certifications: Map<String?, List<Certification>>) {
init {
certifications.forEach { (t, u) -> _certifications[t] = u.toMutableList() }
}
private val _certifications: MutableMap<String?, MutableList<Certification>> = mutableMapOf()
val certifications: Map<String?, List<Certification>>
get() = _certifications.toMutableMap()
companion object { companion object {
@ -76,10 +84,10 @@ data class CertificationSet(
require(issuer.fingerprint == certification.issuer.fingerprint) { "Issuer fingerprint mismatch." } require(issuer.fingerprint == certification.issuer.fingerprint) { "Issuer fingerprint mismatch." }
require(target.fingerprint == certification.target.fingerprint) { "Target fingerprint mismatch." } require(target.fingerprint == certification.target.fingerprint) { "Target fingerprint mismatch." }
var certificationsForUserId: MutableList<Certification>? = certifications[certification.userId] var certificationsForUserId: MutableList<Certification>? = _certifications[certification.userId]
if (certificationsForUserId == null) { if (certificationsForUserId == null) {
certificationsForUserId = ArrayList() certificationsForUserId = ArrayList()
certifications[certification.userId] = certificationsForUserId _certifications[certification.userId] = certificationsForUserId
} }
certificationsForUserId.add(certification) certificationsForUserId.add(certification)
} }