1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.apache.hc.client5.http.impl.cache;
28
29 import java.util.Collection;
30 import java.util.HashMap;
31 import java.util.Map;
32
33 import org.apache.hc.client5.http.cache.HttpCacheCASOperation;
34 import org.apache.hc.client5.http.cache.HttpCacheEntry;
35 import org.apache.hc.client5.http.cache.HttpCacheStorage;
36 import org.apache.hc.client5.http.cache.ResourceIOException;
37
38 class SimpleHttpCacheStorage implements HttpCacheStorage {
39
40 public final Map<String,HttpCacheEntry> map;
41
42 public SimpleHttpCacheStorage() {
43 map = new HashMap<>();
44 }
45
46 @Override
47 public void putEntry(final String key, final HttpCacheEntry entry) {
48 map.put(key, entry);
49 }
50
51 @Override
52 public HttpCacheEntry getEntry(final String key) {
53 return map.get(key);
54 }
55
56 @Override
57 public void removeEntry(final String key) {
58 map.remove(key);
59 }
60
61 @Override
62 public void updateEntry(
63 final String key, final HttpCacheCASOperation casOperation) throws ResourceIOException {
64 final HttpCacheEntry v1 = map.get(key);
65 final HttpCacheEntry v2 = casOperation.execute(v1);
66 map.put(key,v2);
67 }
68
69 @Override
70 public Map<String, HttpCacheEntry> getEntries(final Collection<String> keys) throws ResourceIOException {
71 final Map<String, HttpCacheEntry> resultMap = new HashMap<>(keys.size());
72 for (final String key: keys) {
73 final HttpCacheEntry entry = getEntry(key);
74 if (entry != null) {
75 resultMap.put(key, entry);
76 }
77 }
78 return resultMap;
79 }
80
81 }