]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/Msg.java
3 import java
.lang
.reflect
.Field
;
4 import java
.lang
.reflect
.Modifier
;
6 import org
.eclipse
.rap
.rwt
.RWT
;
8 /** A single message to be internationalised. */
11 private ClassLoader classLoader
;
12 private final Object defaultLocal
;
18 public Msg(Object defaultMessage
) {
19 this.defaultLocal
= defaultMessage
;
22 public String
getId() {
26 public void setId(String id
) {
30 public ClassLoader
getClassLoader() {
34 public void setClassLoader(ClassLoader classLoader
) {
35 this.classLoader
= classLoader
;
38 public Object
getDefault() {
42 public String
toString() {
43 return local().toString();
46 /** When used as the first word of a sentence. */
47 public String
lead() {
48 String raw
= toString();
49 return raw
.substring(0, 1).toUpperCase(RWT
.getLocale())
53 public Object
local() {
54 CmsSession cmSession
= CmsSession
.current
.get();
55 Object local
= cmSession
.local(this);
59 throw new CmsException("No translation found for " + id
);
63 public static void init(Class
<?
> clss
) {
64 final Field
[] fieldArray
= clss
.getDeclaredFields();
65 ClassLoader loader
= clss
.getClassLoader();
67 for (Field field
: fieldArray
) {
68 if (Modifier
.isStatic(field
.getModifiers())
69 && field
.getType().isAssignableFrom(Msg
.class)) {
71 Object obj
= field
.get(null);
72 String id
= clss
.getCanonicalName() + "." + field
.getName();
73 obj
.getClass().getMethod("setId", String
.class)
76 .getMethod("setClassLoader", ClassLoader
.class)
78 } catch (Exception e
) {
79 throw new CmsException("Cannot prepare field " + field
);