KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > cache > LanguageCache


1 package com.dotmarketing.cache;
2
3 import java.io.FileInputStream JavaDoc;
4 import java.io.FileNotFoundException JavaDoc;
5 import java.io.IOException JavaDoc;
6 import java.util.Properties JavaDoc;
7
8 import com.dotmarketing.portlets.languagesmanager.factories.LanguageFactory;
9 import com.dotmarketing.portlets.languagesmanager.model.Language;
10 import com.dotmarketing.util.Logger;
11 import com.dotmarketing.util.UtilMethods;
12
13 /**
14  * @author David
15  */

16 public class LanguageCache {
17
18     //Cache to store the data
19
private static DotCache cache;
20
21     //Name of the variable with the provider name
22
private static String JavaDoc providerEntry = "CACHE_PROVIDER";
23
24     //Name of the variable with the properties path
25
private static String JavaDoc propertiesEntry = "CACHE_PROPERTIES_FILE";
26
27     //region's name for the cache
28
private static String JavaDoc regionName = "LanguageCache";
29
30     static
31     {
32         init();
33     }
34     
35     public static void addLanguage(Language l)
36     {
37         long id = l.getId();
38         String JavaDoc idSt = String.valueOf(l.getId());
39         String JavaDoc languageKey = l.getLanguageCode() + "-" + l.getCountryCode();
40         cache.put(id, l);
41         cache.put(idSt, l);
42         cache.put(languageKey, l);
43         
44     }
45     
46     public static Language getLanguageById(long id)
47     {
48         Language f = (Language) cache.get(id);
49         if (f == null) {
50             f = LanguageFactory.getLanguage(id);
51             addLanguage(f);
52         }
53         return f;
54     }
55
56     public static Language getLanguageById(String JavaDoc id)
57     {
58         Language f = (Language) cache.get(id);
59         if (f == null) {
60             f = LanguageFactory.getLanguage(id);
61             addLanguage(f);
62         }
63         return f;
64     }
65
66     public static Language getLanguageByCode(String JavaDoc languageCode, String JavaDoc countryCode)
67     {
68         String JavaDoc languageKey = languageCode + "-" + countryCode;
69         Language l = (Language) cache.get(languageKey);
70         if (l == null) {
71             l = LanguageFactory.getLanguage(languageCode, countryCode);
72             addLanguage(l);
73         }
74         
75         return l;
76     }
77
78     public boolean hasLanguage (String JavaDoc id) {
79         Language l = (Language) cache.get(id);
80         return l != null;
81     }
82     
83     public boolean hasLanguage (long id) {
84         Language l = (Language) cache.get(id);
85         return l != null;
86     }
87     
88     public boolean hasLanguage (String JavaDoc languageCode, String JavaDoc countryCode) {
89         String JavaDoc languageKey = languageCode + "-" + countryCode;
90         Language l = (Language) cache.get(languageKey);
91         return l != null;
92     }
93     
94     public static void removeLanguage(Language l)
95     {
96         long id = l.getId();
97         String JavaDoc idSt = String.valueOf(l.getId());
98         String JavaDoc languageKey = l.getLanguageCode() + "-" + l.getCountryCode();
99         cache.remove(id);
100         cache.remove(idSt);
101         cache.remove(languageKey);
102     }
103
104     public static void clearCache()
105     {
106         //clear the cache
107
cache.clear();
108     }
109     
110     private static void init()
111     {
112         try
113         {
114             Properties JavaDoc WorkingProperties = new Properties JavaDoc();
115             String JavaDoc cacheProviderClassName = com.dotmarketing.util.Config.getStringProperty(providerEntry);
116             try {
117                 String JavaDoc propertyFilePath = com.dotmarketing.util.Config.getStringProperty(propertiesEntry);
118                 if (UtilMethods.isSet(propertyFilePath)) {
119                     FileInputStream JavaDoc fileInputStream = new FileInputStream JavaDoc(propertyFilePath);
120                     WorkingProperties.load(fileInputStream);
121                 }
122             } catch (FileNotFoundException JavaDoc ex) {
123                 
124                 String JavaDoc propertyFileNotFound = "The property file has been no found \n";
125                 Logger.debug(LanguageCache.class, propertyFileNotFound + ex.getMessage());
126             } catch (IOException JavaDoc ex) {
127                 Logger.debug(LanguageCache.class, ex.getMessage());
128             }
129             finally
130             {
131                 cache = new DotCache(cacheProviderClassName, regionName,WorkingProperties);
132             }
133         }
134         catch(Exception JavaDoc ex)
135         {
136             Logger.error(LanguageCache.class,ex.toString());
137         }
138     }
139 }
140
Popular Tags