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 :

http://dive4elements.wald.intevation.org