]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/i18n/DefaultsResourceBundle.java
Add utility to the distinguished name interface.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / i18n / DefaultsResourceBundle.java
1 package org.argeo.cms.i18n;
2
3 import java.lang.reflect.Field;
4 import java.lang.reflect.Modifier;
5 import java.util.Enumeration;
6 import java.util.ResourceBundle;
7 import java.util.Vector;
8
9 import org.argeo.cms.CmsException;
10
11 /** Expose the default values as a {@link ResourceBundle} */
12 @Deprecated
13 public class DefaultsResourceBundle extends ResourceBundle {
14
15 @Override
16 protected Object handleGetObject(String key) {
17 Object obj;
18 try {
19 Field field = getClass().getField(key);
20 obj = field.getType().getMethod("getDefault")
21 .invoke(field.get(null));
22 } catch (Exception e) {
23 throw new CmsException("Cannot get default for " + key, e);
24 }
25 return obj;
26 }
27
28 @Override
29 public Enumeration<String> getKeys() {
30 Vector<String> res = new Vector<String>();
31 final Field[] fieldArray = getClass().getDeclaredFields();
32
33 for (Field field : fieldArray) {
34 if (Modifier.isStatic(field.getModifiers())
35 && field.getType().isAssignableFrom(LocaleUtils.class)) {
36 res.add(field.getName());
37 }
38 }
39 return res.elements();
40 }
41
42 }