comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Segment.java @ 3776:1ddbf66a2b0a

Implemented the access for 'Auslagerung extremer Wasserspiegellagen' flys-artifacts/trunk@5483 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 16 Sep 2012 17:55:10 +0000
parents 1df6984628c3
children a929d9a9fa1e
comparison
equal deleted inserted replaced
3775:d52c4ca93ffb 3776:1ddbf66a2b0a
3 import de.intevation.flys.model.DischargeTable; 3 import de.intevation.flys.model.DischargeTable;
4 import de.intevation.flys.model.Gauge; 4 import de.intevation.flys.model.Gauge;
5 import de.intevation.flys.model.River; 5 import de.intevation.flys.model.River;
6 6
7 import de.intevation.flys.utils.DoubleUtil; 7 import de.intevation.flys.utils.DoubleUtil;
8
9 import gnu.trove.TDoubleArrayList;
10 8
11 import java.io.Serializable; 9 import java.io.Serializable;
12 10
13 import java.util.ArrayList; 11 import java.util.ArrayList;
14 import java.util.Collections; 12 import java.util.Collections;
122 return referencePoint; 120 return referencePoint;
123 } 121 }
124 122
125 public static List<Segment> parseSegments(String input) { 123 public static List<Segment> parseSegments(String input) {
126 124
127 ArrayList<Segment> segments = new ArrayList<Segment>(); 125 final List<Segment> segments = new ArrayList<Segment>();
128 126
129 TDoubleArrayList vs = new TDoubleArrayList(); 127 DoubleUtil.parseSegments(input, new DoubleUtil.SegmentCallback() {
130 128 @Override
131 for (String segmentStr: input.split(":")) { 129 public void newSegment(double from, double to, double [] values) {
132 String [] parts = segmentStr.split(";");
133 if (parts.length < 3) {
134 log.warn("invalid segment: '" + segmentStr + "'");
135 continue;
136 }
137 try {
138 double from = Double.parseDouble(parts[0].trim());
139 double to = Double.parseDouble(parts[1].trim());
140
141 vs.clear();
142
143 for (String valueStr: parts[2].split(",")) {
144 vs.add(DoubleUtil.round(
145 Double.parseDouble(valueStr.trim())));
146 }
147
148 double [] values = vs.toNativeArray();
149 segments.add(new Segment(from, to, values)); 130 segments.add(new Segment(from, to, values));
150 } 131 }
151 catch (NumberFormatException nfe) { 132 });
152 log.warn("invalid segment: '" + segmentStr + "'");
153 }
154 }
155 133
156 return segments; 134 return segments;
157 } 135 }
158 136
159 public static boolean setReferencePointConvertQ( 137 public static boolean setReferencePointConvertQ(

http://dive4elements.wald.intevation.org