View Javadoc

1   /*** DataPoint.java - part of the MirkE (say murky) application for colormetric analysis emphesizing 
2   kinetics.
3   
4   Created by: Scott Menor on 21 July, 2004.
5   Last modified by: Scott Menor on 6 November, 2004
6   
7   Copyright (c) 2004 Arizona State University - Cancer Research Institute. All rights reserved.
8   
9   MirkE is free software; you can redistribute it and/or modify
10  it under the terms of the GNU General Public License as published by
11  the Free Software Foundation; either version 2 of the License, or
12  (at your option) any later version.
13  
14  MirkE is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  GNU General Public License for more details.
18  
19  You should have received a copy of the GNU General Public License
20  along with MirkE; if not, write to the Free Software
21  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
22  */
23  
24  package edu.asu.cri.MirkE.dataStructures;
25  
26  import java.util.*;
27  
28  /*** 
29   * A <code>DataPoint</code> represents a single, atomic set of measurements. 
30   * It contains a <code>Timestamp</code> (representing when the <code>DataPoint</code>'s 
31   * observation took place) and an <code>observableToMeasuredValueMap</code> which maps 
32   * from an <code>Observable</code> being measured (or a <code>String</code> name) to an 
33   * appropriate class representing the measurement (typically a <code>UnitValue</code> or a <code>MeasuredValue</code>)
34   * 
35   * @author Scott Menor
36  */
37  public class DataPoint {
38  	private long id;
39  	
40  	/***
41  	
42  	 @return id
43  	*/
44  	public long getId() {
45  		return id;
46  	}
47  	
48  	/***
49  		@param id
50  	 */
51  	public void setId(long id) {
52  		this.id = id;
53  	}
54  	
55  	private java.sql.Timestamp timestamp;
56  	
57  	/***
58       * @deprecated
59  	 * @return <code>Timestamp</code> for the <code>DataPoint</code> 
60  	 */
61  	public java.sql.Timestamp getTimestamp() {
62  		return this.timestamp;
63  	}
64  	
65  	/***
66       * @deprecated
67  	 * @param timestamp representing when the <code>DataPoint</code> was measured.
68  	 */
69  	public void setTimestamp(java.sql.Timestamp timestamp) {
70  		this.timestamp = timestamp;
71  	}
72  	
73  	private Map descriptorMap;
74  	
75  	/***
76       * @deprecated
77       * @param descriptorMap
78  	 */
79  	public void setDescriptorMap(Map descriptorMap) {
80  		this.descriptorMap = descriptorMap;
81  	}
82  	
83  	/***
84       * @deprecated
85       * @return descriptorMap
86  	 */
87  	public Map getDescriptorMap() {
88  		if (this.descriptorMap == null) {
89  			this.descriptorMap = new HashMap();
90  		} 
91  		
92  		return this.descriptorMap;
93  	}
94  	
95  	private Map observableToMeasuredValueMap;
96  	
97  	/***
98       * get a <code>Map</code> mapping from <code>Observable</code>s to corresponding <code>MeasuredValue</code>s
99       * 
100 	 * @return observableToMeasuredValueMap
101 	 */
102 	public Map getObservableToMeasuredValueMap() {
103 		if (observableToMeasuredValueMap == null) {
104 			observableToMeasuredValueMap = new HashMap();
105 		}
106 		
107 		return observableToMeasuredValueMap;
108 	}
109 	
110     /***
111      * 
112      * @param observable 
113      * @return an observation <code>Object</code> (possibly a <code>UnitValue</code>, <code>MeasuredValue</code> or a <code>Number</code>) corresponding to the observable.
114      */
115     public Object getObservationFromObservable(Object observable) {
116         if (observableToMeasuredValueMap != null) {
117             if (observableToMeasuredValueMap.containsKey(observable)) {
118                 return observableToMeasuredValueMap.get(observable);
119             }
120         } 
121         
122         return null;
123     }
124     
125     /***
126      * 
127      * @param observable 
128      * @param unitValue corresponding to the observable.
129      */
130     public void storeUnitValueForObservable(Object observable, UnitValue unitValue) {
131         Map observableToMeasuredValueMap = this.getObservableToMeasuredValueMap();
132         observableToMeasuredValueMap.put(observable, unitValue);
133        
134     }
135     
136 	/***
137      *  @param observableToMeasuredValueMap
138      */
139 	public void setObservableToMeasuredValueMap(Map observableToMeasuredValueMap) {
140 		this.observableToMeasuredValueMap = observableToMeasuredValueMap;
141 	}
142 	
143 	/***
144      * @return string
145 	 */
146 	public String toString() {
147 		if (observableToMeasuredValueMap != null) {
148 	
149 			return "" + timestamp + " " + descriptorMap.toString() + " : " + observableToMeasuredValueMap.toString();
150 		}
151 		
152 		return null;
153 	}
154 	
155 	/***
156 		
157 	 @return hashCode
158 	 */
159 	public int hashCode() {
160 		if (observableToMeasuredValueMap != null) {
161 			return observableToMeasuredValueMap.hashCode();
162 		}
163 		
164 		return 0;
165 	}
166 	
167 	/***
168      * @param object
169 	 * @return isEqual 
170 	 */
171 	public boolean equals(Object object) {
172 		if (this == object)  return true;
173 		if (!(object instanceof DataPoint)) return false;
174 		
175 		final DataPoint dataPoint = (DataPoint)object;
176 		
177 		if (!getObservableToMeasuredValueMap().equals(dataPoint.getObservableToMeasuredValueMap())) return false;
178 		
179 		return true;
180 	}
181 }