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 :

http://dive4elements.wald.intevation.org