]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/VariableReference.java
Merge commit 'ad8333027322fda6b9a8a524c7a7e15a54c52f38'
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / variable / VariableReference.java
1 package org.simantics.db.layer0.variable;\r
2 \r
3 import org.simantics.databoard.type.Datatype;\r
4 import org.simantics.utils.ObjectUtils;\r
5 \r
6 /**\r
7  * @author Tuukka Lehtonen\r
8  */\r
9 public class VariableReference {\r
10 \r
11     public final RVI variableId;\r
12 \r
13     public final Datatype datatype;\r
14 \r
15     public String label;\r
16 \r
17     public static VariableReference of(RVI variableId, Datatype datatype, String label) {\r
18         return new VariableReference(variableId, datatype, label);\r
19     }\r
20 \r
21     public VariableReference(RVI variableId, Datatype datatype, String label) {\r
22         if (variableId == null)\r
23             throw new NullPointerException("null variable reference");\r
24         this.variableId = variableId;\r
25         this.datatype = datatype;\r
26         this.label = label;\r
27     }\r
28     \r
29     public RVI getVariableId() {\r
30         return variableId;\r
31     }\r
32 \r
33     public Datatype getDatatype() {\r
34         return datatype;\r
35     }\r
36 \r
37     public String getLabel() {\r
38         return label;\r
39     }\r
40 \r
41     @Override\r
42     public int hashCode() {\r
43         return ObjectUtils.hashCode(datatype) * 31 + variableId.hashCode();\r
44     }\r
45 \r
46     @Override\r
47     public boolean equals(Object obj) {\r
48         if (this == obj)\r
49             return true;\r
50         if (obj == null)\r
51             return false;\r
52         if (getClass() != obj.getClass())\r
53             return false;\r
54         VariableReference other = (VariableReference) obj;\r
55         return variableId.equals(other.variableId) && ObjectUtils.objectEquals(datatype, other.datatype);\r
56 //                && ObjectUtils.objectEquals(label, other.label);\r
57     }\r
58 \r
59     @Override\r
60     public String toString() {\r
61         StringBuilder sb = new StringBuilder();\r
62         sb.append(variableId);\r
63         if (datatype != null)\r
64             sb.append(" : ").append(datatype.toSingleLineString());\r
65         if (label != null)\r
66             sb.append(" (").append(label).append(")");\r
67         return sb.toString();\r
68     }\r
69 \r
70 }\r