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