annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationInfrastructureChoice.java @ 9630:8da911b5169c

3 Significant also for Q_1, Q_2...
author dnt_bjoernsen <d.tironi@bjoernsen.de>
date Mon, 14 Oct 2019 18:07:31 +0200
parents 387822d7d5e8
children
rev   line source
9621
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
1 /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
2 * Software engineering by
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
5 *
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
9 */
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
10 package org.dive4elements.river.artifacts.sinfo.flood_duration;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
11
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
12 import java.io.Serializable;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
13 import java.util.HashSet;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
14 import java.util.Set;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
15
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
16 import org.apache.commons.lang.builder.EqualsBuilder;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
17 import org.apache.commons.lang.builder.HashCodeBuilder;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
18 import org.dive4elements.artifacts.CallContext;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
19 import org.dive4elements.river.artifacts.common.ResultRow;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
20 import org.dive4elements.river.artifacts.resources.Resources;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
21 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
22 import org.dive4elements.river.model.Attribute.AttributeKey;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
23
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
24 /**
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
25 * Infrastructure group plus type and riverside choice
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
26 *
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
27 * @author Domenico Nardi Tironi
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
28 */
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
29 public final class FloodDurationInfrastructureChoice implements Serializable {
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
30
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
31 private static final long serialVersionUID = 1L;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
32
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
33 private final String m_group;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
34
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
35 private final String m_type;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
36
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
37 private final AttributeKey m_riverside;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
38
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
39 private static final String FACET_FLOOD_DURATION_DESCRIPTION = "sinfo_facet_flood_duration";
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
40
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
41 private static final String FACET_ABSOLUTE_HEIGHT = "sinfo.flood_duration.absolute.height";
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
42
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
43 public FloodDurationInfrastructureChoice(final ResultRow row) {
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
44 this.m_group = String.valueOf(row.getValue(SInfoResultType.infrastructuregroup));
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
45 this.m_type = String.valueOf(row.getValue(SInfoResultType.infrastructuretype));
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
46 // final String riversideStr = String.valueOf(row.getValue(SInfoResultType.riverside));
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
47 // this.m_riverside = riversideStr.equals("null") ? AttributeKey.NONE : AttributeKey.valueOf(riversideStr);
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
48 this.m_riverside = (AttributeKey) row.getValue(SInfoResultType.riverside);
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
49 }
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
50
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
51 public AttributeKey getRiverside() {
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
52 return this.m_riverside;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
53 }
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
54
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
55 public String getGroup() {
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
56 return this.m_group;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
57 }
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
58
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
59 public String getType() {
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
60 return this.m_type;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
61 }
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
62
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
63 @Override
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
64 public int hashCode() {
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
65 return new HashCodeBuilder() //
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
66 .append(this.m_group)//
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
67 .append(this.m_type)//
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
68 .append(this.m_riverside)//
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
69 .toHashCode();
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
70 }
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
71
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
72 @Override
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
73 public boolean equals(final Object obj) {
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
74
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
75 if (obj == null)
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
76 return false;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
77 if (obj == this)
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
78 return true;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
79 if (obj.getClass() != getClass())
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
80 return false;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
81
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
82 final FloodDurationInfrastructureChoice other = (FloodDurationInfrastructureChoice) obj;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
83 return new EqualsBuilder() //
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
84 .append(this.m_group, other.m_group) //
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
85 .append(this.m_type, other.m_type) //
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
86 .append(this.m_riverside, other.m_riverside) //
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
87 .isEquals();
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
88 }
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
89
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
90 public String getFloodHeightLabel(final CallContext context) {
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
91 return Resources.getMsg(context.getMeta(), FACET_ABSOLUTE_HEIGHT, FACET_ABSOLUTE_HEIGHT)
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
92 + " " + SInfoResultType.getInfrastructureLabel(context, this.m_group, this.m_type, this.m_riverside);
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
93 }
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
94
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
95 public String getFloodDurationLabel(final CallContext context) {
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
96 return Resources.getMsg(context.getMeta(), FACET_FLOOD_DURATION_DESCRIPTION, FACET_FLOOD_DURATION_DESCRIPTION)
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
97 + " " + SInfoResultType.getInfrastructureLabel(context, this.m_group, this.m_type, this.m_riverside);
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
98 }
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
99
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
100 /**
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
101 * Gets all group-type-pairs (separated by a tab) of a set of choices
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
102 */
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
103 public static Set<String> getGroupTypes(final Set<FloodDurationInfrastructureChoice> choices) {
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
104 final Set<String> choiceStrings = new HashSet<>();
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
105 for (final FloodDurationInfrastructureChoice choice : choices)
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
106 choiceStrings.add(choice.getGroup() + '\t' + choice.getType());
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
107 return choiceStrings;
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
108 }
387822d7d5e8 Missing class added
mschaefer
parents:
diff changeset
109 }

http://dive4elements.wald.intevation.org