View Javadoc

1   package org.lsst.ccs.localdb.statusdb.model;
2   
3   import java.io.Serializable;
4   import java.util.Date;
5   
6   import javax.persistence.Column;
7   import javax.persistence.Embeddable;
8   import org.lsst.ccs.utilities.logging.Logger;
9   
10  // because time in MySQL is stored with one second accuracy
11  
12  // currently implemented as long in millis : could be removed.
13  
14  // if implemented as data + millis fractional beware of order by  desc that orders asc on first and desc on second
15  
16  
17  @Embeddable
18  public class Timestamp implements Serializable, Comparable<Timestamp> {
19  	private static final long serialVersionUID = 5388711583391014070L;
20  
21  	public Timestamp() {
22  		millis = System.currentTimeMillis();
23  	}
24  
25  	public Timestamp(Date d) {
26  		millis = d.getTime();
27  	}
28  
29  	public Timestamp(long millis) {
30  		this.millis = millis;
31  	}
32  
33  	public Date getDate() {
34  		return new Date(millis);
35  	}
36  
37  	
38  	public void setDate(java.util.Date date) {
39  		this.millis = date.getTime();
40  	}
41  	
42  	public long getMillis() {
43  		return millis;
44  	}
45  	
46  	public void setMillis(long millis) {
47  		this.millis = millis;
48  	}
49  
50  	@Column(name = "tstampmills")
51  	protected long millis;
52  
53  	public int compareTo(Timestamp o) {
54  		long d = millis - o.millis;
55  		if (d<0) return -1;
56  		if (d>0) return 1;
57  		return 0;
58  	};
59  
60  	static Logger log = Logger.getLogger("org.lsst.ccs.localdb");
61  
62  }