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 ) {

http://dive4elements.wald.intevation.org