# HG changeset patch # User Ingo Weinzierl # Date 1314370880 0 # Node ID 9f88cc54570c8b8c2880bac894ff693350e69352 # Parent f465785ed1ae9cfe15ee8e8f1791ebeb1b37b6e1 Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state. flys-artifacts/trunk@2599 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r f465785ed1ae -r 9f88cc54570c flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Fri Aug 26 14:58:35 2011 +0000 +++ b/flys-artifacts/ChangeLog Fri Aug 26 15:01:20 2011 +0000 @@ -1,3 +1,8 @@ +2011-08-26 Ingo Weinzierl + + * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: + Set some WSPLGENJob parameters which are stored at FLYSArtifact. + 2011-08-26 Ingo Weinzierl * src/main/java/de/intevation/flys/utils/FLYSUtils.java: New. This helper diff -r f465785ed1ae -r 9f88cc54570c flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java Fri Aug 26 14:58:35 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java Fri Aug 26 15:01:20 2011 +0000 @@ -20,6 +20,7 @@ import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.WSPLGENFacet; import de.intevation.flys.artifacts.model.WSPLGENJob; +import de.intevation.flys.utils.FLYSUtils; public class FloodMapState @@ -35,6 +36,8 @@ public static final String WSPLGEN_PARAMETER_FILE = "wsplgen.par"; + public static final int WSPLGEN_DEFAULT_OUTPUT = 0; + @Override @@ -131,7 +134,6 @@ } - protected WSPLGENJob prepareWSPLGENJob( FLYSArtifact artifact, File artifactDir @@ -141,6 +143,22 @@ WSPLGENJob job = new WSPLGENJob(); File paraFile = new File(artifactDir, WSPLGEN_PARAMETER_FILE); + setOut(artifact, job); + setRange(artifact, job); + setDelta(artifact, job); + setGel(artifact, job); + setDist(artifact, job); + + // TODO + // setDgm(artifact, job); // SHP + // setPro(artifact, job); // SHP + // setWsp(artifact, job); // WSP + // setWspTag(artifact, job); + // setLine(artifact, job); // SHP + // setAxis(artifact, job); // SHP + // setArea(artifact, job); // SHP + // setOutFile(artifact, job); + try { job.toFile(paraFile); @@ -155,5 +173,71 @@ return null; } + + + protected void setOut(FLYSArtifact artifact, WSPLGENJob job) { + job.setOut(WSPLGEN_DEFAULT_OUTPUT); + } + + + protected void setRange(FLYSArtifact artifact, WSPLGENJob job) { + double[] range = FLYSUtils.getKmRange(artifact); + + job.setStart(range[0]); + job.setEnd(range[1]); + } + + + protected void setDelta(FLYSArtifact artifact, WSPLGENJob job) { + String from = artifact.getDataAsString("diff_from"); + String to = artifact.getDataAsString("diff_to"); + String diff = artifact.getDataAsString("diff_diff"); + + try { + job.setFrom(Double.parseDouble(from)); + } + catch (NumberFormatException nfe) { + } + + try { + job.setTo(Double.parseDouble(to)); + } + catch (NumberFormatException nfe) { + } + + try { + job.setDiff(Double.parseDouble(diff)); + } + catch (NumberFormatException nfe) { + } + } + + + protected void setGel(FLYSArtifact artifact, WSPLGENJob job) { + String gel = artifact.getDataAsString("use_floodplain"); + + if (gel != null && gel.length() > 0) { + boolean use = Boolean.parseBoolean(gel); + + if (use) { + job.setGel(WSPLGENJob.GEL_SPERRE); + } + else { + job.setGel(WSPLGENJob.GEL_NOSPERRE); + } + } + } + + + protected void setDist(FLYSArtifact artifact, WSPLGENJob job) { + String dist = artifact.getDataAsString("profile_distance"); + + try { + job.setDist(Double.parseDouble(dist)); + } + catch (NumberFormatException nfe) { + // nothing to do here + } + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :