comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/SInfoResultFacet.java @ 9205:3dae6b78e1da

inundationDuration/floodDuration multiple columns+chartLines refactoring
author gernotbelger
date Mon, 02 Jul 2018 19:01:09 +0200
parents b4402594213b
children 0fc9c82e744e
comparison
equal deleted inserted replaced
9204:4f411c6ee3ae 9205:3dae6b78e1da
26 26
27 private static final long serialVersionUID = 1L; 27 private static final long serialVersionUID = 1L;
28 28
29 private static Logger log = Logger.getLogger(SInfoResultFacet.class); 29 private static Logger log = Logger.getLogger(SInfoResultFacet.class);
30 30
31 private int dataIndex;
32
33 private int resultIndex;
34
31 public SInfoResultFacet() { 35 public SInfoResultFacet() {
32 // required for clone operation deepCopy() 36 // required for clone operation deepCopy()
33 } 37 }
34 38
35 public SInfoResultFacet(final int idx, final String name, final String description, final String yAxisLabelKey, final ComputeType type, 39 public SInfoResultFacet(final int resultIndex, final String name, final String description, final String yAxisLabelKey, final ComputeType type,
36 final String stateId, final String hash) { 40 final String stateId, final String hash) {
37 super(idx, name, description, type, hash, stateId); 41 // REMARK:
42 this(resultIndex, resultIndex, -1, name, description, yAxisLabelKey, type, stateId, hash);
43 }
44
45 public SInfoResultFacet(final int resultIndex, final int dataIndex, final String name, final String description, final String yAxisLabelKey,
46 final ComputeType type, final String stateId, final String hash) {
47 // REMARK: in some cases, we have several
48 this(resultIndex, resultIndex, dataIndex, name, description, yAxisLabelKey, type, stateId, hash);
49 }
50
51 public SInfoResultFacet(final int facetIndex, final int resultIndex, final int dataIndex, final String name, final String description,
52 // REMARK: in some cases, we have several data-lines for the same result (which normally determines the facet index) and
53 // facet name. But index and name are used by the client side as unique keys for the chart themes...
54 // So we might have different facet index and result index.
55 final String yAxisLabelKey, final ComputeType type, final String stateId, final String hash) {
56 super(facetIndex, name, description, type, hash, stateId);
57 this.resultIndex = resultIndex;
58 this.dataIndex = dataIndex;
38 this.metaData.put("X", "sinfo.chart.km.xaxis.label"); 59 this.metaData.put("X", "sinfo.chart.km.xaxis.label");
39 this.metaData.put("Y", yAxisLabelKey); 60 this.metaData.put("Y", yAxisLabelKey);
61 }
62
63 public int getDataIndex() {
64 return this.dataIndex;
40 } 65 }
41 66
42 @Override 67 @Override
43 public Object getData(final Artifact artifact, final CallContext context) { 68 public Object getData(final Artifact artifact, final CallContext context) {
44 log.debug("Get data for result at index: " + this.index); 69 log.debug("Get data for result at index: " + this.index);
47 72
48 final CalculationResult res = (CalculationResult) flys.compute(context, this.hash, this.stateId, this.type, false); 73 final CalculationResult res = (CalculationResult) flys.compute(context, this.hash, this.stateId, this.type, false);
49 74
50 final AbstractCalculationResults<AbstractCalculationResult> data = (AbstractCalculationResults<AbstractCalculationResult>) res.getData(); 75 final AbstractCalculationResults<AbstractCalculationResult> data = (AbstractCalculationResults<AbstractCalculationResult>) res.getData();
51 76
52 return data.getResults().get(this.index); 77 return data.getResults().get(this.resultIndex);
53 } 78 }
54 79
55 /** Copy deeply. */ 80 /** Copy deeply. */
56 @Override 81 @Override
57 public Facet deepCopy() { 82 public Facet deepCopy() {

http://dive4elements.wald.intevation.org