comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/SQRelation.java @ 3101:b31397addf2f

Create Facets for each SQResult and SQFractionResult. flys-artifacts/trunk@4700 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 19 Jun 2012 12:25:01 +0000
parents ef0dd585b5e0
children 2feed9b50047
comparison
equal deleted inserted replaced
3100:c0abfb695332 3101:b31397addf2f
13 import de.intevation.flys.artifacts.MINFOArtifact; 13 import de.intevation.flys.artifacts.MINFOArtifact;
14 import de.intevation.flys.artifacts.model.DataFacet; 14 import de.intevation.flys.artifacts.model.DataFacet;
15 import de.intevation.flys.artifacts.model.FacetTypes; 15 import de.intevation.flys.artifacts.model.FacetTypes;
16 import de.intevation.flys.artifacts.model.CalculationResult; 16 import de.intevation.flys.artifacts.model.CalculationResult;
17 import de.intevation.flys.artifacts.model.sq.SQCurveFacet; 17 import de.intevation.flys.artifacts.model.sq.SQCurveFacet;
18 import de.intevation.flys.artifacts.model.sq.SQFractionResult;
18 import de.intevation.flys.artifacts.model.sq.SQMeasurementFacet; 19 import de.intevation.flys.artifacts.model.sq.SQMeasurementFacet;
19 import de.intevation.flys.artifacts.model.sq.SQOutlierFacet; 20 import de.intevation.flys.artifacts.model.sq.SQOutlierFacet;
20 import de.intevation.flys.artifacts.model.sq.SQRelationCalculation; 21 import de.intevation.flys.artifacts.model.sq.SQRelationCalculation;
21 import de.intevation.flys.artifacts.model.sq.SQResult; 22 import de.intevation.flys.artifacts.model.sq.SQResult;
22 import de.intevation.flys.artifacts.states.DefaultState; 23 import de.intevation.flys.artifacts.states.DefaultState;
52 if (facets == null || res == null) { 53 if (facets == null || res == null) {
53 return res; 54 return res;
54 } 55 }
55 56
56 SQResult[] sqr = (SQResult[]) res.getData(); 57 SQResult[] sqr = (SQResult[]) res.getData();
58 logger.info("Calculation computed " + sqr.length + " SQResult objects");
59
57 createFacets(newFacets, sqr, hash); 60 createFacets(newFacets, sqr, hash);
58 61
59 Facet csv = new DataFacet( 62 Facet csv = new DataFacet(
60 CSV, "CSV data", ComputeType.ADVANCE, hash, id); 63 CSV, "CSV data", ComputeType.ADVANCE, hash, id);
61 64
78 SQResult[] sqr, 81 SQResult[] sqr,
79 String hash 82 String hash
80 ) { 83 ) {
81 String stateId = getID(); 84 String stateId = getID();
82 85
83 // TODO Create facets for each parameter type (A-F) 86 for (int res = 0, n = sqr.length; res < n; res++) {
84 container.add(new SQMeasurementFacet(
85 0,
86 SQ_A_MEASUREMENT,
87 "Measurement TODO",
88 hash,
89 stateId
90 ));
91 87
92 container.add(new SQCurveFacet(0, SQ_A_CURVE, "TODO")); 88 for (int i = 0; i < 6; i++) {
89 SQFractionResult result = sqr[res].getFraction(i);
93 90
94 for (int i = 0, C = sqr[0].getOutliersCount(); i < C; i++) { 91 if (result == null) {
95 container.add(new SQOutlierFacet( 92 logger.warn("Fraction at index " + i + " is empty!");
96 0, 93 continue;
97 i, 94 }
98 SQ_A_OUTLIER, 95
99 "OUTLIER AT" + i, 96 container.add(new SQMeasurementFacet(
100 hash, 97 res,
101 stateId 98 i,
102 )); 99 getFractionFacetname(1, i),
100 "Measurement (Fraction " + i + ")",
101 hash,
102 stateId
103 ));
104
105 container.add(new SQCurveFacet(
106 res,
107 i,
108 getFractionFacetname(0, i),
109 "CURVE AT " + i,
110 hash,
111 stateId
112 ));
113
114 for (int j = 0, C = result.getOutliersCount(); j < C; j++) {
115 container.add(new SQOutlierFacet(
116 res,
117 i,
118 j,
119 getFractionFacetname(2, i),
120 "OUTLIER AT " + i,
121 hash,
122 stateId
123 ));
124 }
125 }
103 } 126 }
127 }
128
129
130 protected String getFractionFacetname(int type, int fractionIdx) {
131 logger.debug("getFractionFacetname(): " + type + " | " + fractionIdx);
132
133 switch (type) {
134 case 0:
135 switch (fractionIdx) {
136 case 0: return SQ_A_CURVE;
137 case 1: return SQ_B_CURVE;
138 case 2: return SQ_C_CURVE;
139 case 3: return SQ_D_CURVE;
140 case 4: return SQ_E_CURVE;
141 case 5: return SQ_F_CURVE;
142 }
143 case 1:
144 switch (fractionIdx) {
145 case 0: return SQ_A_MEASUREMENT;
146 case 1: return SQ_B_MEASUREMENT;
147 case 2: return SQ_C_MEASUREMENT;
148 case 3: return SQ_D_MEASUREMENT;
149 case 4: return SQ_E_MEASUREMENT;
150 case 5: return SQ_F_MEASUREMENT;
151 }
152 case 2:
153 switch (fractionIdx) {
154 case 0: return SQ_A_OUTLIER;
155 case 1: return SQ_B_OUTLIER;
156 case 2: return SQ_C_OUTLIER;
157 case 3: return SQ_D_OUTLIER;
158 case 4: return SQ_E_OUTLIER;
159 case 5: return SQ_F_OUTLIER;
160 }
161 }
162
163 return null;
104 } 164 }
105 } 165 }
106 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : 166 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org