Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java @ 4812:65bfb6faa538
Bring Access pattern to "W fuer ungleichwertige Abflusslaengsschnitte".
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Fri, 18 Jan 2013 19:33:26 +0100 |
parents | cf5ac1097d6a |
children | 298d540f7b70 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java Fri Jan 18 10:30:09 2013 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java Fri Jan 18 19:33:26 2013 +0100 @@ -10,6 +10,8 @@ import de.intevation.artifacts.common.utils.StringUtils; +import de.intevation.flys.artifacts.access.Calculation4Access; + import de.intevation.flys.artifacts.geom.Lines; import de.intevation.flys.artifacts.model.Calculation1; @@ -22,15 +24,16 @@ import de.intevation.flys.artifacts.model.CalculationResult; import de.intevation.flys.artifacts.model.DischargeTables; import de.intevation.flys.artifacts.model.FacetTypes; -import de.intevation.flys.artifacts.model.Segment; import de.intevation.flys.artifacts.model.WQCKms; import de.intevation.flys.artifacts.model.WQKms; import de.intevation.flys.artifacts.model.WW; import de.intevation.flys.artifacts.model.WstValueTable; import de.intevation.flys.artifacts.model.WstValueTableFactory; + import de.intevation.flys.artifacts.model.extreme.ExtremeResult; import de.intevation.flys.artifacts.states.DefaultState.ComputeType; + import de.intevation.flys.artifacts.states.LocationDistanceSelect; import de.intevation.flys.model.DischargeTable; @@ -47,7 +50,6 @@ import java.util.Arrays; import java.util.Calendar; -import java.util.Collections; import java.util.GregorianCalendar; import java.util.List; import java.util.Map; @@ -169,6 +171,12 @@ return this.getWaterlevelData(null); } + // THIS IS FREAKY BULLSHIT! Felix, why do you call the calculation directly???? + protected CalculationResult getDischargeLongitudinalSectionData() { + // XXX: THIS AN _EXPENSIVE_ CALCULATION! CACHE IT! + return new Calculation4(new Calculation4Access(this)).calculate(); + } + /** * Returns the data that is computed by a waterlevel computation. * @@ -405,48 +413,6 @@ /** - * Returns the data computed by the discharge longitudinal section - * computation. - * - * @return an array of WQKms object - one object for each given Q value. - */ - public CalculationResult getDischargeLongitudinalSectionData() { - - logger.debug("WINFOArtifact.getDischargeLongitudinalSectionData"); - - River river = FLYSUtils.getRiver(this); - if (river == null) { - logger.debug("No river selected."); - return error(new WQKms[0], "no.river.selected"); - } - - WstValueTable table = WstValueTableFactory.getTable(river); - if (table == null) { - logger.debug("No wst found for selected river."); - return error(new WQKms[0], "no.wst.for.river"); - } - - List<Segment> segments = getSegments(); - - if (segments == null) { - logger.debug("Cannot create segments."); - return error(new WQKms[0], "cannot.create.segments"); - } - - double [] range = getFromToStep(); - - if (range == null) { - logger.debug("Cannot figure out range."); - return error(new WQKms[0], "no.range.found"); - } - - Calculation4 calc4 = new Calculation4(segments, river, isQ()); - - return calc4.calculate(table, range[0], range[1], range[2]); - } - - - /** * Returns the data that is computed by a reference curve computation. * * @return the data computed by a reference curve computation. @@ -574,21 +540,6 @@ } - public List<Segment> getSegments() { - StateData wqValues = getData("wq_values"); - if (wqValues == null) { - logger.warn("no wq_values given"); - return Collections.<Segment>emptyList(); - } - String input = (String) wqValues.getValue(); - if (input == null || (input = input.trim()).length() == 0) { - logger.warn("wq_values are empty"); - return Collections.<Segment>emptyList(); - } - return Segment.parseSegments(input); - } - - /** * Get corrected waterline against surface/profile. */