1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.validator;
17
18 import org.seasar.cubby.util.Messages;
19
20
21
22
23
24
25
26 public class MessageInfo {
27
28
29 private String key;
30
31
32 private Object[] arguments;
33
34
35
36
37
38
39 public String getKey() {
40 return key;
41 }
42
43
44
45
46
47
48
49 public void setKey(final String key) {
50 this.key = key;
51 }
52
53
54
55
56
57
58 public Object[] getArguments() {
59 if (arguments == null) {
60 return null;
61 }
62 return arguments.clone();
63 }
64
65
66
67
68
69
70
71 public void setArguments(final Object... arguments) {
72 this.arguments = arguments;
73 }
74
75
76
77
78
79
80 public MessageBuilder builder() {
81 final MessageBuilder builder = new MessageBuilder(key, arguments);
82 return builder;
83 }
84
85
86
87
88
89
90
91 public class MessageBuilder {
92
93
94 private final String messageKey;
95
96
97 private final Object[] arguments;
98
99
100 private String fieldNameKey;
101
102
103
104
105
106
107
108
109
110 private MessageBuilder(final String messageKey, final Object[] arguments) {
111 this.messageKey = messageKey;
112 this.arguments = arguments;
113 }
114
115
116
117
118
119
120
121
122 public MessageBuilder fieldNameKey(final String fieldNameKey) {
123 this.fieldNameKey = fieldNameKey;
124 return this;
125 }
126
127
128
129
130
131
132
133 @Override
134 public String toString() {
135 final Object[] args;
136 if (fieldNameKey != null) {
137 args = new Object[this.arguments.length + 1];
138 final String paramNameText = Messages.getText(fieldNameKey);
139 args[0] = paramNameText;
140 System.arraycopy(this.arguments, 0, args, 1,
141 this.arguments.length);
142 } else {
143 args = this.arguments;
144 }
145 return Messages.getText(messageKey, args);
146 }
147 }
148
149 }