01: package com.calipso.reportgenerator.reportmanager;
02:
03: import com.calipso.reportgenerator.reportdefinitions.MetricSourceDefinition;
04: import com.calipso.reportgenerator.reportcalculator.IDataSource;
05:
06: /**
07: * Esta clase se utliza para llenar la <code>Matix</code> del <code>ReportSource</code> a partir del <IDataSource> entregado
08: * por los <ReportDataSource>.
09: * En las columnas comunes se encarga del obtener el valor a partir del índice del campo en el registro
10: * En las columnas calculadas se encarga de ejecutar las operaciones necesarias para obtener el valor
11: */
12:
13: public class ReportSourceMetric extends Object {
14:
15: private int index;
16: private int dataIndex;
17: private MetricSourceDefinition metricSourceDefinition;
18:
19: /**
20: * Contruye e inicializa un report source metric
21: * @param metricSourceDefinition
22: * @param index Indice de la matriz del pivot
23: * @param dataIndex Indice del data source
24: */
25: public ReportSourceMetric(
26: MetricSourceDefinition metricSourceDefinition, int index,
27: int dataIndex) {
28: this .metricSourceDefinition = metricSourceDefinition;
29: this .index = index;
30: this .dataIndex = dataIndex;
31: }
32:
33: /**
34: * Devuelve el índice de la matriz del pivot
35: * @return
36: */
37: public int getIndex() {
38: return index;
39: }
40:
41: /**
42: * Devuelve el índice del data source
43: * @return
44: */
45: public int getDataIndex() {
46: return dataIndex;
47: }
48:
49: /**
50: * Devuelve el metric source definition
51: * @see MetricSourceDefinition
52: * @return
53: */
54: public MetricSourceDefinition getMetricSourceDefinition() {
55: return metricSourceDefinition;
56: }
57:
58: /**
59: * Devuelve el valor de la métrica
60: * @param dataSource
61: * @param index
62: * @return
63: */
64: public Object getValue(IDataSource dataSource, int index) {
65: if (getMetricSourceDefinition().getCalculated()) {
66: return new Float(0); //hacer
67: } else {
68: //return new Float(dataSource.getValueAt(index, this.metricSourceDefinition.getName()).toString());
69: return new Float(dataSource.getValueAt(index,
70: this.dataIndex).toString());
71: }
72: }
73:
74: }
|