comparison backend/src/main/java/org/dive4elements/river/model/TimeInterval.java @ 9055:df5c5614e9a7

New pseudo datetime for year-only values (31.12. instead of 15.6.)
author mschaefer
date Fri, 04 May 2018 14:03:47 +0200
parents 4c3ccf2b0304
children df6f1b5806f6
comparison
equal deleted inserted replaced
9054:95643dffd006 9055:df5c5614e9a7
7 */ 7 */
8 8
9 package org.dive4elements.river.model; 9 package org.dive4elements.river.model;
10 10
11 import java.io.Serializable; 11 import java.io.Serializable;
12 12 import java.util.Calendar;
13 import java.util.Date; 13 import java.util.Date;
14 14
15 import javax.persistence.Column;
15 import javax.persistence.Entity; 16 import javax.persistence.Entity;
17 import javax.persistence.GeneratedValue;
18 import javax.persistence.GenerationType;
16 import javax.persistence.Id; 19 import javax.persistence.Id;
20 import javax.persistence.SequenceGenerator;
17 import javax.persistence.Table; 21 import javax.persistence.Table;
18 import javax.persistence.GeneratedValue;
19 import javax.persistence.Column;
20 import javax.persistence.SequenceGenerator;
21 import javax.persistence.GenerationType;
22 22
23 @Entity 23 @Entity
24 @Table(name = "time_intervals") 24 @Table(name = "time_intervals")
25 public class TimeInterval 25 public class TimeInterval
26 implements Serializable 26 implements Serializable
27 { 27 {
28 /**
29 * Pseudo-date for Date values where only the year field is significant
30 * (in Flys 3.2.1 June-15 12:00 had been used)
31 */
32 public final static Calendar YEAR_ONLY_DATE;
33 static {
34 YEAR_ONLY_DATE = Calendar.getInstance();
35 YEAR_ONLY_DATE.clear();
36 YEAR_ONLY_DATE.set(0, Calendar.DECEMBER, 31, 3, 5, 6);
37 }
38
28 private Integer id; 39 private Integer id;
29 private Date startTime; 40 private Date startTime;
30 private Date stopTime; 41 private Date stopTime;
31 42
32 public TimeInterval() { 43 public TimeInterval() {
33 } 44 }
34 45
35 public TimeInterval(Date startTime, Date stopTime) { 46 public TimeInterval(final Date startTime, final Date stopTime) {
36 this.startTime = startTime; 47 this.startTime = startTime;
37 this.stopTime = stopTime; 48 this.stopTime = stopTime;
38 } 49 }
39 50
40 @Id 51 @Id
41 @SequenceGenerator( 52 @SequenceGenerator(
42 name = "SEQUENCE_TIME_INTERVALS_ID_SEQ", 53 name = "SEQUENCE_TIME_INTERVALS_ID_SEQ",
43 sequenceName = "TIME_INTERVALS_ID_SEQ", 54 sequenceName = "TIME_INTERVALS_ID_SEQ",
44 allocationSize = 1) 55 allocationSize = 1)
45 @GeneratedValue( 56 @GeneratedValue(
46 strategy = GenerationType.SEQUENCE, 57 strategy = GenerationType.SEQUENCE,
47 generator = "SEQUENCE_TIME_INTERVALS_ID_SEQ") 58 generator = "SEQUENCE_TIME_INTERVALS_ID_SEQ")
48 @Column(name = "id") 59 @Column(name = "id")
49 public Integer getId() { 60 public Integer getId() {
50 return id; 61 return this.id;
51 } 62 }
52 63
53 public void setId(Integer id) { 64 public void setId(final Integer id) {
54 this.id = id; 65 this.id = id;
55 } 66 }
56 67
57 @Column(name = "start_time") // FIXME: type mapping needed? 68 @Column(name = "start_time") // FIXME: type mapping needed?
58 public Date getStartTime() { 69 public Date getStartTime() {
59 return startTime; 70 return this.startTime;
60 } 71 }
61 72
62 public void setStartTime(Date startTime) { 73 public void setStartTime(final Date startTime) {
63 this.startTime = startTime; 74 this.startTime = startTime;
64 } 75 }
65 76
66 @Column(name = "stop_time") // FIXME: type mapping needed? 77 @Column(name = "stop_time") // FIXME: type mapping needed?
67 public Date getStopTime() { 78 public Date getStopTime() {
68 return stopTime; 79 return this.stopTime;
69 } 80 }
70 81
71 public void setStopTime(Date stopTime) { 82 public void setStopTime(final Date stopTime) {
72 this.stopTime = stopTime; 83 this.stopTime = stopTime;
73 } 84 }
74 } 85 }
75 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 86 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org