Skip to content

Commit 1d3fae2

Browse files
authored
#1748 Optimise JoinColumn hashCode and toString (#1749)
1 parent 334b69b commit 1d3fae2

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

vuu/src/main/scala/org/finos/vuu/core/table/Column.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,6 @@ case class SimpleColumn(name: String, index: Int, dataType: Class[_]) extends Co
148148
}
149149

150150
class AliasedJoinColumn(name: String, index: Int, dataType: Class[_], sourceTable: TableDef, sourceColumn: Column) extends JoinColumn(name, index, dataType, sourceTable, sourceColumn) {
151-
override def hashCode(): Int = (sourceTable.name + "." + sourceColumn + "@" + name).hashCode
152151

153152
override def getData(data: RowData): Any = data.get(sourceColumn.name)
154153

@@ -157,9 +156,12 @@ class AliasedJoinColumn(name: String, index: Int, dataType: Class[_], sourceTabl
157156

158157
class JoinColumn(name: String, index: Int, dataType: Class[_], val sourceTable: TableDef, val sourceColumn: Column) extends SimpleColumn(name, index, dataType) {
159158

160-
override def toString: String = s"JoinColumn($name, ${sourceTable.name}:${sourceColumn.name})"
159+
private lazy val lazyToString = s"${sourceTable.name}.$sourceColumn@$name"
160+
private lazy val lazyHash = lazyToString.hashCode
161161

162-
override def hashCode(): Int = (sourceTable.name + "." + sourceColumn + "@" + name).hashCode
162+
override def toString: String = lazyToString
163+
164+
override def hashCode(): Int = lazyHash
163165

164166
override def getDataFullyQualified(data: RowData): Any = data.get(sourceTable.fullyQuallifiedColumnName(name))
165167

0 commit comments

Comments
 (0)