comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java @ 3767:b4ad8dafe584

Created i18n descriptions for facets in bed quality calculation. flys-artifacts/trunk@5470 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 14 Sep 2012 13:53:16 +0000
parents d29cebf371ba
children 5a8f8fd5310c
comparison
equal deleted inserted replaced
3766:d29cebf371ba 3767:b4ad8dafe584
1 package de.intevation.flys.artifacts.states.minfo; 1 package de.intevation.flys.artifacts.states.minfo;
2 2
3 import java.util.ArrayList; 3 import java.util.ArrayList;
4 import java.util.Date;
4 import java.util.List; 5 import java.util.List;
5 6
6 import org.apache.log4j.Logger; 7 import org.apache.log4j.Logger;
7 8
8 import de.intevation.artifactdatabase.state.Facet; 9 import de.intevation.artifactdatabase.state.Facet;
9 import de.intevation.artifacts.CallContext; 10 import de.intevation.artifacts.CallContext;
11 import de.intevation.artifacts.CallMeta;
10 import de.intevation.flys.artifacts.FLYSArtifact; 12 import de.intevation.flys.artifacts.FLYSArtifact;
11 import de.intevation.flys.artifacts.access.BedQualityAccess; 13 import de.intevation.flys.artifacts.access.BedQualityAccess;
12 import de.intevation.flys.artifacts.model.CalculationResult; 14 import de.intevation.flys.artifacts.model.CalculationResult;
15 import de.intevation.flys.artifacts.model.DateRange;
13 import de.intevation.flys.artifacts.model.FacetTypes; 16 import de.intevation.flys.artifacts.model.FacetTypes;
14 import de.intevation.flys.artifacts.model.minfo.BedBedQualityResult; 17 import de.intevation.flys.artifacts.model.minfo.BedBedQualityResult;
15 import de.intevation.flys.artifacts.model.minfo.BedDensityFacet; 18 import de.intevation.flys.artifacts.model.minfo.BedDensityFacet;
16 import de.intevation.flys.artifacts.model.minfo.BedDiameterFacet; 19 import de.intevation.flys.artifacts.model.minfo.BedDiameterFacet;
17 import de.intevation.flys.artifacts.model.minfo.BedLoadBedQualityResult; 20 import de.intevation.flys.artifacts.model.minfo.BedLoadBedQualityResult;
18 import de.intevation.flys.artifacts.model.minfo.BedPorosityFacet; 21 import de.intevation.flys.artifacts.model.minfo.BedPorosityFacet;
19 import de.intevation.flys.artifacts.model.minfo.BedQualityCalculation; 22 import de.intevation.flys.artifacts.model.minfo.BedQualityCalculation;
20 import de.intevation.flys.artifacts.model.minfo.BedQualityResult; 23 import de.intevation.flys.artifacts.model.minfo.BedQualityResult;
21 import de.intevation.flys.artifacts.model.minfo.BedloadDiameterFacet; 24 import de.intevation.flys.artifacts.model.minfo.BedloadDiameterFacet;
25 import de.intevation.flys.artifacts.resources.Resources;
22 import de.intevation.flys.artifacts.states.DefaultState; 26 import de.intevation.flys.artifacts.states.DefaultState;
23 27
24 28
25 public class BedQualityState extends DefaultState implements FacetTypes { 29 public class BedQualityState extends DefaultState implements FacetTypes {
26 30
27 private static final long serialVersionUID = 1L; 31 private static final long serialVersionUID = 1L;
28 32
29 private static final Logger logger = Logger 33 private static final Logger logger = Logger
30 .getLogger(BedQualityState.class); 34 .getLogger(BedQualityState.class);
35
36 public static final String I18N_TOPLAYER = "bedquality.toplayer";
37 public static final String I18N_SUBLAYER = "bedquality.sublayer";
38
39 public static final String I18N_FACET_BED_POROSITY_TOPLAYER = "facet.bedquality.bed.porosity.toplayer";
40 public static final String I18N_FACET_BED_POROSITY_SUBLAYER = "facet.bedquality.bed.porosity.sublayer";
41 public static final String I18N_FACET_BED_DENSITY_TOPLAYER = "facet.bedquality.bed.density.toplayer";
42 public static final String I18N_FACET_BED_DENSITY_SUBLAYER = "facet.bedquality.bed.density.sublayer";
43 public static final String I18N_FACET_BED_DIAMETER_TOPLAYER = "facet.bedquality.bed.diameter.toplayer";
44 public static final String I18N_FACET_BED_DIAMETER_SUBLAYER = "facet.bedquality.bed.diameter.sublayer";
45 public static final String I18N_FACET_BEDLOAD_DIAMETER = "facet.bedquality.bedload.diameter";
31 46
32 @Override 47 @Override
33 public Object computeAdvance(FLYSArtifact artifact, String hash, 48 public Object computeAdvance(FLYSArtifact artifact, String hash,
34 CallContext context, List<Facet> facets, Object old) { 49 CallContext context, List<Facet> facets, Object old) {
35 logger.debug("BedQualityState.computeAdvance"); 50 logger.debug("BedQualityState.computeAdvance");
50 if (results == null || results.length == 0) { 65 if (results == null || results.length == 0) {
51 logger.warn("Calculation computed no results!"); 66 logger.warn("Calculation computed no results!");
52 return res; 67 return res;
53 } 68 }
54 69
55 generateFacets(newFacets, results, getID(), hash); 70 generateFacets(context, newFacets, results, getID(), hash);
56 logger.debug("Created " + newFacets.size() + " new Facets."); 71 logger.debug("Created " + newFacets.size() + " new Facets.");
57 72
58 facets.addAll(newFacets); 73 facets.addAll(newFacets);
59 74
60 return res; 75 return res;
61 } 76 }
62 77
63 protected void generateFacets(List<Facet> newFacets, 78 protected void generateFacets(CallContext context, List<Facet> newFacets,
64 BedQualityResult[] results, String stateId, String hash) { 79 BedQualityResult[] results, String stateId, String hash) {
65 logger.debug("BedQualityState.generateFacets"); 80 logger.debug("BedQualityState.generateFacets");
66 81
82 CallMeta meta = context.getMeta();
83
67 for (int idx = 0; idx < results.length; idx++) { 84 for (int idx = 0; idx < results.length; idx++) {
68 BedQualityResult result = results[idx]; 85 BedQualityResult result = results[idx];
69 86
70 if (result instanceof BedBedQualityResult) { 87 if (result instanceof BedBedQualityResult) {
71 // TODO I18N for Facet description 88 BedBedQualityResult data = (BedBedQualityResult) result;
72 newFacets.add(new BedPorosityFacet(idx, 89 newFacets.add(new BedPorosityFacet(idx,
73 BED_QUALITY_POROSITY_TOPLAYER, "porosity_toplayer", 90 BED_QUALITY_POROSITY_TOPLAYER,
74 ComputeType.ADVANCE, stateId, hash)); 91 createPorosityTopLayerDescription(meta, data),
75 92 ComputeType.ADVANCE, stateId, hash));
76 // TODO I18N for Facet description 93
77 newFacets.add(new BedPorosityFacet(idx, 94 newFacets.add(new BedPorosityFacet(idx,
78 BED_QUALITY_POROSITY_SUBLAYER, "porosity_sublayer", 95 BED_QUALITY_POROSITY_SUBLAYER,
79 ComputeType.ADVANCE, stateId, hash)); 96 createPorositySubLayerDescription(meta, data),
80 97 ComputeType.ADVANCE, stateId, hash));
81 // TODO I18N for Facet description 98
82 newFacets.add(new BedDensityFacet(idx, 99 newFacets.add(new BedDensityFacet(idx,
83 BED_QUALITY_SEDIMENT_DENSITY_TOPLAYER, "density_toplayer", 100 BED_QUALITY_SEDIMENT_DENSITY_TOPLAYER,
84 ComputeType.ADVANCE, stateId, hash)); 101 createDensityTopLayerDescription(meta, data),
85 102 ComputeType.ADVANCE, stateId, hash));
86 // TODO I18N for Facet description 103
87 newFacets.add(new BedDensityFacet(idx, 104 newFacets.add(new BedDensityFacet(idx,
88 BED_QUALITY_SEDIMENT_DENSITY_SUBLAYER, "density_sublayer", 105 BED_QUALITY_SEDIMENT_DENSITY_SUBLAYER,
89 ComputeType.ADVANCE, stateId, hash)); 106 createDensitySubLayerDescription(meta, data),
90 107 ComputeType.ADVANCE, stateId, hash));
91 // TODO I18N for Facet description 108
92 newFacets.add(new BedloadDiameterFacet(idx, 109 newFacets.add(new BedloadDiameterFacet(idx,
93 BED_QUALITY_BED_DIAMETER_TOPLAYER, "bed diameter_toplayer", 110 BED_QUALITY_BED_DIAMETER_TOPLAYER,
94 ComputeType.ADVANCE, stateId, hash)); 111 createDiameterTopLayerDescription(meta, data),
95 112 ComputeType.ADVANCE, stateId, hash));
96 // TODO I18N for Facet description 113
97 newFacets.add(new BedloadDiameterFacet(idx, 114 newFacets.add(new BedloadDiameterFacet(idx,
98 BED_QUALITY_BED_DIAMETER_SUBLAYER, "bed diameter_sublayer", 115 BED_QUALITY_BED_DIAMETER_SUBLAYER,
116 createDiameterSubLayerDescription(meta, data),
99 ComputeType.ADVANCE, stateId, hash)); 117 ComputeType.ADVANCE, stateId, hash));
100 } 118 }
101 else if (result instanceof BedLoadBedQualityResult) { 119 else if (result instanceof BedLoadBedQualityResult) {
102 // TODO I18N for Facet description 120 newFacets.add(new BedDiameterFacet(idx,
103 newFacets.add(new BedDiameterFacet(idx, BED_QUALITY_BEDLOAD_DIAMETER, 121 BED_QUALITY_BEDLOAD_DIAMETER, createDiameterDescription(
104 "bedload diameter", ComputeType.ADVANCE, stateId, hash)); 122 meta, result), ComputeType.ADVANCE, stateId, hash));
105 } 123 }
106 else { 124 else {
107 logger.warn("unknown result object: " + result.getClass()); 125 logger.warn("unknown result object: " + result.getClass());
108 } 126 }
109 } 127 }
110 } 128 }
129
130 protected String createPorosityTopLayerDescription(CallMeta meta,
131 BedBedQualityResult result) {
132 DateRange range = result.getDateRange();
133 Date from = range != null ? range.getFrom() : new Date();
134 Date to = range != null ? range.getTo() : new Date();
135
136 String toplayer = Resources.getMsg(meta, I18N_TOPLAYER, I18N_TOPLAYER);
137 return Resources.getMsg(meta, I18N_FACET_BED_POROSITY_TOPLAYER,
138 I18N_FACET_BED_POROSITY_TOPLAYER, new Object[] { from, to, toplayer });
139 }
140
141 protected String createPorositySubLayerDescription(CallMeta meta,
142 BedBedQualityResult result) {
143 DateRange range = result.getDateRange();
144 Date from = range != null ? range.getFrom() : new Date();
145 Date to = range != null ? range.getTo() : new Date();
146
147 String sublayer = Resources.getMsg(meta, I18N_SUBLAYER, I18N_SUBLAYER);
148 return Resources.getMsg(meta, I18N_FACET_BED_POROSITY_SUBLAYER,
149 I18N_FACET_BED_POROSITY_SUBLAYER, new Object[] { from, to, sublayer });
150 }
151
152 protected String createDensityTopLayerDescription(CallMeta meta,
153 BedBedQualityResult result) {
154 DateRange range = result.getDateRange();
155 Date from = range != null ? range.getFrom() : new Date();
156 Date to = range != null ? range.getTo() : new Date();
157
158 String toplayer = Resources.getMsg(meta, I18N_TOPLAYER, I18N_TOPLAYER);
159 return Resources.getMsg(meta, I18N_FACET_BED_DENSITY_TOPLAYER,
160 I18N_FACET_BED_DENSITY_TOPLAYER, new Object[] { from, to, toplayer });
161 }
162
163 protected String createDensitySubLayerDescription(CallMeta meta,
164 BedBedQualityResult result) {
165 DateRange range = result.getDateRange();
166 Date from = range != null ? range.getFrom() : new Date();
167 Date to = range != null ? range.getTo() : new Date();
168
169 String sublayer = Resources.getMsg(meta, I18N_SUBLAYER, I18N_SUBLAYER);
170 return Resources.getMsg(meta, I18N_FACET_BED_DENSITY_SUBLAYER,
171 I18N_FACET_BED_DENSITY_SUBLAYER, new Object[] { from, to, sublayer });
172 }
173
174 protected String createDiameterTopLayerDescription(CallMeta meta,
175 BedBedQualityResult result) {
176 DateRange range = result.getDateRange();
177 Date from = range != null ? range.getFrom() : new Date();
178 Date to = range != null ? range.getTo() : new Date();
179
180 String toplayer = Resources.getMsg(meta, I18N_TOPLAYER, I18N_TOPLAYER);
181
182 return Resources.getMsg(meta, I18N_FACET_BED_DIAMETER_TOPLAYER,
183 I18N_FACET_BED_DIAMETER_TOPLAYER, new Object[] { result.getType(),
184 from, to, toplayer });
185 }
186
187 protected String createDiameterSubLayerDescription(CallMeta meta,
188 BedBedQualityResult result) {
189 DateRange range = result.getDateRange();
190 Date from = range != null ? range.getFrom() : new Date();
191 Date to = range != null ? range.getTo() : new Date();
192
193 String sublayer = Resources.getMsg(meta, I18N_SUBLAYER, I18N_SUBLAYER);
194 return Resources.getMsg(meta, I18N_FACET_BED_DIAMETER_SUBLAYER,
195 I18N_FACET_BED_DIAMETER_SUBLAYER, new Object[] { result.getType(),
196 from, to, sublayer });
197 }
198
199 protected String createDiameterDescription(CallMeta meta,
200 BedQualityResult result) {
201 return Resources.getMsg(meta, I18N_FACET_BEDLOAD_DIAMETER,
202 I18N_FACET_BEDLOAD_DIAMETER, new Object[] { result.getType() });
203 }
111 } 204 }
112 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 205 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org