annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixRealizingCalculationExtended.java @ 8957:7565d7dce850

Implemented calculation of 'year' for fixations
author gernotbelger
date Fri, 23 Mar 2018 17:52:59 +0100
parents bd3095b3f028
children 9744ce3c3853
rev   line source
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
2 * Software engineering by
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
5 *
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
9 */
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.model.fixings;
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
11
8957
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
12 import java.util.Calendar;
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
13 import java.util.Date;
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
14 import java.util.List;
8957
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
15 import java.util.SortedSet;
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
16 import java.util.TreeSet;
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
17
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
18 import org.dive4elements.river.artifacts.access.FixRealizingAccess;
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.artifacts.model.FixingsOverview;
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
20 import org.dive4elements.river.artifacts.model.FixingsOverviewFactory;
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
21
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
22 /**
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
23 * REMARK: this inheritance is only needed, beause changing the orignal calculation will probably break the
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
24 * serialization of the artifact....
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
25 *
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
26 * @author Gernot Belger
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
27 */
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
28 public class FixRealizingCalculationExtended extends FixRealizingCalculation {
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
29 private static final long serialVersionUID = 1L;
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
30
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
31 public FixRealizingCalculationExtended(final FixRealizingAccess fixAccess) {
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
32 super(fixAccess);
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
33 }
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
34
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
35 public int determineMeanYear() {
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
36 final FixingsOverview overview = FixingsOverviewFactory.getOverview(this.river);
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
37 final ColumnCache cc = new ColumnCache();
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
38
8957
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
39 final SortedSet<Integer> years = new TreeSet<>();
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
40
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
41 final Calendar cal = Calendar.getInstance();
8904
d9f2ce1d6bef Yust another fixme
gernotbelger
parents: 8883
diff changeset
42
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
43 final List<Column> columns = getEventColumns(overview, cc);
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
44 for (final Column column : columns) {
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
45 final Date date = column.getDate();
8957
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
46 cal.setTime(date);
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
47
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
48 final int year = cal.get(Calendar.YEAR);
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
49 years.add(year);
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
50 }
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
51
8957
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
52 final Integer first = years.first();
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
53 final Integer last = years.last();
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
54 if (first == null || last == null)
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
55 return -1;
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
56
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
57 return (first + last) / 2;
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
58 }
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
59 }

http://dive4elements.wald.intevation.org