/[schmitzm]/trunk/src/skrueger/i8n/I8NUtil.java
ViewVC logotype

Contents of /trunk/src/skrueger/i8n/I8NUtil.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 44 - (show annotations)
Tue Apr 14 20:23:41 2009 UTC (15 years, 10 months ago) by alfonx
File size: 2551 byte(s)
* Added a static public convenience method isEmpty to i8n.Translation which deals with null, "", and the deprectaed NO_TRANSLATION constant.
* Moved the method "public static MemoryFeatureCollection filterSLDVisibleOnly(...)" from FeatureUtil to StylingUtil.
1 package skrueger.i8n;
2
3 import java.util.Locale;
4 import java.util.Set;
5 import java.util.TreeSet;
6
7 import org.apache.log4j.Logger;
8
9 public class I8NUtil {
10 static final Logger LOGGER = Logger.getLogger(I8NUtil.class);
11
12 private static Set<String> languageCodes = new TreeSet<String>();
13 static {
14 for (Locale locale : java.util.Locale.getAvailableLocales()) {
15 getLanguageCodes().add(locale.getLanguage());
16 }
17 // for (String code : java.util.Locale.getISOLanguages()) {
18 // getLanguageCodes().add(code);
19 // }
20 }
21
22 /**
23 * @author Stefan Alfons Krüger
24 * @param code
25 * @return true if the code paramter is a valid ISO Language code
26 */
27 public static boolean isValidISOLangCode(String code) {
28 return getLanguageCodes().contains(code);
29 }
30
31 /**
32 * @return All language codes available in
33 * java.util.Locale.getISOLanguages() without duplicates.
34 */
35 public static Set<String> getLanguageCodes() {
36 return languageCodes;
37 }
38
39 /**
40 * @param code
41 * A two-letter language code.
42 * @return <code>null</code> or one (of many possible) {@link Locale} that
43 * uses this language.
44 */
45 public static Locale getLocaleFor(String code) {
46 for (Locale l : Locale.getAvailableLocales()) {
47 // System.out.println(l.getLanguage()+" not = "+code);
48 if (l.getLanguage().toLowerCase().equals(code.toLowerCase())) {
49 return l;
50 }
51 }
52 LOGGER.error("Can't create a Locale for code " + code
53 + "! Returning the system default locale to avoid NPEs.");
54 return Locale.getDefault();
55 }
56
57 /**
58 * A convenience method that checks if the {@link Translation} object
59 * contains a translation for the active language. A {@link String}
60 * containing only spaces will return <code>false</code>.
61 *
62 * @param trans
63 * {@link Translation} to check.
64 */
65 public static boolean isEmpty(final Translation trans) {
66 if (trans == null)
67 return true;
68 return isEmpty(trans.toString());
69 }
70
71 /**
72 * A convenience method that checks if the {@link String} returned by from a
73 * {@link Translation} object contains a "valid" translation for the active
74 * language. A {@link String} containing only spaces or equals
75 * {@link Translation}.NO_TRANSLATION will return <code>false</code>.
76 *
77 * @param transString
78 * {@link String} to check.
79 */
80 public static boolean isEmpty(final String transString) {
81 if (transString == null)
82 return true;
83 if (transString.trim().isEmpty())
84 return true;
85 if (transString.equals(Translation.NO_TRANSLATION))
86 return true;
87 return false;
88 }
89 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26