Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation5.java @ 2186:ec2574eb2d32
Added calculation class for "Bezugslinienverfahren" to created by WINFOArtifact.
flys-artifacts/trunk@3792 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 27 Jan 2012 12:42:20 +0000 |
parents | |
children | 922c672ec6c1 |
comparison
equal
deleted
inserted
replaced
2185:a9a8df1473fd | 2186:ec2574eb2d32 |
---|---|
1 package de.intevation.flys.artifacts.model; | |
2 | |
3 import java.util.ArrayList; | |
4 | |
5 import org.apache.log4j.Logger; | |
6 | |
7 | |
8 public class Calculation5 | |
9 extends Calculation | |
10 { | |
11 private static Logger log = Logger.getLogger(Calculation5.class); | |
12 | |
13 protected double startKm; | |
14 protected double [] endKms; | |
15 | |
16 public Calculation5() { | |
17 } | |
18 | |
19 public Calculation5(double startKm, double [] endKms) { | |
20 this.startKm = startKm; | |
21 this.endKms = endKms; | |
22 } | |
23 | |
24 public CalculationResult calculate(WstValueTable wst) { | |
25 ArrayList<WW> results = new ArrayList<WW>(); | |
26 | |
27 int numProblems = numProblems(); | |
28 | |
29 for (double endKm: endKms) { | |
30 | |
31 double [][] wws = wst.relateWs(startKm, endKm, this); | |
32 int newNumProblems = numProblems(); | |
33 | |
34 if (wws.length == 2) { | |
35 WW ww = new WW(generateName(startKm, endKm), wws[0], wws[1]); | |
36 | |
37 if (newNumProblems > newNumProblems) { | |
38 ww.removeNaNs(); | |
39 } | |
40 | |
41 results.add(ww); | |
42 } | |
43 numProblems = newNumProblems; | |
44 } | |
45 | |
46 return new CalculationResult( | |
47 results.toArray(new WW[results.size()]), | |
48 this); | |
49 } | |
50 | |
51 protected static String generateName(double startKm, double endKm) { | |
52 // TODO: I18N | |
53 return "W(km " + startKm + ") ~ W(km " + endKm + ")"; | |
54 } | |
55 } | |
56 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |