Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation5.java @ 2326:c321b39b39ab
'Bezugslinienverfahren': Generate valid i18n names for datasets.
flys-artifacts/trunk@4010 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 09 Feb 2012 17:28:31 +0000 |
parents | d4330439be3a |
children | 5642a83420f2 |
comparison
equal
deleted
inserted
replaced
2325:1fcaeced48f2 | 2326:c321b39b39ab |
---|---|
1 package de.intevation.flys.artifacts.model; | 1 package de.intevation.flys.artifacts.model; |
2 | |
3 import de.intevation.artifacts.CallContext; | |
4 import de.intevation.artifacts.CallMeta; | |
5 | |
6 import de.intevation.flys.utils.Formatter; | |
7 | |
8 import java.text.NumberFormat; | |
2 | 9 |
3 import java.util.ArrayList; | 10 import java.util.ArrayList; |
4 import java.util.Map; | 11 import java.util.Map; |
5 | 12 |
6 import org.apache.log4j.Logger; | 13 import org.apache.log4j.Logger; |
7 | |
8 | 14 |
9 public class Calculation5 | 15 public class Calculation5 |
10 extends Calculation | 16 extends Calculation |
11 { | 17 { |
12 private static Logger log = Logger.getLogger(Calculation5.class); | 18 private static Logger log = Logger.getLogger(Calculation5.class); |
22 this.endKms = endKms; | 28 this.endKms = endKms; |
23 } | 29 } |
24 | 30 |
25 public CalculationResult calculate( | 31 public CalculationResult calculate( |
26 WstValueTable wst, | 32 WstValueTable wst, |
27 Map<Double, Double> kms2gaugeDatums | 33 Map<Double, Double> kms2gaugeDatums, |
34 CallContext context | |
28 ) { | 35 ) { |
29 ArrayList<WWQQ> results = new ArrayList<WWQQ>(); | 36 ArrayList<WWQQ> results = new ArrayList<WWQQ>(); |
30 | 37 |
31 int numProblems = numProblems(); | 38 int numProblems = numProblems(); |
39 | |
40 CallMeta meta = context.getMeta(); | |
32 | 41 |
33 for (double endKm: endKms) { | 42 for (double endKm: endKms) { |
34 | 43 |
35 double [][] wws = wst.relateWs(startKm, endKm, this); | 44 double [][] wws = wst.relateWs(startKm, endKm, this); |
36 int newNumProblems = numProblems(); | 45 int newNumProblems = numProblems(); |
37 | 46 |
38 if (wws.length == 4) { | 47 if (wws.length == 4) { |
39 WWQQ wwqq = new WWQQ( | 48 WWQQ wwqq = new WWQQ( |
40 generateName(startKm, endKm), | 49 generateName(meta, startKm, endKm), |
41 startKm, kms2gaugeDatums.get(startKm), wws[0], wws[1], | 50 startKm, kms2gaugeDatums.get(startKm), wws[0], wws[1], |
42 endKm, kms2gaugeDatums.get(endKm), wws[2], wws[3]); | 51 endKm, kms2gaugeDatums.get(endKm), wws[2], wws[3]); |
43 | 52 |
44 if (newNumProblems > numProblems) { | 53 if (newNumProblems > numProblems) { |
45 wwqq.removeNaNs(); | 54 wwqq.removeNaNs(); |
53 return new CalculationResult( | 62 return new CalculationResult( |
54 results.toArray(new WWQQ[results.size()]), | 63 results.toArray(new WWQQ[results.size()]), |
55 this); | 64 this); |
56 } | 65 } |
57 | 66 |
58 protected static String generateName(double startKm, double endKm) { | 67 protected static String generateName( |
59 // TODO: I18N | 68 CallMeta meta, |
60 return "W(km " + startKm + ") ~ W(km " + endKm + ")"; | 69 double startKm, |
70 double endKm | |
71 ) { | |
72 NumberFormat nf = Formatter.getCalculationKm(meta); | |
73 return "W(km " + nf.format(startKm) + | |
74 ") ~ W(km " + nf.format(endKm) + ")"; | |
61 } | 75 } |
62 } | 76 } |
63 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 77 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |