View Javadoc

1   package com.atlassian.pageobjects.util;
2   
3   import java.util.HashMap;
4   import java.util.Map;
5   
6   import org.apache.commons.lang.Validate;
7   
8   
9   /**
10   * Helper class for building a query string
11   */
12  public class QueryStringBuilder
13  {
14  
15      private final Map<String, String> params = new HashMap<String, String>();
16  
17  
18      public QueryStringBuilder(String... params)
19      {
20          Validate.isTrue(params.length % 2 == 0, "Must be an even number of parameters");
21  
22          for (int i = 0; i < params.length; i += 2)
23          {
24              this.params.put(params[i], params[i + 1]);
25          }
26      }
27  
28      public QueryStringBuilder add(String key, String value)
29      {
30          params.put(key, value);
31          return this;
32      }
33  
34      public int size()
35      {
36          return params.size();
37      }
38  
39      public String toString()
40      {
41          StringBuffer result = new StringBuffer();
42  
43          for (String key : params.keySet())
44          {
45              if (result.length() > 0)
46              {
47                  result.append("&");
48              }
49  
50              result.append(key).append("=").append(params.get(key));
51          }
52  
53          return result.toString();
54      }
55  
56  }