Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DischargeState.java @ 3785:a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-artifacts/trunk
........
r5501 | felix | 2012-09-18 11:49:45 +0200 (Di, 18 Sep 2012) | 1 line
fix issue865 - missing showarea theme prop.
........
r5502 | clins | 2012-09-18 12:18:30 +0200 (Di, 18 Sep 2012) | 1 line
Add robustness checks to prevent NPEs
........
r5504 | felix | 2012-09-18 14:03:15 +0200 (Di, 18 Sep 2012) | 1 line
i18n for area label (fix issue487).
........
r5505 | clins | 2012-09-18 16:19:59 +0200 (Di, 18 Sep 2012) | 1 line
Update themes to show point descriptions
........
r5506 | rrenkert | 2012-09-18 17:00:30 +0200 (Di, 18 Sep 2012) | 3 lines
Removed incorrect characteristic diameter.
........
r5507 | rrenkert | 2012-09-18 17:03:20 +0200 (Di, 18 Sep 2012) | 3 lines
Fixed some stupid bugs in bed quality data factory and calculation.
........
r5508 | teichmann | 2012-09-18 17:45:49 +0200 (Di, 18 Sep 2012) | 1 line
The usual whitespace and import cleanups.
........
r5511 | teichmann | 2012-09-18 18:24:51 +0200 (Di, 18 Sep 2012) | 1 line
Use generics aware Collections.emptyList().
........
r5512 | teichmann | 2012-09-18 20:36:52 +0200 (Di, 18 Sep 2012) | 1 line
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
........
r5513 | clins | 2012-09-18 23:38:19 +0200 (Di, 18 Sep 2012) | 1 line
A and B facets of fix analyis are now deactivated by default
........
r5516 | bricks | 2012-09-19 10:45:51 +0200 (Mi, 19 Sep 2012) | 2 lines
Add the gauge station to the GaugeOverviewInfoService xml response
........
r5517 | rrenkert | 2012-09-19 10:50:23 +0200 (Mi, 19 Sep 2012) | 3 lines
Added CSV export to bed quality calculation.
........
r5518 | bricks | 2012-09-19 11:04:04 +0200 (Mi, 19 Sep 2012) | 2 lines
Fix date in changelog entry
........
r5519 | teichmann | 2012-09-19 11:17:14 +0200 (Mi, 19 Sep 2012) | 1 line
Removed trailing whitespace.
........
flys-artifacts/tags/2.9.1@5531 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 19 Sep 2012 14:58:31 +0000 |
parents | e54f8dc222cf |
children | 208a891c21b5 |
line wrap: on
line source
package de.intevation.flys.artifacts.states; import java.util.List; import org.apache.log4j.Logger; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.common.model.KVP; import de.intevation.flys.model.DischargeZone; import de.intevation.flys.model.River; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.utils.FLYSUtils; public class DischargeState extends MultiIntArrayState { public static final String MAIN_CHANNEL = "main_channel"; public static final String TOTAL_CHANNEL = "total_channel"; private static final Logger logger = Logger.getLogger(DischargeState.class); @Override public String getUIProvider() { return "parameter-matrix"; } /** * This method fetches all DischargeZones for a given river (extracted from * <i>artifact</i>) and returns a KVP[] where the key is the ID of the * DischargeZone and the value is a string that consists of lower discharge * and upper discharge. * * @param artifact Needs to be a FLYSArtifact that provides river * information. * @param parameterName The name of a parameter. * * @return a KVP[]. */ @Override protected KVP<Integer, String>[] getOptions( Artifact artifact, String parameterName ) throws IllegalArgumentException { if (!testParameterName(parameterName)) { throw new IllegalArgumentException( "Invalid parameter for state: '" + parameterName + "'"); } List<DischargeZone> zones = getDischargeZones(artifact); KVP[] kvp = new KVP[zones.size()]; for (int i = 0, Z = zones.size(); i < Z; i++) { DischargeZone zone = zones.get(i); String lower = zone.getLowerDischarge(); String upper = zone.getUpperDischarge(); if (lower.equals(upper)) { kvp[i] = new KVP(zone.getId(), lower); } else { kvp[i] = new KVP(zone.getId(), lower + " - " + upper); } } return kvp; } @Override protected String getLabelFor( CallContext cc, String parameterName, int value ) throws IllegalArgumentException { if (!testParameterName(parameterName)) { throw new IllegalArgumentException( "Invalid parameter for state: '" + parameterName + "'"); } DischargeZone zone = DischargeZone.getDischargeZoneById(value); if (zone == null) { throw new IllegalArgumentException( "Invalid id for DischargeZone: '" + value + "'"); } String lo = zone.getLowerDischarge(); String hi = zone.getUpperDischarge(); return hi != null && lo.equals(hi) ? lo + " - " + hi : lo; } /** * This method might be used to test, if a parameter name is handled by this * state. * * @param parameterName The name of a parameter. * * @return true, if parameterName is one of <i>MAIN_CHANNEL</i> or * <i>TOTAL_CHANNEL</i>. Otherwise false. */ protected boolean testParameterName(String parameterName) { if (parameterName == null || parameterName.length() == 0) { return false; } else if (parameterName.equals(MAIN_CHANNEL)) { return true; } else if (parameterName.equals(TOTAL_CHANNEL)) { return true; } else { return false; } } /** * Returns all discharge zones for a given river. The river information is * extracted from <i>artifact</i> using FLYSUtils.getRiver(). * * @param artifact Needs to be a FLYSArtifact that stores a rivername. * * @return a list of DischargeZones. * * @throws IllegalArgumentException if no river information is provided by * <i>artifact</i>. */ protected List<DischargeZone> getDischargeZones(Artifact artifact) throws IllegalArgumentException { River river = FLYSUtils.getRiver((FLYSArtifact) artifact); if (river == null) { throw new IllegalArgumentException("No river found"); } List<DischargeZone> zones = DischargeZone.getDischargeZones(river); logger.debug("Found " + zones.size() + " DischargeZones."); return zones; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :