01: package com.calipso.reportgenerator.common;
02:
03: import org.apache.commons.configuration.Configuration;
04:
05: import java.util.Iterator;
06: import java.util.Map;
07: import java.util.HashMap;
08:
09: import com.calipso.reportgenerator.common.LanguageTraslator;
10: import com.calipso.reportgenerator.common.ILanguageTraslator;
11:
12: /**
13: * Representa el diccionario que contiene las frases
14: * que utiliza la aplicacion.
15: * Dichas clases escritas en un lenguaje determinado,
16: * las cuales son cargadas a la instancia de Map del
17: * objeto.
18: */
19:
20: public class LanguageTraslatorCustomizable implements
21: ILanguageTraslator {
22:
23: private Map values;
24:
25: /**
26: * Inicializa una instancia de LanguageTraslatorCustomizable
27: * @param configuration
28: * @throws com.calipso.reportgenerator.common.InfoException
29: */
30: public LanguageTraslatorCustomizable(Configuration configuration)
31: throws InfoException {
32: fillValues(configuration);
33: validate();
34: }
35:
36: /**
37: * Devuelve el diccionario con las frases
38: * correspondiente al idioma determinado
39: * @return
40: */
41: public Map getValues() {
42: if (values == null) {
43: values = new HashMap();
44: }
45: return values;
46: }
47:
48: /**
49: * Llena el diccionario con las frases correspondientes
50: * @param reportGeneratorConfiguration
51: */
52: private void fillValues(Configuration reportGeneratorConfiguration) {
53: Iterator iter = reportGeneratorConfiguration.getKeys();
54: while (iter.hasNext()) {
55: String key = (String) iter.next();
56: String value = reportGeneratorConfiguration.getString(key);
57: getValues().put(key, value);
58: }
59: }
60:
61: /**
62: * Valida el diccionario
63: * @throws com.calipso.reportgenerator.common.InfoException
64: */
65: public void validate() throws InfoException {
66: if (values.isEmpty()) {
67: throw new InfoException(LanguageTraslator.traslate("81"));
68: }
69: }
70:
71: /**
72: * Devuelve el String en un idioma determinado
73: * a partir del id.
74: * @param id
75: * @return
76: */
77: public String getExceptionFromId(String id) {
78: return (String) values.get(id);
79: }
80: }
|