01: package com.calipso.reportgenerator.common;
02:
03: import java.io.Serializable;
04: import java.util.Map;
05: import java.util.Set;
06: import java.util.Collection;
07:
08: import com.calipso.reportgenerator.common.LanguageTraslator;
09: import com.calipso.reportgenerator.common.ReportQuery;
10: import com.calipso.reportgenerator.common.ReportSpec;
11:
12: /**
13: * La ejecución de una consulta (<code>ReportQuery</code>) sobre un reporte da como resultado un <code>ReportResult</code>, contiene los datos
14: * calculados y los valores de entrada que se utilizaron para obtenerlos. Provee mecanismos para recorrer y explorar
15: * la información y también puede generar una salida Xml con la información obtenida.
16: */
17:
18: public abstract class ReportResult implements Serializable {
19:
20: private ReportQuery reportQuery;
21: private ReportSpec reportSpec;
22:
23: /**
24: * Constructor que inicializa el objeto
25: * @param reportSpec
26: * @param reportQuery
27: */
28: public ReportResult(ReportSpec reportSpec, ReportQuery reportQuery) {
29: this .reportSpec = reportSpec;
30: this .reportQuery = reportQuery;
31: }
32:
33: /**
34: * Devuelve la información acerca de la estructura del reporte
35: * @return
36: */
37: public ReportSpec getReportSpec() {
38: return reportSpec;
39: }
40:
41: /**
42: * Devuelve los valores de parámetros
43: * @return
44: */
45: public Map getParamValues() {
46: return getReportQuery().getParamValues();
47: }
48:
49: /**
50: * Devuelve el report query
51: * @return
52: */
53: public ReportQuery getReportQuery() {
54: return reportQuery;
55: }
56:
57: public Set getDimensionUnCheckedValues(String name)
58: throws InfoException {
59: try {
60: QueryDimension dimension = getReportQuery()
61: .getQueryDimensionFromName(name);
62: int index = dimension.getIndex();
63: return getReportQuery().getExcludedValues(index);
64: } catch (Exception e) {
65: throw new InfoException(LanguageTraslator.traslate("148"),
66: e);
67: }
68: }
69:
70: public ReportDimensionSpec getDimensionFromName(String name) {
71: return getReportSpec().getDimensionFromName(name);
72: }
73:
74: public ReportMetricSpec getMetricFromName(String name) {
75: return getReportSpec().getMetricFromName(name);
76: }
77:
78: public abstract ReportTableModel getReportTableModel()
79: throws InfoException;
80:
81: public abstract void resetReportTableModel();
82:
83: public abstract Collection getValuesCollection(boolean ascending);
84: }
|