Mercurial > dive4elements > river
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( |