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 final Object[] copyArguments = new Object[arguments.length];
73 System.arraycopy(arguments, 0, copyArguments, 0, arguments.length);
74 this.arguments = copyArguments;
75 }
76
77
78
79
80
81
82 public MessageBuilder builder() {
83 final MessageBuilder builder = new MessageBuilder(key, arguments);
84 return builder;
85 }
86
87
88
89
90
91
92
93 public static class MessageBuilder {
94
95
96 private final String messageKey;
97
98
99 private final Object[] arguments;
100
101
102 private String fieldNameKey;
103
104
105
106
107
108
109
110
111
112 private MessageBuilder(final String messageKey, final Object[] arguments) {
113 this.messageKey = messageKey;
114 this.arguments = arguments;
115 }
116
117
118
119
120
121
122
123
124 public MessageBuilder fieldNameKey(final String fieldNameKey) {
125 this.fieldNameKey = fieldNameKey;
126 return this;
127 }
128
129
130
131
132
133
134
135 @Override
136 public String toString() {
137 final Object[] args;
138 if (fieldNameKey != null) {
139 if (this.arguments != null) {
140 args = new Object[this.arguments.length + 1];
141 final String paramNameText = Messages.getText(fieldNameKey);
142 args[0] = paramNameText;
143 System.arraycopy(this.arguments, 0, args, 1,
144 this.arguments.length);
145 } else {
146 args = new Object[] { Messages.getText(fieldNameKey) };
147 }
148 } else {
149 args = this.arguments;
150 }
151 return Messages.getText(messageKey, args);
152 }
153 }
154
155 }