1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.jci.stores;
19
20 import java.util.ArrayList;
21 import java.util.HashMap;
22 import java.util.Iterator;
23 import java.util.List;
24 import java.util.Map;
25 import org.apache.commons.logging.Log;
26 import org.apache.commons.logging.LogFactory;
27
28
29
30
31
32
33
34 public final class MemoryResourceStore implements ResourceStore {
35
36 private final Log log = LogFactory.getLog(MemoryResourceStore.class);
37
38 private final Map store = new HashMap();
39
40 public byte[] read( final String pResourceName ) {
41 log.debug("reading resource " + pResourceName);
42 return (byte[]) store.get(pResourceName);
43 }
44
45 public void write( final String pResourceName, final byte[] pData ) {
46 log.debug("writing resource " + pResourceName + "(" + pData.length + ")");
47 store.put(pResourceName, pData);
48 }
49
50 public void remove( final String pResourceName ) {
51 log.debug("removing resource " + pResourceName);
52 store.remove(pResourceName);
53 }
54
55
56
57
58 public String[] list() {
59 if (store == null) {
60 return new String[0];
61 }
62 final List names = new ArrayList();
63
64 for (final Iterator it = store.keySet().iterator(); it.hasNext();) {
65 final String name = (String) it.next();
66 names.add(name);
67 }
68
69 return (String[]) names.toArray(new String[store.size()]);
70 }
71
72 public String toString() {
73 return this.getClass().getName() + store.toString();
74 }
75 }