comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixResult.java @ 9415:9744ce3c3853

Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets. The facets also put the valid station range into their xml-metadata
author gernotbelger
date Thu, 16 Aug 2018 16:27:53 +0200
parents ddcd52d239cd
children
comparison
equal deleted inserted replaced
9414:096f151a0a9f 9415:9744ce3c3853
7 */ 7 */
8 8
9 package org.dive4elements.river.artifacts.model.fixings; 9 package org.dive4elements.river.artifacts.model.fixings;
10 10
11 import java.io.Serializable; 11 import java.io.Serializable;
12 import java.util.Collection;
13 import java.util.Date;
14 import java.util.Set;
15 import java.util.TreeMap;
16 import java.util.TreeSet;
17 12
18 import org.dive4elements.river.artifacts.model.Parameters; 13 import org.dive4elements.river.artifacts.model.Parameters;
19 import org.dive4elements.river.utils.KMIndex;
20 14
21 public class FixResult implements Serializable 15 public class FixResult implements Serializable
22 { 16 {
23 private static final long serialVersionUID = 1L; 17 private static final long serialVersionUID = 1L;
24 18
25 protected Parameters parameters; 19 private Parameters parameters;
26 protected KMIndex<QWD []> fixings; 20
21 private FixResultColumns fixResultColumns;
27 22
28 public FixResult() { 23 public FixResult() {
29 } 24 }
30 25
31 public FixResult( final Parameters parameters, final KMIndex<QWD []> fixings ) { 26 public FixResult(final Parameters parameters, final FixResultColumns fixResultColumns) {
32 this.parameters = parameters; 27 this.parameters = parameters;
33 this.fixings = fixings; 28 this.fixResultColumns = fixResultColumns;
34 }
35
36 public KMIndex<QWD []> getFixings() {
37 return fixings;
38 }
39
40 public void makeEventsDatesUnique() {
41 final DateUniqueMaker dum = new DateUniqueMaker();
42
43 for (KMIndex.Entry<QWD []> entry: fixings) {
44 for (QWD ref: entry.getValue())
45 dum.makeUnique(ref);
46 }
47 }
48
49 private Collection<Integer> getEventsIndices() {
50 final TreeMap<Date, Integer> dates = new TreeMap<>();
51
52 for (KMIndex.Entry<QWD []> entry: fixings) {
53 for (QWD value: entry.getValue())
54 dates.put(value.date, value.index);
55 }
56
57 return dates.values();
58 }
59
60 public void remapEventIndicesToRank() {
61 final RankRemapper remapper = new RankRemapper();
62 for (Integer idx: getEventsIndices())
63 remapper.toMap(idx);
64
65 for (KMIndex.Entry<QWD []> entry: fixings) {
66 for (QWD value: entry.getValue())
67 remapper.remap(value);
68 }
69 }
70
71 public Collection<Date> getReferenceEventsDates() {
72
73 final Set<Date> dates = new TreeSet<>();
74
75 for (final KMIndex.Entry<QWD []> entry: fixings) {
76 for (final QWD qwd: entry.getValue())
77 dates.add(qwd.date);
78 }
79
80 return dates;
81 } 29 }
82 30
83 public Parameters getParameters() { 31 public Parameters getParameters() {
84 return parameters; 32 return this.parameters;
33 }
34
35 public FixResultColumns getFixResultColumns() {
36 return this.fixResultColumns;
85 } 37 }
86 } 38 }

http://dive4elements.wald.intevation.org