annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/WaterlevelData.java @ 8934:cef37cc093f2

wkms name was lost
author gernotbelger
date Tue, 06 Mar 2018 17:05:37 +0100
parents d9dbf0b74bc2
children 45f1ad66560e
rev   line source
8881
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
2 * Software engineering by
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
5 *
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
9 */
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.states;
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
11
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
12 import org.dive4elements.river.artifacts.model.WKms;
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
13
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
14 /**
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
15 * Represents a waterlevel fetched with the {@link WaterlevelFetcher}.
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
16 *
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
17 * @author Gernot Belger
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
18 */
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
19 public class WaterlevelData {
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
20 private final WKms wkms;
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
21
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
22 private final String name;
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
23
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents: 8881
diff changeset
24 private final int year;
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents: 8881
diff changeset
25
8881
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
26 /** If <code>true</code>, tabular export will show gauges for every station, else only for the first gauge */
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
27 private final boolean showAllGauges;
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
28
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents: 8881
diff changeset
29 public WaterlevelData(final WKms wkms, final int year) {
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents: 8881
diff changeset
30 this(wkms, year, false);
8881
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
31 }
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
32
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents: 8881
diff changeset
33 public WaterlevelData(final WKms wkms, final int year, final boolean showAllGauges) {
8934
cef37cc093f2 wkms name was lost
gernotbelger
parents: 8915
diff changeset
34 this(wkms.getName(), wkms, year, showAllGauges);
8881
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
35 }
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
36
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents: 8881
diff changeset
37 private WaterlevelData(final String name, final WKms wkms, final int year, final boolean showAllGauges) {
8881
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
38 this.name = name;
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
39 this.wkms = wkms;
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents: 8881
diff changeset
40 this.year = year;
8881
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
41 this.showAllGauges = showAllGauges;
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
42 }
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
43
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
44 public WaterlevelData filterByRange(final double from, final double to) {
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
45 if (Double.isNaN(from) || Double.isNaN(to)) {
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
46 return this;
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
47 }
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
48
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
49 final WKms filteredWkms = this.wkms.filteredKms(from, to);
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents: 8881
diff changeset
50 return new WaterlevelData(this.name, filteredWkms, this.year, this.showAllGauges);
8881
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
51 }
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
52
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
53 public WaterlevelData withName(final String nameToSet) {
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents: 8881
diff changeset
54 return new WaterlevelData(nameToSet, this.wkms, this.year, this.showAllGauges);
8881
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
55 }
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
56
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
57 public String getName() {
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
58 return this.name;
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
59 }
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
60
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
61 public WKms getWkms() {
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
62 return this.wkms;
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
63 }
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
64
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
65 public boolean isShowAllGauges() {
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
66 return this.showAllGauges;
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
67 }
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
68
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents: 8881
diff changeset
69 public int getYear() {
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents: 8881
diff changeset
70 return this.year;
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents: 8881
diff changeset
71 }
8881
6b93a2498e06 Slightly better abstraction for extraction waterlevels via datacage
gernotbelger
parents:
diff changeset
72 }

http://dive4elements.wald.intevation.org