speedup: call force() only at the end of the build, between chunk builds drop only...
[idea/community.git] / jps / model / src / org / jetbrains / ether / dependencyView / TransientMaplet.java
1 /*
2  * Copyright 2000-2011 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.jetbrains.ether.dependencyView;
17
18 import com.intellij.util.containers.hash.HashMap;
19
20 import java.util.Collection;
21 import java.util.Map;
22
23 /**
24  * Created by IntelliJ IDEA.
25  * User: db
26  * Date: 05.11.11
27  * Time: 0:00
28  * To change this template use File | Settings | File Templates.
29  */
30 public class TransientMaplet<K, V> implements Maplet<K, V>{
31   private final Map<K, V> myMap = new HashMap<K, V>();
32   
33   @Override
34   public boolean containsKey(final Object key) {
35     return myMap.containsKey(key);
36   }
37
38   @Override
39   public V get(final Object key) {
40     return myMap.get(key);
41   }
42
43   @Override
44   public void put(final K key, final V value) {
45     myMap.put(key, value);
46   }
47
48   @Override
49   public void putAll(final Maplet<K, V> m) {
50     for (Map.Entry<K, V> e : m.entrySet()) {
51       myMap.put(e.getKey(), e.getValue());
52     }
53   }
54
55   @Override
56   public void remove(final Object key) {
57     myMap.remove(key);
58   }
59
60   @Override
61   public void close() {
62     myMap.clear();
63   }
64
65   public void flush(boolean memoryCachesOnly) {
66   }
67
68   @Override
69   public Collection<K> keyCollection() {
70     return myMap.keySet();
71   }
72
73   @Override
74   public Collection<Map.Entry<K, V>> entrySet() {
75     return myMap.entrySet();
76   }
77 }