KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > calipso > reportgenerator > common > ReportFieldSpec


1 package com.calipso.reportgenerator.common;
2
3 import com.calipso.reportgenerator.reportcalculator.DataDefinition;
4
5 import java.io.Serializable JavaDoc;
6 import java.util.Map JavaDoc;
7
8 /**
9  * Esta clase representa a un campo que tendrá un valor en la matrix que sirve de origen de datos al motor de cálculo
10  * para la ejecución de un ReportDefinition dado (y su ReportSourceDefinition asociado).
11  * Puede que existan o no en el DataSource, en dicho caso el valor se obtiene evaluando expresiones a partir de valores
12  * campos conocidos.
13  */

14 public class ReportFieldSpec implements DataDefinition, Serializable JavaDoc {
15
16   private int dataSourceIndex;
17   private int reportSourceIndex;
18   private int reportIndex;
19   private String JavaDoc name;
20   private String JavaDoc caption;
21   private boolean calculated;
22   private String JavaDoc externalData;
23   private Map JavaDoc dataSourceIndexes;
24   private boolean inReportDefinition;
25   private Map JavaDoc reportSourceIndexes;
26
27   /**
28    * Construcutor por defecto para cumplir con la Serialización
29    */

30
31   public ReportFieldSpec() {
32   }
33
34
35   /**
36    * Constructor que recibe el nombre que es el identificador de este tipo de objetos
37    * @param name
38    */

39   public ReportFieldSpec(String JavaDoc name) {
40     this.name = name;
41   }
42
43   /**
44    * Devuelve el nombre del campo
45    * @return
46    */

47   public String JavaDoc getName() {
48     return name;
49   }
50
51   /**
52    * Asigna el nombre del campo
53    * @param name
54    */

55   public void setName(String JavaDoc name) {
56     this.name = name;
57   }
58
59   /**
60    * Devuelve la descripción o texto legible del campo
61    * @return
62    */

63   public String JavaDoc getCaption() {
64     return caption;
65   }
66
67   /**
68    * Asigna la descripción o text legible del campo
69    * @param caption
70    */

71   public void setCaption(String JavaDoc caption) {
72     this.caption = caption;
73   }
74
75   /**
76    * Indice respecto a los campos de la del Matix
77    * Implementación de la interface <code>DataDefinition</code>
78    * @return
79    */

80   public int getIndex() {
81     return getReportSourceIndex();
82   }
83
84   /**
85    * Especifica si el valor del campo se obtiene directamente del valor de un campo del <code>IDataSource</code>(false)
86    * o si se calcula a través de una expresión (true)
87    * @return
88    */

89   public boolean getCalculated() {
90     return calculated;
91   }
92
93   /**
94    * Asigna el valor de la propiedad Calculated
95    * @param calculated
96    */

97   public void setCalculated(boolean calculated) {
98     this.calculated = calculated;
99   }
100
101   /**
102    * Devuelve la información asiciada al campo que será utilizada por el sistema externo que devuelva el <code>IDataSource</code>
103    * @return
104    */

105
106   public String JavaDoc getExternalData() {
107     return externalData;
108   }
109
110   /**
111    * Asigna el valor de la propiedad ExternalData
112    * @param externalData
113    */

114
115   public void setExternalData(String JavaDoc externalData) {
116     this.externalData = externalData;
117   }
118
119
120   /**
121    * Devuelve el indice del campo en el DataSource, esto quiere decir que los campos que tengan el atributo
122    * <code>calculated</code> en <code>true</code> tendrán este indice con valor -1.
123    * @return
124    */

125   public int getDataSourceIndex() {
126     return dataSourceIndex;
127   }
128
129   /**
130    * Asigna el valor de la propiedad DataSourceIndex
131    * @param dataSourceIndex
132    */

133
134   public void setDataSourceIndex(int dataSourceIndex) {
135     this.dataSourceIndex = dataSourceIndex;
136   }
137
138   /**
139    * Devuelve el indice respecto a los campos de la de la Matix
140    */

141
142   public int getReportSourceIndex() {
143     return reportSourceIndex;
144   }
145
146   /**
147    * Asigna el indice respecto de los campos de la Matrix
148    * @param reportSourceIndex
149    */

150
151   public void setReportSourceIndex(int reportSourceIndex) {
152     this.reportSourceIndex = reportSourceIndex;
153   }
154
155
156   /**
157    * Devuelve el indice respecto a los campos de la de la ReportDefinition
158    * @return
159    */

160   public int getReportIndex() {
161     return reportIndex;
162   }
163
164   /**
165    * Asigna el indice respecto a los campos de la de la ReportDefinition
166    * @param reportIndex
167    */

168   public void setReportIndex(int reportIndex) {
169     this.reportIndex = reportIndex;
170   }
171
172   /**
173    * Devuelve el indice de otro campo a partir del nombre, se utiliza para la evaluación de expresiones de campos
174    * calculados
175    * @param referencedName
176    * @return
177    */

178   protected int getDataSourceIndexFromName(String JavaDoc referencedName) {
179     return ((Integer JavaDoc)getDataSourceIndexes().get(referencedName)).intValue();
180   }
181
182   /**
183    * Diccionario que asocia los nombres de los campos con sus ReportSourceIndex
184    * @return
185    */

186
187   public Map JavaDoc getDataSourceIndexes() {
188     return dataSourceIndexes;
189   }
190
191   public Map JavaDoc getReportSourceIndexes() {
192     return reportSourceIndexes;
193   }
194
195   public void setReportSourceIndexes(Map JavaDoc reportSourceIndexes) {
196     this.reportSourceIndexes = reportSourceIndexes;
197   }
198
199   /**
200    * Asigna el diccionario que asocia los nombres de los campos con sus ReportSourceIndex
201    * Se para a todos los campos una referencia a la misma lista.
202    * @param values
203    */

204   public void setDataSourceIndexes(Map JavaDoc values) {
205     dataSourceIndexes = values;
206   }
207
208   /**
209    * Se utiliza para saber si un campo se encuentra incluido en el ReportDefinition, debido a que un mismo
210    * ReportSourceDefinition puede ser compartido por varios ReportDefinition, puede haber campos que no deban ser tenidos
211    * en cuanta para la resoución de un reporte
212    * @return
213    */

214   public boolean getInReportDefinition() {
215     return inReportDefinition;
216   }
217
218   /**
219    * Asigna el verdadero si el campo está incluido en el ReportDefinition del reporte que se está ejecutando
220    * @param inReportDefinition
221    */

222   public void setInReportDefinition(boolean inReportDefinition) {
223     this.inReportDefinition = inReportDefinition;
224   }
225
226
227   /**
228    * Resuelve el texto visible de la descripción de un campo según la localización
229    * @param multilanguaje
230    * @param localization
231    * @param caption
232    * @return
233    */

234   protected String JavaDoc resolveCaption(boolean multilanguaje, Map JavaDoc localization, String JavaDoc caption) {
235     if (multilanguaje && (localization != null) && (caption != null ) && localization.containsKey(caption)){
236       return localization.get(caption).toString();
237     } else if ((localization!=null)&& (caption != null )&&(localization.containsKey(caption))){
238        return localization.get(caption).toString();
239     } else {
240       return caption;
241     }
242   }
243
244 }
245
Popular Tags