sascha@2186: package de.intevation.flys.artifacts.model; sascha@2186: sascha@2186: import java.util.ArrayList; sascha@2186: sascha@2186: import org.apache.log4j.Logger; sascha@2186: sascha@2186: sascha@2186: public class Calculation5 sascha@2186: extends Calculation sascha@2186: { sascha@2186: private static Logger log = Logger.getLogger(Calculation5.class); sascha@2186: sascha@2186: protected double startKm; sascha@2186: protected double [] endKms; sascha@2186: sascha@2186: public Calculation5() { sascha@2186: } sascha@2186: sascha@2186: public Calculation5(double startKm, double [] endKms) { sascha@2186: this.startKm = startKm; sascha@2186: this.endKms = endKms; sascha@2186: } sascha@2186: sascha@2186: public CalculationResult calculate(WstValueTable wst) { sascha@2186: ArrayList results = new ArrayList(); sascha@2186: sascha@2186: int numProblems = numProblems(); sascha@2186: sascha@2186: for (double endKm: endKms) { sascha@2186: sascha@2186: double [][] wws = wst.relateWs(startKm, endKm, this); sascha@2186: int newNumProblems = numProblems(); sascha@2186: sascha@2186: if (wws.length == 2) { sascha@2186: WW ww = new WW(generateName(startKm, endKm), wws[0], wws[1]); sascha@2186: sascha@2186: if (newNumProblems > newNumProblems) { sascha@2186: ww.removeNaNs(); sascha@2186: } sascha@2186: sascha@2186: results.add(ww); sascha@2186: } sascha@2186: numProblems = newNumProblems; sascha@2186: } sascha@2186: sascha@2186: return new CalculationResult( sascha@2186: results.toArray(new WW[results.size()]), sascha@2186: this); sascha@2186: } sascha@2186: sascha@2186: protected static String generateName(double startKm, double endKm) { sascha@2186: // TODO: I18N sascha@2186: return "W(km " + startKm + ") ~ W(km " + endKm + ")"; sascha@2186: } sascha@2186: } sascha@2186: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :