Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java @ 3437:e111902834d3
FixA: Made calculation base class abstract. Sub classes are called with fixings overview an function to fit.
flys-artifacts/trunk@5100 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 23 Jul 2012 09:09:49 +0000 |
parents | 262e7d7e58fe |
children | b5eec54bd4a2 |
comparison
equal
deleted
inserted
replaced
3436:0d63581c5df1 | 3437:e111902834d3 |
---|---|
3 import de.intevation.artifacts.common.utils.StringUtils; | 3 import de.intevation.artifacts.common.utils.StringUtils; |
4 | 4 |
5 import de.intevation.flys.artifacts.access.FixAccess; | 5 import de.intevation.flys.artifacts.access.FixAccess; |
6 | 6 |
7 import de.intevation.flys.artifacts.math.fitting.Function; | 7 import de.intevation.flys.artifacts.math.fitting.Function; |
8 import de.intevation.flys.artifacts.math.fitting.FunctionFactory; | |
8 | 9 |
9 import de.intevation.flys.artifacts.model.Calculation; | 10 import de.intevation.flys.artifacts.model.Calculation; |
11 import de.intevation.flys.artifacts.model.CalculationResult; | |
10 import de.intevation.flys.artifacts.model.FixingsColumn; | 12 import de.intevation.flys.artifacts.model.FixingsColumn; |
11 import de.intevation.flys.artifacts.model.FixingsColumnFactory; | 13 import de.intevation.flys.artifacts.model.FixingsColumnFactory; |
12 | 14 |
13 import de.intevation.flys.artifacts.model.FixingsOverview.Fixing.Filter; | 15 import de.intevation.flys.artifacts.model.FixingsOverview.Fixing.Filter; |
14 | 16 |
15 import de.intevation.flys.artifacts.model.FixingsOverview.Fixing; | 17 import de.intevation.flys.artifacts.model.FixingsOverview.Fixing; |
16 import de.intevation.flys.artifacts.model.FixingsOverview.IdsFilter; | 18 import de.intevation.flys.artifacts.model.FixingsOverview.IdsFilter; |
17 | 19 |
18 import de.intevation.flys.artifacts.model.FixingsOverview; | 20 import de.intevation.flys.artifacts.model.FixingsOverview; |
21 import de.intevation.flys.artifacts.model.FixingsOverviewFactory; | |
19 import de.intevation.flys.artifacts.model.Parameters; | 22 import de.intevation.flys.artifacts.model.Parameters; |
20 | 23 |
21 import de.intevation.flys.utils.DoubleUtil; | 24 import de.intevation.flys.utils.DoubleUtil; |
22 import de.intevation.flys.utils.KMIndex; | 25 import de.intevation.flys.utils.KMIndex; |
23 | 26 |
27 import java.util.List; | 30 import java.util.List; |
28 import java.util.Map; | 31 import java.util.Map; |
29 | 32 |
30 import org.apache.log4j.Logger; | 33 import org.apache.log4j.Logger; |
31 | 34 |
32 public class FixCalculation | 35 public abstract class FixCalculation |
33 extends Calculation | 36 extends Calculation |
34 { | 37 { |
35 private static Logger log = Logger.getLogger(FixCalculation.class); | 38 private static Logger log = Logger.getLogger(FixCalculation.class); |
36 | 39 |
37 public static final double EPSILON = 1e-4; | 40 public static final double EPSILON = 1e-4; |
38 | 41 |
371 return new FitResult( | 374 return new FitResult( |
372 results, | 375 results, |
373 referenced, | 376 referenced, |
374 outliers); | 377 outliers); |
375 } | 378 } |
379 | |
380 public CalculationResult calculate() { | |
381 FixingsOverview overview = | |
382 FixingsOverviewFactory.getOverview(river); | |
383 | |
384 if (overview == null) { | |
385 addProblem("fix.no.overview.available"); | |
386 } | |
387 | |
388 Function func = FunctionFactory.getInstance() | |
389 .getFunction(function); | |
390 | |
391 if (func == null) { | |
392 addProblem("fix.invalid.function.name"); | |
393 } | |
394 | |
395 if (hasProblems()) { | |
396 return new CalculationResult(this); | |
397 } | |
398 | |
399 return innerCalculate(overview, func); | |
400 } | |
401 | |
402 protected abstract CalculationResult innerCalculate( | |
403 FixingsOverview overview, | |
404 Function function | |
405 ); | |
376 } | 406 } |
377 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 407 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |