Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZone.java @ 9118:431f1c269be5
Veg-Zone Table improved, State change data recovery;
author | gernotbelger |
---|---|
date | Mon, 04 Jun 2018 19:38:59 +0200 |
parents | artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZoneAccessHelper.java@a561b882436d |
children | b570b6fcc052 |
rev | line source |
---|---|
9071 | 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.uinfo.vegetationzones; | |
11 | |
12 import java.util.ArrayList; | |
13 import java.util.List; | |
14 | |
15 /** | |
16 * @author Domenico Nardi Tironi | |
17 * | |
18 */ | |
9118
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
19 public class VegetationZone implements Comparable<VegetationZone> { |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
20 |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
21 // IMMER ABGLEICHEN MIT VEGETATIONZONE IM CLIENT SuperVegZonesTablePanel.TABLE_CELL_SEPARATOR |
9071 | 22 private static final String TABLE_CELL_SEPARATOR = "TABLE_CELL_SEPARATOR"; |
23 private static final String TABLE_ROW_SEPARATOR = "TABLE_ROW_SEPARATOR"; | |
24 private final String zoneName; | |
25 private final int min_day_overflow; | |
26 private final int max_day_overflow; | |
27 | |
9118
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
28 public static List<VegetationZone> parse(final String zonesRaw) { |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
29 final List<VegetationZone> resultList = new ArrayList<>(); |
9071 | 30 |
31 final List<String[]> results = new ArrayList<>(); | |
32 if (zonesRaw.contains(TABLE_ROW_SEPARATOR)) { | |
33 final String[] rows = zonesRaw.split(TABLE_ROW_SEPARATOR); | |
34 for (final String row : rows) { | |
35 if (row.contains(TABLE_CELL_SEPARATOR)) { | |
36 final String[] result = row.split(TABLE_CELL_SEPARATOR); | |
37 results.add(result); | |
38 } | |
39 } | |
40 } | |
41 for (final String[] zone : results) { | |
42 | |
9118
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
43 final VegetationZone helper = new VegetationZone(zone[0], Integer.valueOf(zone[1]), Integer.valueOf(zone[2])); |
9071 | 44 resultList.add(helper); |
45 } | |
46 | |
47 return resultList; | |
48 } | |
49 | |
9118
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
50 public static VegetationZone createFromTableEntry(final String zone, final String min_day_overflow, final String max_day_overflow) { |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
51 return new VegetationZone(zone, Integer.valueOf(min_day_overflow), Integer.valueOf(max_day_overflow)); // Error-Handling? |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
52 } |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
53 |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
54 private VegetationZone(final String zone, final Integer min_day_overflow, final Integer max_day_overflow) { |
9071 | 55 this.zoneName = zone; |
56 this.min_day_overflow = min_day_overflow; | |
57 this.max_day_overflow = max_day_overflow; | |
58 } | |
59 | |
60 public int getMax_day_overflow() { | |
61 return this.max_day_overflow; | |
62 } | |
63 | |
64 public String getZoneName() { | |
65 return this.zoneName; | |
66 } | |
67 | |
68 public int getMin_day_overflow() { | |
69 return this.min_day_overflow; | |
70 } | |
9118
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
71 |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
72 public static final List<VegetationZone> getStandardList() { |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
73 |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
74 final List<VegetationZone> list = new ArrayList<>(); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
75 list.add(new VegetationZone("Zonaler Wald", 0, 5)); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
76 list.add(new VegetationZone("Hartholzaue, trocken", 5, 40)); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
77 list.add(new VegetationZone("Hartholzaue, feucht", 40, 80)); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
78 list.add(new VegetationZone("Silberweidenwald", 80, 140)); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
79 list.add(new VegetationZone("Weidengebüsch", 140, 200)); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
80 list.add(new VegetationZone("Uferröhricht", 200, 260)); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
81 list.add(new VegetationZone("Uferpioniere", 260, 320)); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
82 list.add(new VegetationZone("Vegetationslos", 320, 365)); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
83 list.add(new VegetationZone("Wasserfläche", 365, 365)); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
84 |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
85 return list; |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
86 } |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
87 |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
88 public static final String parseListToDataString(final List<VegetationZone> list) { |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
89 |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
90 java.util.Collections.sort(list); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
91 final StringBuilder builder = new StringBuilder(); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
92 for (final VegetationZone zone : list) { |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
93 builder.append(zone.getZoneName()); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
94 builder.append(TABLE_CELL_SEPARATOR); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
95 builder.append(zone.getMin_day_overflow()); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
96 builder.append(TABLE_CELL_SEPARATOR); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
97 builder.append(zone.getMax_day_overflow()); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
98 builder.append(TABLE_ROW_SEPARATOR); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
99 } |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
100 return builder.toString(); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
101 |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
102 } |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
103 |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
104 @Override |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
105 public int compareTo(final VegetationZone o) { |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
106 final int basicCompare = Integer.valueOf(this.getMin_day_overflow()).compareTo(o.getMin_day_overflow()); |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
107 if (basicCompare == 0) |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
108 return Integer.compare(this.getMax_day_overflow(), o.getMax_day_overflow()); // wenn min==min && max==max, alphabetisch sortieren? |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
109 return basicCompare; |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
110 } |
431f1c269be5
Veg-Zone Table improved, State change data recovery;
gernotbelger
parents:
9071
diff
changeset
|
111 |
9071 | 112 } |