1 package org
.argeo
.demo
.i18n
.specific
;
3 import java
.lang
.reflect
.Constructor
;
4 import java
.lang
.reflect
.Field
;
5 import java
.lang
.reflect
.Modifier
;
6 import java
.util
.Locale
;
7 import java
.util
.MissingResourceException
;
8 import java
.util
.ResourceBundle
;
10 import org
.argeo
.demo
.i18n
.NLSHelper
;
12 public class NLSHelperImpl
extends NLSHelper
{
14 protected Object
internalGetMessages(String bundleName
, Class clazz
) {
16 ClassLoader loader
= clazz
.getClassLoader();
18 // Locale currentLocale = new Locale("fr");
19 // ResourceBundle bundle = ResourceBundle.getBundle(bundleName,
20 // currentLocale, loader);
22 ResourceBundle bundle
= ResourceBundle
.getBundle(bundleName
,
23 Locale
.getDefault(), loader
);
24 return internalGet(bundle
, clazz
);
27 private Object
internalGet(ResourceBundle bundle
, Class clazz
) {
31 Constructor constructor
= clazz
.getDeclaredConstructor(null);
32 constructor
.setAccessible(true);
33 result
= constructor
.newInstance(null);
34 } catch (final Exception ex
) {
35 throw new IllegalStateException(ex
.getMessage());
37 final Field
[] fieldArray
= clazz
.getDeclaredFields();
38 for (int i
= 0; i
< fieldArray
.length
; i
++) {
40 int modifiers
= fieldArray
[i
].getModifiers();
41 if (String
.class.isAssignableFrom(fieldArray
[i
].getType())
42 && Modifier
.isPublic(modifiers
)
43 && !Modifier
.isStatic(modifiers
)) {
46 .getString(fieldArray
[i
].getName());
47 byte[] bytes
= value
.getBytes();
48 String forcedValue
= new String(bytes
, "UTF8");
50 fieldArray
[i
].setAccessible(true);
51 fieldArray
[i
].set(result
, forcedValue
);
53 } catch (final MissingResourceException mre
) {
54 fieldArray
[i
].setAccessible(true);
55 fieldArray
[i
].set(result
, "");
56 mre
.printStackTrace();
59 } catch (final Exception ex
) {