Mercurial > dive4elements > river
diff 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 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Segment.java Sun Sep 16 11:40:38 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Segment.java Sun Sep 16 17:55:10 2012 +0000 @@ -6,8 +6,6 @@ import de.intevation.flys.utils.DoubleUtil; -import gnu.trove.TDoubleArrayList; - import java.io.Serializable; import java.util.ArrayList; @@ -124,34 +122,14 @@ public static List<Segment> parseSegments(String input) { - ArrayList<Segment> segments = new ArrayList<Segment>(); - - TDoubleArrayList vs = new TDoubleArrayList(); + final List<Segment> segments = new ArrayList<Segment>(); - for (String segmentStr: input.split(":")) { - String [] parts = segmentStr.split(";"); - if (parts.length < 3) { - log.warn("invalid segment: '" + segmentStr + "'"); - continue; - } - try { - double from = Double.parseDouble(parts[0].trim()); - double to = Double.parseDouble(parts[1].trim()); - - vs.clear(); - - for (String valueStr: parts[2].split(",")) { - vs.add(DoubleUtil.round( - Double.parseDouble(valueStr.trim()))); - } - - double [] values = vs.toNativeArray(); + DoubleUtil.parseSegments(input, new DoubleUtil.SegmentCallback() { + @Override + public void newSegment(double from, double to, double [] values) { segments.add(new Segment(from, to, values)); } - catch (NumberFormatException nfe) { - log.warn("invalid segment: '" + segmentStr + "'"); - } - } + }); return segments; }