Skip to content

Commit eac0630

Browse files
committed
chore: dead code elimination
1 parent 27b1120 commit eac0630

File tree

3 files changed

+61
-81
lines changed

3 files changed

+61
-81
lines changed

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

Lines changed: 61 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -420,84 +420,82 @@ class CLTree : ITree, IBulkTree {
420420
fun visitChanges(oldVersion: ITree, visitor: ITreeChangeVisitor, bulkQuery: IBulkQuery) {
421421
require(oldVersion is CLTree) { "Diff is only supported between two instances of CLTree" }
422422
if (data.idToHash == oldVersion.data.idToHash) return
423-
NonBulkQuery.runWithDisabled {
424-
val changesOnly = visitor !is ITreeChangeVisitorEx
425-
nodesMap!!.visitChanges(
426-
oldVersion.nodesMap,
427-
object : CPHamtNode.IChangeVisitor {
428-
override fun visitChangesOnly(): Boolean {
429-
return changesOnly
430-
}
423+
val changesOnly = visitor !is ITreeChangeVisitorEx
424+
nodesMap!!.visitChanges(
425+
oldVersion.nodesMap,
426+
object : CPHamtNode.IChangeVisitor {
427+
override fun visitChangesOnly(): Boolean {
428+
return changesOnly
429+
}
431430

432-
override fun entryAdded(key: Long, value: KVEntryReference<CPNode>?) {
433-
if (visitor is ITreeChangeVisitorEx) {
434-
createElement(value, bulkQuery).map { element ->
435-
visitor.nodeAdded(element!!.id)
436-
}
431+
override fun entryAdded(key: Long, value: KVEntryReference<CPNode>?) {
432+
if (visitor is ITreeChangeVisitorEx) {
433+
createElement(value, bulkQuery).map { element ->
434+
visitor.nodeAdded(element!!.id)
437435
}
438436
}
437+
}
439438

440-
override fun entryRemoved(key: Long, value: KVEntryReference<CPNode>?) {
441-
if (visitor is ITreeChangeVisitorEx) {
442-
oldVersion.createElement(value, bulkQuery).map { element ->
443-
visitor.nodeRemoved(element!!.id)
444-
}
439+
override fun entryRemoved(key: Long, value: KVEntryReference<CPNode>?) {
440+
if (visitor is ITreeChangeVisitorEx) {
441+
oldVersion.createElement(value, bulkQuery).map { element ->
442+
visitor.nodeRemoved(element!!.id)
445443
}
446444
}
445+
}
447446

448-
override fun entryChanged(key: Long, oldValue: KVEntryReference<CPNode>?, newValue: KVEntryReference<CPNode>?) {
449-
oldVersion.createElement(oldValue, bulkQuery).map { oldElement ->
450-
createElement(newValue, bulkQuery).map { newElement ->
451-
if (oldElement!!::class != newElement!!::class) {
452-
throw RuntimeException("Unsupported type change of node " + key + "from " + oldElement::class.simpleName + " to " + newElement::class.simpleName)
453-
}
454-
if (oldElement.parentId != newElement.parentId || oldElement.roleInParent != newElement.roleInParent) {
455-
visitor.containmentChanged(key)
456-
}
457-
oldElement.propertyRoles.asSequence()
458-
.plus(newElement.propertyRoles.asSequence())
459-
.distinct()
460-
.forEach { role: String ->
461-
if (oldElement.getPropertyValue(role) != newElement.getPropertyValue(role)) {
462-
visitor.propertyChanged(newElement.id, role)
463-
}
447+
override fun entryChanged(key: Long, oldValue: KVEntryReference<CPNode>?, newValue: KVEntryReference<CPNode>?) {
448+
oldVersion.createElement(oldValue, bulkQuery).map { oldElement ->
449+
createElement(newValue, bulkQuery).map { newElement ->
450+
if (oldElement!!::class != newElement!!::class) {
451+
throw RuntimeException("Unsupported type change of node " + key + "from " + oldElement::class.simpleName + " to " + newElement::class.simpleName)
452+
}
453+
if (oldElement.parentId != newElement.parentId || oldElement.roleInParent != newElement.roleInParent) {
454+
visitor.containmentChanged(key)
455+
}
456+
oldElement.propertyRoles.asSequence()
457+
.plus(newElement.propertyRoles.asSequence())
458+
.distinct()
459+
.forEach { role: String ->
460+
if (oldElement.getPropertyValue(role) != newElement.getPropertyValue(role)) {
461+
visitor.propertyChanged(newElement.id, role)
464462
}
465-
oldElement.referenceRoles.asSequence()
466-
.plus(newElement.referenceRoles.asSequence())
467-
.distinct()
468-
.forEach { role: String ->
469-
if (oldElement.getReferenceTarget(role) != newElement.getReferenceTarget(role)) {
470-
visitor.referenceChanged(newElement.id, role)
471-
}
463+
}
464+
oldElement.referenceRoles.asSequence()
465+
.plus(newElement.referenceRoles.asSequence())
466+
.distinct()
467+
.forEach { role: String ->
468+
if (oldElement.getReferenceTarget(role) != newElement.getReferenceTarget(role)) {
469+
visitor.referenceChanged(newElement.id, role)
472470
}
471+
}
473472

474-
bulkQuery.map(listOf(oldVersion.getChildren(oldElement, bulkQuery), getChildren(newElement, bulkQuery))) { it }.onSuccess { childrenLists ->
475-
val (oldChildrenList, newChildrenList) = childrenLists
476-
val oldChildren: MutableMap<String?, MutableList<CPNode>> = HashMap()
477-
val newChildren: MutableMap<String?, MutableList<CPNode>> = HashMap()
478-
oldChildrenList.forEach { oldChildren.getOrPut(it.roleInParent, { ArrayList() }).add(it) }
479-
newChildrenList.forEach { newChildren.getOrPut(it.roleInParent, { ArrayList() }).add(it) }
480-
481-
val roles: MutableSet<String?> = HashSet()
482-
roles.addAll(oldChildren.keys)
483-
roles.addAll(newChildren.keys)
484-
for (role in roles) {
485-
val oldChildrenInRole = oldChildren[role]
486-
val newChildrenInRole = newChildren[role]
487-
val oldValues = oldChildrenInRole?.map { it.id }
488-
val newValues = newChildrenInRole?.map { it.id }
489-
if (oldValues != newValues) {
490-
visitor.childrenChanged(newElement.id, role)
491-
}
473+
bulkQuery.map(listOf(oldVersion.getChildren(oldElement, bulkQuery), getChildren(newElement, bulkQuery))) { it }.onSuccess { childrenLists ->
474+
val (oldChildrenList, newChildrenList) = childrenLists
475+
val oldChildren: MutableMap<String?, MutableList<CPNode>> = HashMap()
476+
val newChildren: MutableMap<String?, MutableList<CPNode>> = HashMap()
477+
oldChildrenList.forEach { oldChildren.getOrPut(it.roleInParent, { ArrayList() }).add(it) }
478+
newChildrenList.forEach { newChildren.getOrPut(it.roleInParent, { ArrayList() }).add(it) }
479+
480+
val roles: MutableSet<String?> = HashSet()
481+
roles.addAll(oldChildren.keys)
482+
roles.addAll(newChildren.keys)
483+
for (role in roles) {
484+
val oldChildrenInRole = oldChildren[role]
485+
val newChildrenInRole = newChildren[role]
486+
val oldValues = oldChildrenInRole?.map { it.id }
487+
val newValues = newChildrenInRole?.map { it.id }
488+
if (oldValues != newValues) {
489+
visitor.childrenChanged(newElement.id, role)
492490
}
493491
}
494492
}
495493
}
496494
}
497-
},
498-
bulkQuery,
499-
)
500-
}
495+
}
496+
},
497+
bulkQuery,
498+
)
501499
}
502500

503501
protected fun deleteElements(node: CPNode, idToHash: CPHamtNode): CPHamtNode? {

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

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@ package org.modelix.model.lazy
1818
import org.modelix.model.persistent.IKVValue
1919

2020
class NonBulkQuery(private val store: IDeserializingKeyValueStore) : IBulkQuery {
21-
init {
22-
if (instantiationDisabled) throw IllegalStateException("instantiation not allowed")
23-
}
24-
2521
override fun <I, O> map(input_: Iterable<I>, f: (I) -> IBulkQuery.Value<O>): IBulkQuery.Value<List<O>> {
2622
val list = input_.map(f).map { it.execute() }.toList()
2723
return Value(list)
@@ -52,17 +48,4 @@ class NonBulkQuery(private val store: IDeserializingKeyValueStore) : IBulkQuery
5248
handler(value)
5349
}
5450
}
55-
56-
companion object {
57-
private var instantiationDisabled = false
58-
fun <T> runWithDisabled(body: () -> T): T {
59-
// val wasDisabled = instantiationDisabled
60-
// try {
61-
// instantiationDisabled = true
62-
return body()
63-
// } finally {
64-
// instantiationDisabled = wasDisabled
65-
// }
66-
}
67-
}
6851
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,6 @@ class CPNode private constructor(
184184
override fun getReferencedEntries(): List<KVEntryReference<IKVValue>> = listOf()
185185

186186
companion object {
187-
private val EMPTY_LONG_ARRAY = LongArray(0)
188187
val DESERIALIZER = { s: String -> deserialize(s) }
189188

190189
@JvmStatic

0 commit comments

Comments
 (0)