Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/UedauernConfiguration.java @ 9559:ba0561906f81
Uinfo inundation duration workflow (vegetation zones, scenario), wms-config changed
author | gernotbelger |
---|---|
date | Wed, 24 Oct 2018 18:40:38 +0200 |
parents | 787fc085459b |
children | 63bbd5e45839 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/UedauernConfiguration.java Wed Oct 24 12:00:49 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/UedauernConfiguration.java Wed Oct 24 18:40:38 2018 +0200 @@ -18,6 +18,7 @@ import java.util.List; import java.util.Map; +import org.apache.commons.lang.StringUtils; import org.dive4elements.river.artifacts.sinfo.tkhstate.TsvHelper; import org.dive4elements.river.artifacts.sinfo.tkhstate.TsvHelper.TsvReaderException; @@ -30,12 +31,12 @@ public final static class WmsConfig { private final String label; private final String url; - private final String layer; + private final String layer_default; public WmsConfig(final String label, final String url, final String layer) { this.label = label; this.url = url; - this.layer = layer; + this.layer_default = layer; } public String getLabel() { @@ -47,17 +48,20 @@ } public String getLayer() { - return this.layer; + return this.layer_default; } } public static enum YearType { - jahre, mittel + jahre, mittel, szenario } + private final int DEFAULT_WMS_INDEX = 0; + private final int VEGETATIONZONE_WMS_INDEX = 1; + private static Map<String, UedauernConfiguration> cache = new HashMap<>(); - private final Map<String, WmsConfig> wmsConfigs; + private final Map<String, WmsConfig[]> wmsConfigs; public static synchronized UedauernConfiguration getInstance(final String rivername, final YearType type) throws IOException, TsvReaderException { @@ -70,7 +74,7 @@ return cache.get(cacheKey); } - private UedauernConfiguration(final String rivername, final YearType type, final Map<String, WmsConfig> wmsConfigs) { + private UedauernConfiguration(final String rivername, final YearType type, final Map<String, WmsConfig[]> wmsConfigs) { this.wmsConfigs = wmsConfigs; } @@ -78,15 +82,26 @@ final String configFile = makeFileName(rivername, type); final File file = TsvHelper.makeFile2(configFile, rivername); - final List<String[]> tsv = TsvHelper.readTsv(file, 3); + final List<String[]> tsv = TsvHelper.readTsv(file, 5); - final Map<String, WmsConfig> wmsConfigs = new LinkedHashMap<>(tsv.size()); + final Map<String, WmsConfig[]> wmsConfigs = new LinkedHashMap<>(tsv.size()); for (final String[] line : tsv) { - final String label = line[0]; - wmsConfigs.put(label, new WmsConfig(label, line[2], line[1])); + if (line != null && line.length > 0 && !StringUtils.isEmpty(line[0])) { + final String label = line[0]; + WmsConfig defaultConfig = null; + WmsConfig vegZoneConfig = null; + + if (line.length > 2 && !StringUtils.isEmpty(line[1]) && !StringUtils.isEmpty(line[2])) { + defaultConfig = new WmsConfig(label, line[2], line[1]); + + if (line.length > 4 && !StringUtils.isEmpty(line[3]) && !StringUtils.isEmpty(line[4])) { + vegZoneConfig = new WmsConfig(label, line[4], line[3]); + } + } + wmsConfigs.put(label, new WmsConfig[] { defaultConfig, vegZoneConfig }); + } } - return new UedauernConfiguration(rivername, type, wmsConfigs); } @@ -98,27 +113,32 @@ return this.wmsConfigs.keySet(); } - public final String getUrl(final String label) throws UnsupportedEncodingException { - final WmsConfig wmsConfig = this.wmsConfigs.get(label); - return wmsConfig.getUrl(); + public WmsConfig getDefaultWmsConfig(final String label) { + return this.getConfig(label, this.DEFAULT_WMS_INDEX); } - public String getLayer(final String label) { - final WmsConfig wmsConfig = this.wmsConfigs.get(label); - return wmsConfig.getLayer(); + public WmsConfig getVegWmsConfig(final String label) { + return this.getConfig(label, this.VEGETATIONZONE_WMS_INDEX); + } + + private WmsConfig getConfig(final String label, final int index) { + if (this.wmsConfigs.containsKey(label)) + if (this.wmsConfigs.get(label) != null && index < this.wmsConfigs.get(label).length) + return this.wmsConfigs.get(label)[index]; + + return null; } public static boolean filesExistsForRiver(final String river) { - final String configFileYears = makeFileName(river, YearType.jahre); - - final File fileJahre = TsvHelper.makeFile2(configFileYears, river); + for (final YearType t : YearType.values()) { + final String configFile = makeFileName(river, t); + final File file = TsvHelper.makeFile2(configFile, river); - final String configFileMittel = makeFileName(river, YearType.mittel); - final File fileMittel = TsvHelper.makeFile2(configFileMittel, river); + if (TsvHelper.checkFile(file) == null) + return false; + } - if (TsvHelper.checkFile(fileJahre) == null || TsvHelper.checkFile(fileMittel) == null) - return false; return true; }