Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/utils/FLYSUtils.java @ 2068:0cf60d64895c
#370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
flys-artifacts/trunk@3563 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 02 Jan 2012 13:30:44 +0000 |
parents | 97a25b54eea3 |
children | aa9cc91c8193 |
comparison
equal
deleted
inserted
replaced
2067:40624968c7f4 | 2068:0cf60d64895c |
---|---|
4 | 4 |
5 import java.text.NumberFormat; | 5 import java.text.NumberFormat; |
6 import java.util.HashMap; | 6 import java.util.HashMap; |
7 import java.util.List; | 7 import java.util.List; |
8 import java.util.Map; | 8 import java.util.Map; |
9 import java.util.regex.Matcher; | |
10 import java.util.regex.Pattern; | |
9 | 11 |
10 import javax.xml.xpath.XPathConstants; | 12 import javax.xml.xpath.XPathConstants; |
11 | 13 |
12 import org.w3c.dom.Document; | 14 import org.w3c.dom.Document; |
13 | 15 |
27 import de.intevation.flys.artifacts.context.FLYSContext; | 29 import de.intevation.flys.artifacts.context.FLYSContext; |
28 import de.intevation.flys.artifacts.FLYSArtifact; | 30 import de.intevation.flys.artifacts.FLYSArtifact; |
29 import de.intevation.flys.artifacts.WINFOArtifact; | 31 import de.intevation.flys.artifacts.WINFOArtifact; |
30 import de.intevation.flys.artifacts.model.RiverFactory; | 32 import de.intevation.flys.artifacts.model.RiverFactory; |
31 import de.intevation.flys.artifacts.model.LocationProvider; | 33 import de.intevation.flys.artifacts.model.LocationProvider; |
34 import de.intevation.flys.artifacts.model.WQ; | |
32 import de.intevation.flys.model.Gauge; | 35 import de.intevation.flys.model.Gauge; |
33 import de.intevation.flys.model.MainValue; | 36 import de.intevation.flys.model.MainValue; |
34 import de.intevation.flys.model.River; | 37 import de.intevation.flys.model.River; |
35 | 38 |
36 public class FLYSUtils { | 39 public class FLYSUtils { |
43 /** | 46 /** |
44 * An enum that represents the 5 possible WQ modes in FLYS. The 5 values are | 47 * An enum that represents the 5 possible WQ modes in FLYS. The 5 values are |
45 * <i>QFREE</i> <i>QGAUGE</i> <i>WGAUGE</i> <i>WFREE</i> and <i>NONE</i>. | 48 * <i>QFREE</i> <i>QGAUGE</i> <i>WGAUGE</i> <i>WFREE</i> and <i>NONE</i>. |
46 */ | 49 */ |
47 public static enum WQ_MODE { QFREE, QGAUGE, WFREE, WGAUGE, NONE }; | 50 public static enum WQ_MODE { QFREE, QGAUGE, WFREE, WGAUGE, NONE }; |
51 | |
52 | |
53 public static final Pattern NUMBERS_PATTERN = | |
54 Pattern.compile("\\D*(\\d++.\\d*)\\D*"); | |
48 | 55 |
49 public static final String XPATH_RIVER_PROJECTION = | 56 public static final String XPATH_RIVER_PROJECTION = |
50 "/artifact-database/floodmap/river[@name=$name]/srid/@value"; | 57 "/artifact-database/floodmap/river[@name=$name]/srid/@value"; |
51 | 58 |
52 public static final String XPATH_SHAPEFILE_DIR = | 59 public static final String XPATH_SHAPEFILE_DIR = |
400 | 407 |
401 return gauge != null ? gauge.getName() : null; | 408 return gauge != null ? gauge.getName() : null; |
402 } | 409 } |
403 | 410 |
404 | 411 |
412 public static Double getValueFromWQ(WQ wq) { | |
413 if (wq == null) { | |
414 return null; | |
415 } | |
416 | |
417 Matcher m = NUMBERS_PATTERN.matcher(wq.getName()); | |
418 | |
419 if (m.matches()) { | |
420 logger.debug("Found a number."); | |
421 | |
422 String raw = m.group(1); | |
423 | |
424 try { | |
425 return Double.valueOf(raw); | |
426 } | |
427 catch (NumberFormatException nfe) { | |
428 } | |
429 } | |
430 | |
431 return null; | |
432 } | |
433 | |
434 | |
405 public static String createWspWTitle( | 435 public static String createWspWTitle( |
406 WINFOArtifact winfo, | 436 WINFOArtifact winfo, |
407 CallContext cc, | 437 CallContext cc, |
408 String name | 438 String name |
409 ) { | 439 ) { |