Mercurial > dive4elements > river
comparison flys-backend/src/main/java/de/intevation/flys/model/DischargeTable.java @ 4173:7d4480c0e68e
Allow users to select the current relevant discharge table in historical discharge table calculattion.
In addition to this, the discharge tables in the helper panel displayed in the client is ordered in time.
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 18 Oct 2012 12:13:48 +0200 |
parents | 67f362883fe4 |
children | 8138a90a674a |
comparison
equal
deleted
inserted
replaced
4172:9fd17cb69047 | 4173:7d4480c0e68e |
---|---|
1 package de.intevation.flys.model; | 1 package de.intevation.flys.model; |
2 | 2 |
3 import java.io.Serializable; | 3 import java.io.Serializable; |
4 import java.util.Date; | |
5 import java.util.List; | |
4 | 6 |
7 import javax.persistence.Column; | |
5 import javax.persistence.Entity; | 8 import javax.persistence.Entity; |
9 import javax.persistence.GeneratedValue; | |
10 import javax.persistence.GenerationType; | |
6 import javax.persistence.Id; | 11 import javax.persistence.Id; |
7 import javax.persistence.Table; | 12 import javax.persistence.JoinColumn; |
8 import javax.persistence.GeneratedValue; | |
9 import javax.persistence.Column; | |
10 import javax.persistence.SequenceGenerator; | |
11 import javax.persistence.GenerationType; | |
12 import javax.persistence.OneToMany; | 13 import javax.persistence.OneToMany; |
13 import javax.persistence.OneToOne; | 14 import javax.persistence.OneToOne; |
14 import javax.persistence.OrderBy; | 15 import javax.persistence.OrderBy; |
15 import javax.persistence.JoinColumn; | 16 import javax.persistence.SequenceGenerator; |
16 | 17 import javax.persistence.Table; |
17 import java.util.List; | |
18 | 18 |
19 @Entity | 19 @Entity |
20 @Table(name = "discharge_tables") | 20 @Table(name = "discharge_tables") |
21 public class DischargeTable | 21 public class DischargeTable |
22 implements Serializable | 22 implements Serializable, Comparable<DischargeTable> |
23 { | 23 { |
24 private Integer id; | 24 private Integer id; |
25 private Gauge gauge; | 25 private Gauge gauge; |
26 private String description; | 26 private String description; |
27 private Integer kind; | 27 private Integer kind; |
114 public void setDischargeTableValues( | 114 public void setDischargeTableValues( |
115 List<DischargeTableValue> dischargeTableValues | 115 List<DischargeTableValue> dischargeTableValues |
116 ) { | 116 ) { |
117 this.dischargeTableValues = dischargeTableValues; | 117 this.dischargeTableValues = dischargeTableValues; |
118 } | 118 } |
119 | |
120 @Override | |
121 public int compareTo(DischargeTable o) { | |
122 if (getKind() == 0 && o.getKind() != 0) { | |
123 return 1; | |
124 } | |
125 | |
126 TimeInterval other = o.getTimeInterval(); | |
127 | |
128 Date otherStartTime = other.getStartTime(); | |
129 Date thisStartTime = timeInterval.getStartTime(); | |
130 | |
131 if (otherStartTime == null) { | |
132 return -1; | |
133 } | |
134 else if (thisStartTime == null) { | |
135 return 1; | |
136 } | |
137 | |
138 long otherStart = otherStartTime.getTime(); | |
139 long thisStart = thisStartTime.getTime(); | |
140 | |
141 if (otherStart < thisStart) { | |
142 return 1; | |
143 } | |
144 else if (otherStart > thisStart) { | |
145 return -1; | |
146 } | |
147 | |
148 Date otherStopTime = other.getStopTime(); | |
149 Date thisStopTime = timeInterval.getStopTime(); | |
150 | |
151 if (otherStopTime == null) { | |
152 return -1; | |
153 } | |
154 else if (thisStopTime == null) { | |
155 return 1; | |
156 } | |
157 | |
158 long otherEnd = otherStopTime.getTime(); | |
159 long thisEnd = thisStopTime.getTime(); | |
160 | |
161 if (otherEnd < thisEnd) { | |
162 return 1; | |
163 } | |
164 else if (otherEnd > thisEnd) { | |
165 return -1; | |
166 } | |
167 else { | |
168 return 0; | |
169 } | |
170 } | |
119 } | 171 } |
120 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 172 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |