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