]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/i18n/DefaultsResourceBundle.java
Fix a few glitches in the various maintenance pages.
[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 public class DefaultsResourceBundle extends ResourceBundle {
13
14 @Override
15 protected Object handleGetObject(String key) {
16 Object obj;
17 try {
18 Field field = getClass().getField(key);
19 obj = field.getType().getMethod("getDefault")
20 .invoke(field.get(null));
21 } catch (Exception e) {
22 throw new CmsException("Cannot get default for " + key, e);
23 }
24 return obj;
25 }
26
27 @Override
28 public Enumeration<String> getKeys() {
29 Vector<String> res = new Vector<String>();
30 final Field[] fieldArray = getClass().getDeclaredFields();
31
32 for (Field field : fieldArray) {
33 if (Modifier.isStatic(field.getModifiers())
34 && field.getType().isAssignableFrom(Msg.class)) {
35 res.add(field.getName());
36 }
37 }
38 return res.elements();
39 }
40
41 }