]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.history/src/org/simantics/history/HistorySamplerItem.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.history / src / org / simantics / history / HistorySamplerItem.java
1 package org.simantics.history;\r
2 \r
3 import org.simantics.databoard.accessor.StreamAccessor;\r
4 import org.simantics.databoard.accessor.error.AccessorException;\r
5 import org.simantics.history.util.StreamIterator;\r
6 \r
7 public class HistorySamplerItem implements Comparable<HistorySamplerItem> {\r
8         \r
9         Collector collector;\r
10         HistoryManager history;         // History source for this item\r
11         String historyItemId;\r
12 \r
13         // State data\r
14         StreamAccessor accessor;                        // Stream accessor\r
15         public StreamIterator iter;\r
16     public int chartDataId;\r
17         \r
18         public HistorySamplerItem(Collector collector, HistoryManager history, String historyItemId, int identityHashCode) {\r
19                 this.collector = collector;\r
20                 this.history = history;\r
21                 this.historyItemId = historyItemId;\r
22                 this.chartDataId = identityHashCode;\r
23         }\r
24         \r
25         public void open() throws HistoryException {\r
26                 accessor = history.openStream(historyItemId, "r");\r
27                 iter = new StreamIterator( accessor );\r
28         }\r
29         \r
30         public void close() {\r
31                 if (accessor!=null) {\r
32                         try {\r
33                                 accessor.close();\r
34                         } catch (AccessorException e) {\r
35                         }\r
36                 }\r
37                 accessor = null;\r
38                 iter = null;\r
39         }\r
40 \r
41         @Override\r
42         public int compareTo(HistorySamplerItem o) {\r
43                 int i;\r
44                 i = historyItemId.compareTo(o.historyItemId);                   \r
45                 if (i!=0) return i;\r
46                 return 0;\r
47         }\r
48         \r
49         @Override\r
50         public int hashCode() {\r
51                 int code = 0x2304;\r
52                 code = 13*code + historyItemId.hashCode();\r
53                 code = 13*code + history.hashCode();                    \r
54                 return code;\r
55         }\r
56         \r
57         @Override\r
58         public boolean equals(Object obj) {\r
59                 if ( obj == null ) return false;\r
60                 if ( obj instanceof HistorySamplerItem == false ) return false;\r
61                 HistorySamplerItem other = (HistorySamplerItem) obj;                    \r
62                 if ( !other.history.equals(history) ) return false;\r
63                 if ( !other.historyItemId.equals(historyItemId) ) return false;\r
64                 return true;\r
65         }\r
66         \r
67 }\r