Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationState.java @ 9176:1614cb14308f
Work on calculations for S-Info flood duration workflow
author | mschaefer |
---|---|
date | Mon, 25 Jun 2018 19:21:11 +0200 |
parents | 23945061daec |
children | a4121ec450d6 |
comparison
equal
deleted
inserted
replaced
9175:34dc0163ad2d | 9176:1614cb14308f |
---|---|
12 | 12 |
13 import org.dive4elements.artifactdatabase.state.Facet; | 13 import org.dive4elements.artifactdatabase.state.Facet; |
14 import org.dive4elements.artifacts.CallContext; | 14 import org.dive4elements.artifacts.CallContext; |
15 import org.dive4elements.river.artifacts.ChartArtifact; | 15 import org.dive4elements.river.artifacts.ChartArtifact; |
16 import org.dive4elements.river.artifacts.D4EArtifact; | 16 import org.dive4elements.river.artifacts.D4EArtifact; |
17 import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; | 17 import org.dive4elements.river.artifacts.model.Calculation; |
18 import org.dive4elements.river.artifacts.model.CalculationResult; | 18 import org.dive4elements.river.artifacts.model.CalculationResult; |
19 import org.dive4elements.river.artifacts.model.DataFacet; | 19 import org.dive4elements.river.artifacts.model.DataFacet; |
20 import org.dive4elements.river.artifacts.model.EmptyFacet; | 20 import org.dive4elements.river.artifacts.model.EmptyFacet; |
21 import org.dive4elements.river.artifacts.model.FacetTypes; | 21 import org.dive4elements.river.artifacts.model.FacetTypes; |
22 import org.dive4elements.river.artifacts.model.ReportFacet; | |
22 import org.dive4elements.river.artifacts.sinfo.SINFOArtifact; | 23 import org.dive4elements.river.artifacts.sinfo.SINFOArtifact; |
24 import org.dive4elements.river.artifacts.sinfo.common.FloodDurationProcessor; | |
23 import org.dive4elements.river.artifacts.states.DefaultState; | 25 import org.dive4elements.river.artifacts.states.DefaultState; |
24 | 26 |
25 /** State in which a waterlevel has been calculated. */ | 27 /** |
28 * Last state of the S-Info flood duration workflow that calculates and outputs the result | |
29 */ | |
26 public class FloodDurationState extends DefaultState { | 30 public class FloodDurationState extends DefaultState { |
27 | 31 |
28 /// ** The log that is used in this state. */ | 32 /// ** The log that is used in this state. */ |
29 // private static Logger log = Logger.getLogger(FlowDepthState.class); | 33 // private static Logger log = Logger.getLogger(FloodDurationState.class); |
30 | 34 |
31 private static final long serialVersionUID = 1L; | 35 private static final long serialVersionUID = 1L; |
32 | 36 |
33 /** | 37 /** |
34 * From this state can only be continued trivially. | 38 * From this state can only be continued trivially. |
42 public Object computeFeed(final D4EArtifact artifact, final String hash, final CallContext context, final List<Facet> facets, final Object old) { | 46 public Object computeFeed(final D4EArtifact artifact, final String hash, final CallContext context, final List<Facet> facets, final Object old) { |
43 if (artifact instanceof ChartArtifact) { | 47 if (artifact instanceof ChartArtifact) { |
44 facets.add(new EmptyFacet()); | 48 facets.add(new EmptyFacet()); |
45 return null; | 49 return null; |
46 } | 50 } |
47 | |
48 return compute((SINFOArtifact) artifact, context, hash, facets, old); | 51 return compute((SINFOArtifact) artifact, context, hash, facets, old); |
49 } | 52 } |
50 | 53 |
51 @Override | 54 @Override |
52 public Object computeAdvance(final D4EArtifact artifact, final String hash, final CallContext context, final List<Facet> facets, final Object old) { | 55 public Object computeAdvance(final D4EArtifact artifact, final String hash, final CallContext context, final List<Facet> facets, final Object old) { |
69 | 72 |
70 if (facets == null) | 73 if (facets == null) |
71 return res; | 74 return res; |
72 | 75 |
73 final FloodDurationCalculationResults results = (FloodDurationCalculationResults) res.getData(); | 76 final FloodDurationCalculationResults results = (FloodDurationCalculationResults) res.getData(); |
77 final FloodDurationCalculationResult result = results.getResult(); | |
78 if (result != null) { | |
79 // add themes for chart | |
80 final int index = 0; | |
74 | 81 |
75 /* add themes for chart, for each result */ | 82 facets.add(FloodDurationProcessor.createFloodDurationFacet(context, hash, this.id, result, index)); |
76 final List<AbstractCalculationExportableResult<FloodDurationCalculationResults>> resultList = results.getResults(); | 83 facets.add(FloodDurationProcessor.createMainValueDurationFacet(context, hash, this.id, result, index)); |
77 for (int index = 0; index < resultList.size(); index++) { | |
78 | 84 |
79 final AbstractCalculationExportableResult<FloodDurationCalculationResults> result = resultList.get(0); | 85 facets.add(new DataFacet(FacetTypes.CSV, "CSV data", ComputeType.ADVANCE, hash, this.id)); |
80 | 86 facets.add(new DataFacet(FacetTypes.PDF, "PDF data", ComputeType.ADVANCE, hash, this.id)); |
81 /* filtered (zoom dependent mean) flow depth TODO: */ | |
82 // facets.add(FloodDurationProcessor.createFlowDepthFilteredFacet(context, hash, this.id, result, index)); | |
83 // facets.add(FloodDurationProcessor.createFlowDepthRawFacet(context, hash, this.id, result, index)); | |
84 | |
85 } | 87 } |
86 | 88 |
87 if (!resultList.isEmpty()) { | 89 final Calculation report = res.getReport(); |
88 final Facet csv = new DataFacet(FacetTypes.CSV, "CSV data", ComputeType.ADVANCE, hash, this.id); | 90 if (report.hasProblems()) |
89 final Facet pdf = new DataFacet(FacetTypes.PDF, "PDF data", ComputeType.ADVANCE, hash, this.id); | 91 facets.add(new ReportFacet(ComputeType.ADVANCE, hash, this.id)); |
90 | |
91 facets.add(csv); | |
92 facets.add(pdf); | |
93 } | |
94 | |
95 // final Calculation report = res.getReport(); | |
96 // | |
97 // if (report.hasProblems()) { | |
98 // facets.add(new ReportFacet(ComputeType.ADVANCE, hash, this.id)); | |
99 // } | |
100 | 92 |
101 return res; | 93 return res; |
102 } | 94 } |
103 | 95 |
104 private CalculationResult doCompute(final SINFOArtifact sinfo, final CallContext context, final Object old) { | 96 private CalculationResult doCompute(final SINFOArtifact sinfo, final CallContext context, final Object old) { |