]> gitweb.fperrin.net Git - DictionaryPC.git/blob - src/com/hughes/util/MapUtil.java
Move several files out of Util.
[DictionaryPC.git] / src / com / hughes / util / MapUtil.java
1 // Copyright 2011 Google Inc. All Rights Reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 package com.hughes.util;
16
17 import java.util.Map;
18
19 @SuppressWarnings({"WeakerAccess", "unused"})
20 public class MapUtil {
21
22     public static <K,V> V safeGet(final Map<K,V> map, K key, V defaultValue) {
23         if (!map.containsKey(key)) {
24             return defaultValue;
25         }
26         return map.get(key);
27     }
28
29     public static <K,V> V safeGetOrPut(final Map<K,V> map, K key, V defaultValue) {
30         if (!map.containsKey(key)) {
31             map.put(key, defaultValue);
32         }
33         return map.get(key);
34     }
35
36     public static <K,V> V safeGet(final Map<K,V> map, K key, Class<V> valueClass) {
37         if (!map.containsKey(key)) {
38             try {
39                 map.put(key, valueClass.newInstance());
40             } catch (Exception e) {
41                 throw new RuntimeException(e);
42             }
43         }
44         return map.get(key);
45     }
46
47     public static <K,V> V safeRemove(final Map<K,V> map, K key, V defaultValue) {
48         if (!map.containsKey(key)) {
49             return defaultValue;
50         }
51         return map.remove(key);
52     }
53
54
55 }