X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Fvariable%2FVariableNode.java;fp=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Fvariable%2FVariableNode.java;h=98f63d3771a80d67a7c48c5f47b81de29ae9c706;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/VariableNode.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/VariableNode.java new file mode 100644 index 000000000..98f63d377 --- /dev/null +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/VariableNode.java @@ -0,0 +1,38 @@ +package org.simantics.db.layer0.variable; + +public class VariableNode { + public final NodeSupport support; + public final Object node; + private int hash; + public VariableNode(NodeSupport support, Object node) { + assert(support != null); + this.support = support; + this.node = node; + } + + private int computeHash() { + return 31*support.hashCode() + 41*node.hashCode(); + } + + @Override + public int hashCode() { + if (hash == 0) + hash = computeHash(); + return hash; + } + + @Override + public boolean equals(Object object) { + if (this == object) + return true; + else if (object == null) + return false; + else if (!(object instanceof VariableNode)) + return false; + VariableNode r = (VariableNode)object; + if (r.hashCode() != hashCode()) + return false; + return r.support.equals(support) && r.node.equals(node); + } + +}