KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > calipso > reportgenerator > reportmanager > CacheRepository


1 package com.calipso.reportgenerator.reportmanager;
2
3 import com.calipso.reportgenerator.common.InfoException;
4
5 import java.util.HashMap JavaDoc;
6
7 import com.calipso.reportgenerator.common.LanguageTraslator;
8
9 /**
10  * Esta clase se encarga de cachear los repositorios
11  */

12 public class CacheRepository {
13   private HashMap JavaDoc cache;
14   private String JavaDoc repositoryName;
15
16   /**
17    * Inicializa y asigna un nombre al repositorio
18    * @param name
19    */

20   public CacheRepository(String JavaDoc name) {
21     this.repositoryName = name;
22   }
23
24   /**
25    * Devuelve el cache
26    * @return
27    */

28   public HashMap JavaDoc getCache() {
29     if (cache == null) {
30       cache = new HashMap JavaDoc();
31     }
32     return cache;
33   }
34
35   /**
36    * Indica si existe un objeto cacheado con el nombre indicado
37    * @param name
38    * @return
39    */

40   public boolean containsObject(String JavaDoc name) {
41     return getCache().containsKey(name.toUpperCase());
42   }
43
44   /**
45    * Indica si existe cacheado el objeto indicado
46    * @param object
47    * @return
48    */

49   public boolean containsObject(Object JavaDoc object) {
50     return getCache().containsValue(object);
51   }
52
53   /**
54    * Agrega al repositorio de objectos cacheados el objeto indicado
55    * @param name Nombre del objeto
56    * @param object Objeto a cachear
57    */

58   public void addObject(String JavaDoc name, Object JavaDoc object) {
59     if (!containsObject(name)) {
60       System.out.println(repositoryName + LanguageTraslator.traslate("494") + name);
61       getCache().put(name, object);
62     }
63   }
64
65   /**
66    * Remueve el objeto del cache
67    * @param name Nombre del objeto
68    * @throws InfoException
69    */

70   public void removeObject(String JavaDoc name) throws InfoException {
71     if (name.equalsIgnoreCase("")) {
72       throw new InfoException(LanguageTraslator.traslate("72"));
73     }
74     else {
75       if (getCache().remove(name) == null) {
76         throw new InfoException(LanguageTraslator.traslate("73") + name);
77       }
78     }
79   }
80
81   /**
82    * Devuelve el objeto con el nombre indicado
83    * @param name
84    * @return
85    * @throws InfoException
86    */

87   public Object JavaDoc getObject(String JavaDoc name) throws InfoException {
88     Object JavaDoc returnObject = null;
89     if (name.equalsIgnoreCase("")) {
90       throw new InfoException(LanguageTraslator.traslate("74"));
91     }
92     else {
93       returnObject = getCache().get(name);
94       System.out.println(repositoryName + LanguageTraslator.traslate("495") + name);
95       if (returnObject == null) {
96         throw new InfoException(LanguageTraslator.traslate("75") + name);
97       }
98       else {
99         return returnObject;
100       }
101     }
102   }
103
104   /**
105    * Borra el cache
106    */

107   public void deleteAll(){
108     getCache().clear();
109   }
110
111   /**
112    * Elimina del cache el objeto indicado
113    * @param name
114    */

115   public void delete(String JavaDoc name){
116     getCache().remove(name);
117   }
118
119 }
120
Popular Tags