Mercurial > dive4elements > river
diff flys-aft/src/main/java/de/intevation/aft/River.java @ 4079:42094f01afa6
Added model for DIPS gauges.
flys-aft/trunk@3454 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 16 Dec 2011 17:34:11 +0000 |
parents | 0944cdd2ee90 |
children | 7a7b0f0cb653 |
line wrap: on
line diff
--- a/flys-aft/src/main/java/de/intevation/aft/River.java Fri Dec 16 17:10:14 2011 +0000 +++ b/flys-aft/src/main/java/de/intevation/aft/River.java Fri Dec 16 17:34:11 2011 +0000 @@ -10,16 +10,20 @@ import org.w3c.dom.Document; import org.w3c.dom.NodeList; -import org.w3c.dom.Node; import org.w3c.dom.Element; import de.intevation.db.ConnectedStatements; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + public class River extends IdPair { private static Logger log = Logger.getLogger(River.class); + public static final Pattern NUMBER = Pattern.compile("0*([0-9]+)"); + protected String name; public River() { @@ -34,12 +38,22 @@ return name; } - protected static Map<Integer, Element> indexByNumber(Document document) { - Map<Integer, Element> map = new HashMap<Integer, Element>(); + public static Long numberToLong(String s) { + Matcher m = NUMBER.matcher(s); + if (!m.matches()) return null; + String ns = m.group(1); + return Long.valueOf(ns.length() == 0 ? "0": ns); + } + + public static Map<Long, DIPSGauge> indexByNumber(Document document) { + Map<Long, DIPSGauge> map = new HashMap<Long, DIPSGauge>(); NodeList nodes = document.getElementsByTagName("PEGELSTATION"); for (int i = nodes.getLength()-1; i >= 0; --i) { Element element = (Element)nodes.item(i); - String number = element.getAttribute("NUMMER"); + Long number = numberToLong(element.getAttribute("NUMMER")); + if (number != null) { + map.put(number, new DIPSGauge(element)); + } } return map; } @@ -75,6 +89,8 @@ } gaugesRs.close(); + + Map<Long, DIPSGauge> map = indexByNumber(context.getDips()); } public String toString() {