1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.util;
17
18 import java.io.UnsupportedEncodingException;
19 import java.net.URLEncoder;
20
21 import org.seasar.framework.exception.IORuntimeException;
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public class QueryStringBuilder {
40
41
42
43
44 private StringBuilder sb = new StringBuilder();
45
46
47
48
49 private String encode = "UTF-8";
50
51
52
53
54
55
56 public void setEncode(final String encode) {
57 this.encode = encode;
58 }
59
60
61
62
63
64
65
66
67
68 public void addParam(final String name, final Object value) {
69 if (value != null && value.getClass().isArray()) {
70 final Object[] values = (Object[]) value;
71 for (final Object v : values) {
72 appendParams(name, v);
73 }
74 } else {
75 appendParams(name, value);
76 }
77 }
78
79
80
81
82 @Override
83 public String toString() {
84 return sb.toString();
85 }
86
87
88
89
90
91
92
93
94
95 private void appendParams(final String name, final Object value) {
96 if (sb.length() > 0) {
97 sb.append("&");
98 }
99 try {
100 sb.append(URLEncoder.encode(name, encode));
101 sb.append("=");
102 if (value != null) {
103 sb.append(URLEncoder.encode(value.toString(), encode));
104 }
105 } catch (final UnsupportedEncodingException e) {
106 throw new IORuntimeException(e);
107 }
108 }
109 }