Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SQRelationCalculation.java @ 3299:d76a889bc30d
Removed trailing whitespace.
flys-artifacts/trunk@4984 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 13 Jul 2012 10:17:05 +0000 |
parents | 79c8e0d9fdea |
children | 02d5731b43a2 |
rev | line source |
---|---|
3072
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.model.sq; |
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
3 import de.intevation.flys.artifacts.access.SQRelationAccess; |
3072
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 |
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 import de.intevation.flys.artifacts.model.Calculation; |
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 import de.intevation.flys.artifacts.model.CalculationResult; |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
7 import de.intevation.flys.artifacts.model.DateRange; |
3072
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
9 import de.intevation.flys.backend.SedDBSessionHolder; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
10 |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
11 import org.apache.log4j.Logger; |
3072
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 |
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 public class SQRelationCalculation extends Calculation { |
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
15 private static final Logger log = |
3072
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 Logger.getLogger(SQRelationCalculation.class); |
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
18 protected String river; |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
19 protected double location; |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
20 protected DateRange [] periods; |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
21 protected double outliers; |
3072
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
23 public SQRelationCalculation() { |
3079
8ad8a227d983
Added model classes for SQ calculation; generate fake results and improved the SQRelationGenerator which now draws the outliers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3072
diff
changeset
|
24 } |
8ad8a227d983
Added model classes for SQ calculation; generate fake results and improved the SQRelationGenerator which now draws the outliers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3072
diff
changeset
|
25 |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
26 public SQRelationCalculation(SQRelationAccess access) { |
3079
8ad8a227d983
Added model classes for SQ calculation; generate fake results and improved the SQRelationGenerator which now draws the outliers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3072
diff
changeset
|
27 |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
28 String river = access.getRiver(); |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
29 Double location = access.getLocation(); |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
30 DateRange [] periods = access.getPeriods(); |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
31 Double outliers = access.getOutliers(); |
3101
b31397addf2f
Create Facets for each SQResult and SQFractionResult.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3079
diff
changeset
|
32 |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
33 if (river == null) { |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
34 // TODO: i18n |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
35 addProblem("sq.missing.river"); |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
36 } |
3101
b31397addf2f
Create Facets for each SQResult and SQFractionResult.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3079
diff
changeset
|
37 |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
38 if (location == null) { |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
39 // TODO: i18n |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
40 addProblem("sq.missing.location"); |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
41 } |
3101
b31397addf2f
Create Facets for each SQResult and SQFractionResult.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3079
diff
changeset
|
42 |
3297
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
43 if (periods == null || periods.length == 0) { |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
44 // TODO: i18n |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
45 addProblem("sq.missing.periods"); |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
46 } |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
47 |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
48 if (outliers == null) { |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
49 // TODO: i18n |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
50 addProblem("sq.missing.outliers"); |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
51 } |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
52 |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
53 if (!hasProblems()) { |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
54 this.river = river; |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
55 this.location = location; |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
56 this.periods = periods; |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
57 this.outliers = outliers; |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
58 } |
3079
8ad8a227d983
Added model classes for SQ calculation; generate fake results and improved the SQRelationGenerator which now draws the outliers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3072
diff
changeset
|
59 } |
8ad8a227d983
Added model classes for SQ calculation; generate fake results and improved the SQRelationGenerator which now draws the outliers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3072
diff
changeset
|
60 |
3105
9592b7d76633
Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3101
diff
changeset
|
61 |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
62 public CalculationResult calculate() { |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
63 log.debug("SQRelationCalculation.calculate"); |
3079
8ad8a227d983
Added model classes for SQ calculation; generate fake results and improved the SQRelationGenerator which now draws the outliers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3072
diff
changeset
|
64 |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
65 if (hasProblems()) { |
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
66 return new CalculationResult(this); |
3118
6fb211753674
The fake calculation for SQ relation now creates only values bigger than 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3105
diff
changeset
|
67 } |
3079
8ad8a227d983
Added model classes for SQ calculation; generate fake results and improved the SQRelationGenerator which now draws the outliers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3072
diff
changeset
|
68 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
69 SedDBSessionHolder.acquire(); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
70 try { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
71 return internalCalculate(); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
72 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
73 finally { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
74 SedDBSessionHolder.release(); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
75 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
76 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
77 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
78 protected CalculationResult internalCalculate() { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
79 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
80 boolean debug = log.isDebugEnabled(); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
81 |
3297
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
82 // XXX: We can only produce one SQResult. |
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
83 DateRange period = periods[0]; |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
84 |
3297
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
85 Measurements measurements = |
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
86 MeasurementFactory.getMeasurements(river, location, period); |
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
87 |
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
88 if (debug) { |
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
89 log.debug(measurements.toString()); |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
90 } |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
91 |
3297
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
92 SQFractionResult [] fractionResults = |
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
93 new SQFractionResult[SQResult.NUMBER_FRACTIONS]; |
3222
116b342893e3
SQ: Connect calculation with artifact parameter access.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3118
diff
changeset
|
94 |
3297
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
95 for (int i = 0; i < fractionResults.length; ++i) { |
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
96 // TODO: Implement me! |
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
97 } |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3222
diff
changeset
|
98 |
3297
79c8e0d9fdea
SQ relation: Use only first time period.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
99 return new CalculationResult(new SQResult(fractionResults), this); |
3072
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
100 } |
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
101 } |
0d3dd8230064
Added component stubs for SQ relation calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
102 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |