comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java @ 3762:0c978a80726a

Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result. flys-artifacts/trunk@5464 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 14 Sep 2012 07:12:08 +0000
parents 066e2b4d69ca
children d29cebf371ba
comparison
equal deleted inserted replaced
3761:066e2b4d69ca 3762:0c978a80726a
9 import de.intevation.artifacts.CallContext; 9 import de.intevation.artifacts.CallContext;
10 import de.intevation.flys.artifacts.FLYSArtifact; 10 import de.intevation.flys.artifacts.FLYSArtifact;
11 import de.intevation.flys.artifacts.access.BedQualityAccess; 11 import de.intevation.flys.artifacts.access.BedQualityAccess;
12 import de.intevation.flys.artifacts.model.CalculationResult; 12 import de.intevation.flys.artifacts.model.CalculationResult;
13 import de.intevation.flys.artifacts.model.FacetTypes; 13 import de.intevation.flys.artifacts.model.FacetTypes;
14 import de.intevation.flys.artifacts.model.minfo.BedBedQualityResult;
14 import de.intevation.flys.artifacts.model.minfo.BedDensityFacet; 15 import de.intevation.flys.artifacts.model.minfo.BedDensityFacet;
15 import de.intevation.flys.artifacts.model.minfo.BedDiameterFacet; 16 import de.intevation.flys.artifacts.model.minfo.BedDiameterFacet;
17 import de.intevation.flys.artifacts.model.minfo.BedLoadBedQualityResult;
16 import de.intevation.flys.artifacts.model.minfo.BedPorosityFacet; 18 import de.intevation.flys.artifacts.model.minfo.BedPorosityFacet;
17 import de.intevation.flys.artifacts.model.minfo.BedQualityCalculation; 19 import de.intevation.flys.artifacts.model.minfo.BedQualityCalculation;
20 import de.intevation.flys.artifacts.model.minfo.BedQualityResult;
18 import de.intevation.flys.artifacts.model.minfo.BedloadDiameterFacet; 21 import de.intevation.flys.artifacts.model.minfo.BedloadDiameterFacet;
19 import de.intevation.flys.artifacts.states.DefaultState; 22 import de.intevation.flys.artifacts.states.DefaultState;
20 23
21 24
22 public class BedQualityState extends DefaultState implements FacetTypes { 25 public class BedQualityState extends DefaultState implements FacetTypes {
40 43
41 if (facets == null || res == null) { 44 if (facets == null || res == null) {
42 return res; 45 return res;
43 } 46 }
44 47
45 String stateId = getID(); 48 BedQualityResult[] results = (BedQualityResult[]) res.getData();
46 49
47 // TODO CREATE FACETS DEPENDING ON THE CALCULATION RESULT 50 if (results == null || results.length == 0) {
48 newFacets.add(new BedDiameterFacet(0, BED_QUALITY_BED_DIAMETER, 51 logger.warn("Calculation computed no results!");
49 "bed diameter", ComputeType.ADVANCE, stateId, hash)); 52 return res;
53 }
50 54
51 newFacets.add(new BedloadDiameterFacet(0, BED_QUALITY_BEDLOAD_DIAMETER, 55 generateFacets(newFacets, results, getID(), hash);
52 "bedload diameter", ComputeType.ADVANCE, stateId, hash)); 56 logger.debug("Created " + newFacets.size() + " new Facets.");
53 57
54 newFacets.add(new BedPorosityFacet(0, BED_QUALITY_POROSITY, "porosity",
55 ComputeType.ADVANCE, stateId, hash));
56
57 newFacets.add(new BedDensityFacet(0, BED_QUALITY_SEDIMENT_DENSITY,
58 "density", ComputeType.ADVANCE, stateId, hash));
59
60 logger.debug("Created " + newFacets.size() + " new Facets.");
61 facets.addAll(newFacets); 58 facets.addAll(newFacets);
62 59
63 return res; 60 return res;
64 } 61 }
62
63 protected void generateFacets(List<Facet> newFacets,
64 BedQualityResult[] results, String stateId, String hash) {
65 logger.debug("BedQualityState.generateFacets");
66
67 for (int idx = 0; idx < results.length; idx++) {
68 BedQualityResult result = results[idx];
69
70 if (result instanceof BedBedQualityResult) {
71 // TODO I18N for Facet description
72 newFacets.add(new BedPorosityFacet(idx,
73 BED_QUALITY_POROSITY_TOPLAYER, "porosity_toplayer",
74 ComputeType.ADVANCE, stateId, hash));
75
76 // TODO I18N for Facet description
77 newFacets.add(new BedPorosityFacet(idx,
78 BED_QUALITY_POROSITY_SUBLAYER, "porosity_sublayer",
79 ComputeType.ADVANCE, stateId, hash));
80
81 // TODO I18N for Facet description
82 newFacets.add(new BedDensityFacet(idx,
83 BED_QUALITY_SEDIMENT_DENSITY_TOPLAYER, "density_toplayer",
84 ComputeType.ADVANCE, stateId, hash));
85
86 // TODO I18N for Facet description
87 newFacets.add(new BedDensityFacet(idx,
88 BED_QUALITY_SEDIMENT_DENSITY_SUBLAYER, "density_sublayer",
89 ComputeType.ADVANCE, stateId, hash));
90
91 // TODO I18N for Facet description
92 newFacets.add(new BedloadDiameterFacet(idx,
93 BED_QUALITY_BEDLOAD_DIAMETER, "bed diameter",
94 ComputeType.ADVANCE, stateId, hash));
95 }
96 else if (result instanceof BedLoadBedQualityResult) {
97 // TODO CREATE FACETS DEPENDING ON THE CALCULATION RESULT
98 newFacets.add(new BedDiameterFacet(idx, BED_QUALITY_BED_DIAMETER,
99 "bedload diameter", ComputeType.ADVANCE, stateId, hash));
100 }
101 else {
102 logger.warn("unknown result object: " + result.getClass());
103 }
104 }
105 }
65 } 106 }
66 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 107 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org