comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/MiddleBedHeight.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-artifacts/src/main/java/org/dive4elements/river/artifacts/states/MiddleBedHeight.java@bd047b71ab37
children 4897a58c8746
comparison
equal deleted inserted replaced
5837:d9901a08d0a6 5838:5aa05a7a34b7
1 package org.dive4elements.river.artifacts.states;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.apache.log4j.Logger;
7
8 import org.dive4elements.artifacts.CallContext;
9
10 import org.dive4elements.artifactdatabase.state.Facet;
11
12 import org.dive4elements.river.artifacts.FLYSArtifact;
13 import org.dive4elements.river.artifacts.access.BedHeightAccess;
14 import org.dive4elements.river.artifacts.model.CalculationResult;
15 import org.dive4elements.river.artifacts.model.DataFacet;
16 import org.dive4elements.river.artifacts.model.FacetTypes;
17 import org.dive4elements.river.artifacts.model.MiddleBedHeightData;
18 import org.dive4elements.river.artifacts.model.MiddleBedHeightFacet;
19 import org.dive4elements.river.artifacts.model.MiddleBedHeightCalculation;
20
21
22 /** State in which Middle Bed Heights are generated. */
23 public class MiddleBedHeight extends DefaultState implements FacetTypes {
24
25 /** Private logger. */
26 private static final Logger logger = Logger.getLogger(MiddleBedHeight.class);
27
28
29 @Override
30 public Object computeAdvance(
31 FLYSArtifact artifact,
32 String hash,
33 CallContext context,
34 List<Facet> facets,
35 Object old
36 ) {
37 logger.debug("MiddleBedHeight.computeAdvance");
38
39 List<Facet> newFacets = new ArrayList<Facet>();
40
41 BedHeightAccess access = new BedHeightAccess(artifact, context);
42
43 CalculationResult res = old instanceof CalculationResult
44 ? (CalculationResult) old
45 : new MiddleBedHeightCalculation().calculate(access);
46
47 if (facets == null || res == null) {
48 return res;
49 }
50
51 MiddleBedHeightData[] data = (MiddleBedHeightData[]) res.getData();
52
53 logger.debug("Calculated " + data.length + " MiddleBedHeightData objects");
54
55 String id = getID();
56 int idx = 0;
57
58 for (MiddleBedHeightData d: data) {
59 if (d.getStartYear() == d.getEndYear()) {
60 newFacets.add(new MiddleBedHeightFacet(
61 idx,
62 MIDDLE_BED_HEIGHT_SINGLE,
63 d.getSoundingName(context),
64 ComputeType.ADVANCE,
65 id,
66 hash
67 ));
68 }
69 else {
70 newFacets.add(new MiddleBedHeightFacet(
71 idx,
72 MIDDLE_BED_HEIGHT_EPOCH,
73 d.getSoundingName(context),
74 ComputeType.ADVANCE,
75 id,
76 hash
77 ));
78 }
79
80 idx++;
81 }
82
83 Facet csv = new DataFacet(
84 CSV, "CSV data", ComputeType.ADVANCE, hash, id);
85
86 // TODO ADD PDF FACET
87
88 newFacets.add(csv);
89
90 logger.debug("Created " + newFacets.size() + " new Facets.");
91
92 facets.addAll(newFacets);
93
94 return res;
95 }
96 }
97 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org