Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentState.java @ 8953:c40db8e8dcae
SINFO - Flow depth development - implemented exporters
author | gernotbelger |
---|---|
date | Mon, 19 Mar 2018 14:01:21 +0100 |
parents | 322b0e6298ea |
children | ee5ce13016ed |
rev | line source |
---|---|
8951 | 1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde |
2 * Software engineering by | |
3 * Björnsen Beratende Ingenieure GmbH | |
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt | |
5 * | |
6 * This file is Free Software under the GNU AGPL (>=v3) | |
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the | |
8 * documentation coming with Dive4Elements River for details. | |
9 */ | |
10 package org.dive4elements.river.artifacts.sinfo.flowdepthdev; | |
11 | |
12 import java.util.List; | |
13 | |
14 import org.dive4elements.artifactdatabase.state.Facet; | |
15 import org.dive4elements.artifacts.CallContext; | |
16 import org.dive4elements.river.artifacts.ChartArtifact; | |
17 import org.dive4elements.river.artifacts.D4EArtifact; | |
8953
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
18 import org.dive4elements.river.artifacts.model.Calculation; |
8951 | 19 import org.dive4elements.river.artifacts.model.CalculationResult; |
8953
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
20 import org.dive4elements.river.artifacts.model.DataFacet; |
8951 | 21 import org.dive4elements.river.artifacts.model.EmptyFacet; |
8953
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
22 import org.dive4elements.river.artifacts.model.FacetTypes; |
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
23 import org.dive4elements.river.artifacts.model.ReportFacet; |
8951 | 24 import org.dive4elements.river.artifacts.sinfo.SINFOArtifact; |
25 import org.dive4elements.river.artifacts.states.DefaultState; | |
26 | |
27 /** | |
28 * @author Gernot Belger | |
29 */ | |
30 public class FlowDepthDevelopmentState extends DefaultState { | |
31 | |
32 private static final long serialVersionUID = 1L; | |
33 | |
34 /** | |
35 * From this state can only be continued trivially. | |
36 */ | |
37 @Override | |
38 protected String getUIProvider() { | |
39 return "continue"; | |
40 } | |
41 | |
42 @Override | |
43 public Object computeFeed(final D4EArtifact artifact, final String hash, final CallContext context, final List<Facet> facets, final Object old) { | |
44 // FIXME: why is this necessary? | |
45 if (artifact instanceof ChartArtifact) { | |
46 facets.add(new EmptyFacet()); | |
47 return null; | |
48 } | |
49 | |
50 return compute((SINFOArtifact) artifact, context, hash, facets, old); | |
51 } | |
52 | |
53 @Override | |
54 public Object computeAdvance(final D4EArtifact artifact, final String hash, final CallContext context, final List<Facet> facets, final Object old) { | |
55 if (artifact instanceof ChartArtifact) { | |
56 facets.add(new EmptyFacet()); | |
57 return null; | |
58 } | |
59 return compute((SINFOArtifact) artifact, context, hash, facets, old); | |
60 } | |
61 | |
62 /** | |
63 * Compute result or returned object from cache, create facets. | |
64 * | |
65 * @param old | |
66 * Object that was cached. | |
67 */ | |
68 private Object compute(final SINFOArtifact sinfo, final CallContext context, final String hash, final List<Facet> facets, final Object old) { | |
69 | |
70 final CalculationResult res = doCompute(sinfo, context, old); | |
71 | |
72 if (facets == null) | |
73 return res; | |
74 | |
8953
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
75 final FlowDepthDevelopmentCalculationResults results = (FlowDepthDevelopmentCalculationResults) res.getData(); |
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
76 final FlowDepthDevelopmentCalculationResult result = results.getResult(); |
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
77 if (result == null) |
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
78 return res; |
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
79 |
8951 | 80 // /* add themes for chart, for each result */ |
81 // final List<FlowDepthCalculationResult> resultList = results.getResults(); | |
82 // for (int index = 0; index < resultList.size(); index++) { | |
83 // | |
84 // final FlowDepthCalculationResult result = resultList.get(index); | |
85 // | |
86 // /* filtered (zoom dependent mean) flow depth */ | |
87 // facets.add(FlowDepthProcessor.createFlowDepthFacet(context, hash, this.id, result, index)); | |
88 // | |
89 // if (results.isUseTkh()) { | |
90 // /* filtered (zoom dependent mean) flow depth including tkh */ | |
91 // facets.add(FlowDepthProcessor.createFlowDepthTkhFacet(context, hash, this.id, result, index)); | |
92 // | |
93 // facets.add(TkhProcessor.createTkhFacet(context, hash, this.id, result, index)); | |
94 // } | |
95 // } | |
8953
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
96 |
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
97 facets.add(new DataFacet(FacetTypes.CSV, "CSV data", ComputeType.ADVANCE, hash, this.id)); |
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
98 facets.add(new DataFacet(FacetTypes.PDF, "PDF data", ComputeType.ADVANCE, hash, this.id)); |
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
99 |
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
100 final Calculation report = res.getReport(); |
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
101 if (report.hasProblems()) |
c40db8e8dcae
SINFO - Flow depth development - implemented exporters
gernotbelger
parents:
8951
diff
changeset
|
102 facets.add(new ReportFacet(ComputeType.ADVANCE, hash, this.id)); |
8951 | 103 |
104 return res; | |
105 } | |
106 | |
107 private CalculationResult doCompute(final SINFOArtifact sinfo, final CallContext context, final Object old) { | |
108 if (old instanceof CalculationResult) | |
109 return (CalculationResult) old; | |
110 | |
111 return new FlowDepthDevelopmentCalculation(context).calculate(sinfo); | |
112 } | |
113 } |