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 :

http://dive4elements.wald.intevation.org