Skip to content

Commit 383be43

Browse files
committed
chore(model-datastructure): nullability in Hamt change visitor
1 parent 714e02d commit 383be43

File tree

6 files changed

+18
-17
lines changed

6 files changed

+18
-17
lines changed

model-datastructure/src/commonMain/kotlin/org/modelix/model/lazy/CLTree.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -444,23 +444,23 @@ class CLTree : ITree, IBulkTree {
444444
return changesOnly
445445
}
446446

447-
override fun entryAdded(key: Long, value: KVEntryReference<CPNode>?) {
447+
override fun entryAdded(key: Long, value: KVEntryReference<CPNode>) {
448448
if (visitor is ITreeChangeVisitorEx) {
449449
createElement(value, bulkQuery).map { element ->
450450
visitor.nodeAdded(element!!.id)
451451
}
452452
}
453453
}
454454

455-
override fun entryRemoved(key: Long, value: KVEntryReference<CPNode>?) {
455+
override fun entryRemoved(key: Long, value: KVEntryReference<CPNode>) {
456456
if (visitor is ITreeChangeVisitorEx) {
457457
oldVersion.createElement(value, bulkQuery).map { element ->
458458
visitor.nodeRemoved(element!!.id)
459459
}
460460
}
461461
}
462462

463-
override fun entryChanged(key: Long, oldValue: KVEntryReference<CPNode>?, newValue: KVEntryReference<CPNode>?) {
463+
override fun entryChanged(key: Long, oldValue: KVEntryReference<CPNode>, newValue: KVEntryReference<CPNode>) {
464464
oldVersion.createElement(oldValue, bulkQuery).map { oldElement ->
465465
createElement(newValue, bulkQuery).map { newElement ->
466466
if (oldElement!!::class != newElement!!::class) {

model-datastructure/src/commonMain/kotlin/org/modelix/model/lazy/CLVersion.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -344,19 +344,19 @@ private fun computeDelta(keyValueStore: IKeyValueStore, versionHash: String, bas
344344
oldTree.nodesMap!!,
345345
object : CPHamtNode.IChangeVisitor {
346346
override fun visitChangesOnly(): Boolean = false
347-
override fun entryAdded(key: Long, value: KVEntryReference<CPNode>?) {
347+
override fun entryAdded(key: Long, value: KVEntryReference<CPNode>) {
348348
changedNodeIds += key
349349
if (value != null) bulkQuery.get(value)
350350
}
351351

352-
override fun entryRemoved(key: Long, value: KVEntryReference<CPNode>?) {
352+
override fun entryRemoved(key: Long, value: KVEntryReference<CPNode>) {
353353
changedNodeIds += key
354354
}
355355

356356
override fun entryChanged(
357357
key: Long,
358-
oldValue: KVEntryReference<CPNode>?,
359-
newValue: KVEntryReference<CPNode>?,
358+
oldValue: KVEntryReference<CPNode>,
359+
newValue: KVEntryReference<CPNode>,
360360
) {
361361
changedNodeIds += key
362362
if (newValue != null) bulkQuery.get(newValue)

model-datastructure/src/commonMain/kotlin/org/modelix/model/persistent/CPHamtInternal.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ class CPHamtInternal(
169169
return create(newBitmap, newChildren)
170170
}
171171

172-
override fun visitEntries(bulkQuery: IBulkQuery, visitor: (Long, KVEntryReference<CPNode>?) -> Unit): IBulkQuery.Value<Unit> {
172+
override fun visitEntries(bulkQuery: IBulkQuery, visitor: (Long, KVEntryReference<CPNode>) -> Unit): IBulkQuery.Value<Unit> {
173173
return bulkQuery.map(data.children.asIterable()) { bulkQuery.get(it) }.mapBulk { children ->
174174
bulkQuery.map(children) { it!!.visitEntries(bulkQuery, visitor) }.map { }
175175
}

model-datastructure/src/commonMain/kotlin/org/modelix/model/persistent/CPHamtLeaf.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class CPHamtLeaf(
6767
return bulkQuery.constant(if (key == this.key) value else null)
6868
}
6969

70-
override fun visitEntries(bulkQuery: IBulkQuery, visitor: (Long, KVEntryReference<CPNode>?) -> Unit): IBulkQuery.Value<Unit> {
70+
override fun visitEntries(bulkQuery: IBulkQuery, visitor: (Long, KVEntryReference<CPNode>) -> Unit): IBulkQuery.Value<Unit> {
7171
return bulkQuery.constant(visitor(key, value))
7272
}
7373

@@ -83,17 +83,18 @@ class CPHamtLeaf(
8383
}
8484
} else {
8585
var oldValue: KVEntryReference<CPNode>? = null
86-
val bp = { k: Long?, v: KVEntryReference<CPNode>? ->
86+
val bp = { k: Long, v: KVEntryReference<CPNode> ->
8787
if (k == key) {
8888
oldValue = v
8989
} else {
90-
visitor.entryRemoved(k!!, v)
90+
visitor.entryRemoved(k, v)
9191
}
9292
}
9393
oldNode!!.visitEntries(bulkQuery, bp).onSuccess {
94+
val oldValue = oldValue
9495
if (oldValue == null) {
9596
visitor.entryAdded(key, value)
96-
} else if (oldValue?.getHash() !== value.getHash()) {
97+
} else if (oldValue.getHash() !== value.getHash()) {
9798
visitor.entryChanged(key, oldValue, value)
9899
}
99100
}

model-datastructure/src/commonMain/kotlin/org/modelix/model/persistent/CPHamtNode.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,14 @@ abstract class CPHamtNode : IKVValue {
6969
abstract fun get(key: Long, shift: Int, bulkQuery: IBulkQuery): IBulkQuery.Value<KVEntryReference<CPNode>?>
7070
abstract fun put(key: Long, value: KVEntryReference<CPNode>?, shift: Int, store: IDeserializingKeyValueStore): CPHamtNode?
7171
abstract fun remove(key: Long, shift: Int, store: IDeserializingKeyValueStore): CPHamtNode?
72-
abstract fun visitEntries(bulkQuery: IBulkQuery, visitor: (Long, KVEntryReference<CPNode>?) -> Unit): IBulkQuery.Value<Unit>
72+
abstract fun visitEntries(bulkQuery: IBulkQuery, visitor: (Long, KVEntryReference<CPNode>) -> Unit): IBulkQuery.Value<Unit>
7373
abstract fun visitChanges(oldNode: CPHamtNode?, shift: Int, visitor: IChangeVisitor, bulkQuery: IBulkQuery)
7474
fun visitChanges(oldNode: CPHamtNode?, visitor: IChangeVisitor, bulkQuery: IBulkQuery) = visitChanges(oldNode, 0, visitor, bulkQuery)
7575
interface IChangeVisitor {
7676
fun visitChangesOnly(): Boolean
77-
fun entryAdded(key: Long, value: KVEntryReference<CPNode>?)
78-
fun entryRemoved(key: Long, value: KVEntryReference<CPNode>?)
79-
fun entryChanged(key: Long, oldValue: KVEntryReference<CPNode>?, newValue: KVEntryReference<CPNode>?)
77+
fun entryAdded(key: Long, value: KVEntryReference<CPNode>)
78+
fun entryRemoved(key: Long, value: KVEntryReference<CPNode>)
79+
fun entryChanged(key: Long, oldValue: KVEntryReference<CPNode>, newValue: KVEntryReference<CPNode>)
8080
}
8181

8282
companion object {

model-datastructure/src/commonMain/kotlin/org/modelix/model/persistent/CPHamtSingle.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class CPHamtSingle(
112112
return bulkQuery[child].map { childData -> childData!! }
113113
}
114114

115-
override fun visitEntries(bulkQuery: IBulkQuery, visitor: (Long, KVEntryReference<CPNode>?) -> Unit): IBulkQuery.Value<Unit> {
115+
override fun visitEntries(bulkQuery: IBulkQuery, visitor: (Long, KVEntryReference<CPNode>) -> Unit): IBulkQuery.Value<Unit> {
116116
return getChild(bulkQuery).mapBulk { it.visitEntries(bulkQuery, visitor) }
117117
}
118118

0 commit comments

Comments
 (0)