1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.springframework.extensions.webscripts;
20
21 import java.util.List;
22
23 import freemarker.template.TemplateDateModel;
24 import freemarker.template.TemplateMethodModelEx;
25 import freemarker.template.TemplateModelException;
26 import freemarker.template.TemplateNumberModel;
27 import freemarker.template.TemplateScalarModel;
28
29
30
31
32
33
34
35
36
37
38
39
40
41 public final class MessageMethod extends AbstractMessageHelper implements TemplateMethodModelEx
42 {
43
44
45
46
47
48 public MessageMethod(WebScript webscript)
49 {
50 super(webscript);
51 }
52
53
54
55
56 public Object exec(List args) throws TemplateModelException
57 {
58 String result = null;
59 int argSize = args.size();
60
61 if (argSize != 0)
62 {
63 String id = null;
64 Object arg0 = args.get(0);
65 if (arg0 instanceof TemplateScalarModel)
66 {
67 id = ((TemplateScalarModel)arg0).getAsString();
68 }
69
70 if (id != null)
71 {
72 if (argSize == 1)
73 {
74
75 result = resolveMessage(id);
76 }
77 else
78 {
79 Object arg;
80 Object[] params = new Object[argSize - 1];
81 for (int i = 0; i < argSize-1; i++)
82 {
83
84 arg = args.get(i + 1);
85 if (arg instanceof TemplateScalarModel)
86 {
87 params[i] = ((TemplateScalarModel)arg).getAsString();
88 }
89 else if (arg instanceof TemplateNumberModel)
90 {
91 params[i] = ((TemplateNumberModel)arg).getAsNumber();
92 }
93 else if (arg instanceof TemplateDateModel)
94 {
95 params[i] = ((TemplateDateModel)arg).getAsDate();
96 }
97 else
98 {
99 params[i] = "";
100 }
101 }
102
103 result = resolveMessage(id, params);
104 }
105 }
106 }
107
108 return (result != null ? result : "");
109 }
110 }