View Javadoc

1   package com.atlassian.core.util.map;
2   
3   import org.apache.commons.collections.map.HashedMap;
4   
5   import java.util.Map;
6   
7   /**
8    * A replacement for UtilMisc.toMap().
9    * <p/>
10   * Most methods here are not null safe
11   */
12  public class EasyMap
13  {
14      public static Map build()
15      {
16          return createMap(1);
17      }
18  
19      public static Map build(Object key1, Object value1)
20      {
21          Map map = createMap(1);
22  
23          map.put(key1, value1);
24  
25          return map;
26      }
27  
28      public static Map build(Object key1, Object value1, Object key2, Object value2)
29      {
30          Map map = createMap(2);
31  
32          map.put(key1, value1);
33          map.put(key2, value2);
34  
35          return map;
36      }
37  
38      public static Map build(Object key1, Object value1, Object key2, Object value2, Object key3, Object value3)
39      {
40          Map map = createMap(3);
41  
42          map.put(key1, value1);
43          map.put(key2, value2);
44          map.put(key3, value3);
45  
46          return map;
47      }
48  
49      public static Map build(Object key1, Object value1, Object key2, Object value2, Object key3, Object value3,
50              Object key4, Object value4)
51      {
52          Map map = createMap(4);
53  
54          map.put(key1, value1);
55          map.put(key2, value2);
56          map.put(key3, value3);
57          map.put(key4, value4);
58  
59          return map;
60      }
61  
62      public static Map build(Object key1, Object value1, Object key2, Object value2, Object key3, Object value3,
63              Object key4, Object value4, Object key5, Object value5)
64      {
65          Map map = createMap(5);
66  
67          map.put(key1, value1);
68          map.put(key2, value2);
69          map.put(key3, value3);
70          map.put(key4, value4);
71          map.put(key5, value5);
72  
73          return map;
74      }
75  
76      public static Map build(Object key1, Object value1, Object key2, Object value2, Object key3, Object value3,
77              Object key4, Object value4, Object key5, Object value5, Object key6, Object value6)
78      {
79          Map map = createMap(6);
80  
81          map.put(key1, value1);
82          map.put(key2, value2);
83          map.put(key3, value3);
84          map.put(key4, value4);
85          map.put(key5, value5);
86          map.put(key6, value6);
87  
88          return map;
89      }
90  
91      public static Map build(Object key1, Object value1, Object key2, Object value2, Object key3, Object value3,
92              Object key4, Object value4, Object key5, Object value5, Object key6, Object value6, Object key7,
93              Object value7)
94      {
95          Map map = createMap(7);
96  
97          map.put(key1, value1);
98          map.put(key2, value2);
99          map.put(key3, value3);
100         map.put(key4, value4);
101         map.put(key5, value5);
102         map.put(key6, value6);
103         map.put(key7, value7);
104 
105         return map;
106     }
107 
108     public static Map createMap(int size)
109     {
110         return new HashedMap(size);
111     }
112     
113     /**
114      * Takes a variable number of objects to build a map
115      *
116      * @throws RuntimeException if parameters are not even
117      * @param objects
118      * @return
119      */
120     public static Map build(Object... objects)
121     {
122         Map map = createMap(1);
123 
124         if (objects.length % 2 != 0)
125         {
126             throw new RuntimeException("The number of parameters should be even when building a map");
127         }
128 
129         for (int i = 0; i < objects.length; i = (i + 2))
130         {
131             Object key = objects[i];
132             Object value = objects[i+1];
133             map.put(key, value);
134         }
135 
136         return map;
137     }
138 }