Skip to content

Commit 411677e

Browse files
authored
Merge pull request #717 from keikeicheung/main
remove lookupOrigKeyToTreeKey map, reduce two concurrent map to one t…
2 parents b529c90 + bb30c79 commit 411677e

2 files changed

Lines changed: 10 additions & 23 deletions

File tree

vuu/src/main/scala/org/finos/vuu/core/tree/TreeSessionTableImpl.scala

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
package org.finos.vuu.core.tree
22

33
import com.typesafe.scalalogging.StrictLogging
4+
import org.finos.toolbox.collection.array.ImmutableArray
5+
import org.finos.toolbox.jmx.MetricsProvider
6+
import org.finos.toolbox.text.AsciiUtil
7+
import org.finos.toolbox.time.Clock
48
import org.finos.vuu.api.{GroupByColumns, GroupByTableDef, TableDef}
59
import org.finos.vuu.core.table._
610
import org.finos.vuu.net.ClientSessionId
711
import org.finos.vuu.provider.JoinTableProvider
812
import org.finos.vuu.viewport._
9-
import org.finos.toolbox.collection.array.ImmutableArray
10-
import org.finos.toolbox.jmx.MetricsProvider
11-
import org.finos.toolbox.text.AsciiUtil
12-
import org.finos.toolbox.time.Clock
13-
import org.finos.vuu.viewport.tree.{EmptyTree, Tree, TreeNode, TreeNodeState}
13+
import org.finos.vuu.viewport.tree.{EmptyTree, Tree, TreeNode}
1414

1515
import java.util.concurrent.{ConcurrentHashMap, ConcurrentMap}
1616
import scala.jdk.CollectionConverters._
@@ -248,17 +248,11 @@ class TreeSessionTableImpl(val source: RowSource, val session: ClientSessionId,
248248
// //this.notifyListeners(treeKey, false)
249249
// }
250250

251-
def mapKeyToTreeKey(rowUpdate: RowKeyUpdate): RowKeyUpdate = {
251+
def mapKeyToTreeKey(nodeKey: String, treeKey:String, rowUpdate: RowKeyUpdate): RowKeyUpdate = {
252252

253-
val node = this.getTree.getNodeByOriginalKey(rowUpdate.key)
254-
255-
val mapped = if (node != null) {
256-
rowUpdate.copy(key = node.key, source = this)
257-
} else {
258-
null
259-
}
253+
val mapped = rowUpdate.copy(key = treeKey, source = this)
260254
if(mapped != null) {
261-
logger.debug(s"Found node $node for originalKey ${rowUpdate.key} mapped to ${node.key}")
255+
logger.debug(s"Found node for originalKey ${nodeKey} mapped to ${treeKey}")
262256
}
263257

264258
mapped
@@ -276,7 +270,7 @@ class TreeSessionTableImpl(val source: RowSource, val session: ClientSessionId,
276270

277271
logger.debug(s"Adding key observer${originalKey} for tree key ${key}")
278272

279-
val wappedObserver = new WrappedUpdateHandlingKeyObserver[RowKeyUpdate](mapKeyToTreeKey, observer, originalKey)
273+
val wappedObserver = new WrappedUpdateHandlingKeyObserver[RowKeyUpdate](mapKeyToTreeKey(originalKey, key, _), observer, originalKey)
280274

281275
wrappedObservers.put(key, wappedObserver)
282276

vuu/src/main/scala/org/finos/vuu/viewport/tree/Tree.scala

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ object EmptyTree extends Tree {
2424

2525
override def getNode(key: String): TreeNode = null
2626

27-
override def getNodeByOriginalKey(key: String): TreeNode = null
28-
2927
override def hasChild(parent: TreeNode, child: TreeNode): Boolean = false
3028

3129
override def toKeys(): ImmutableArray[String] = ImmutableArray.empty[String]
@@ -61,8 +59,6 @@ trait Tree {
6159

6260
def getNode(key: String): TreeNode
6361

64-
def getNodeByOriginalKey(key: String): TreeNode
65-
6662
def hasChild(parent: TreeNode, child: TreeNode): Boolean
6763

6864
def toKeys(): ImmutableArray[String]
@@ -190,13 +186,10 @@ class TreeImpl(private val rootNode: TreeNode,
190186
lookup.get(key)
191187
}
192188

193-
def getNodeByOriginalKey(originalKey: String): TreeNode = {
194-
lookupOrigKeyToTreeKey.get(originalKey)
195-
}
196189

197190
def setNode(node: TreeNode): Unit = {
198191
lookup.putIfAbsent(node.key, node)
199-
lookupOrigKeyToTreeKey.putIfAbsent(node.originalKey, node)
192+
// lookupOrigKeyToTreeKey.putIfAbsent(node.originalKey, node)
200193
}
201194

202195
def hasChild(parent: TreeNode, child: TreeNode): Boolean = parent.getChildren.contains(child)

0 commit comments

Comments
 (0)