Mercurial > dive4elements > river
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 | 1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde |
2 * Software engineering by | |
3 * Björnsen Beratende Ingenieure GmbH | |
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt | |
5 * | |
6 * This file is Free Software under the GNU AGPL (>=v3) | |
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the | |
8 * documentation coming with Dive4Elements River for details. | |
9 */ | |
10 package org.dive4elements.river.artifacts.model.fixings; | |
11 | |
8957
7565d7dce850
Implemented calculation of 'year' for fixations
gernotbelger
parents:
8906
diff
changeset
|
12 import java.util.Calendar; |
8883 | 13 import java.util.Date; |
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 | 17 |
18 import org.dive4elements.river.artifacts.access.FixRealizingAccess; | |
19 import org.dive4elements.river.artifacts.model.FixingsOverview; | |
20 import org.dive4elements.river.artifacts.model.FixingsOverviewFactory; | |
21 | |
22 /** | |
23 * REMARK: this inheritance is only needed, beause changing the orignal calculation will probably break the | |
24 * serialization of the artifact.... | |
25 * | |
26 * @author Gernot Belger | |
27 */ | |
28 public class FixRealizingCalculationExtended extends FixRealizingCalculation { | |
29 private static final long serialVersionUID = 1L; | |
30 | |
31 public FixRealizingCalculationExtended(final FixRealizingAccess fixAccess) { | |
32 super(fixAccess); | |
33 } | |
34 | |
35 public int determineMeanYear() { | |
36 final FixingsOverview overview = FixingsOverviewFactory.getOverview(this.river); | |
37 final ColumnCache cc = new ColumnCache(); | |
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 | 42 |
8883 | 43 final List<Column> columns = getEventColumns(overview, cc); |
44 for (final Column column : columns) { | |
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 | 50 } |
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 | 58 } |
59 } |