MCPcopy Index your code
hub / github.com/Card-Forge/forge / StorageBase

Class StorageBase

forge-core/src/main/java/forge/util/storage/StorageBase.java:38–157  ·  view source on GitHub ↗

StorageBase class. @param the generic type @author Forge @version $Id: StorageBase.java 13590 2012-01-27 20:46:27Z Max mtg $

Source from the content-addressed store, hash-verified

36 * @version $Id: StorageBase.java 13590 2012-01-27 20:46:27Z Max mtg $
37 */
38public class StorageBase<T> implements IStorage<T> {
39 protected final Map<String, T> map;
40
41 public final static StorageBase<?> emptyMap = new StorageBase<>("Empty", null, new HashMap<>());
42 public final String name, fullPath;
43
44 public StorageBase(final String name0, final IItemReader<T> io) {
45 this(name0, io.getFullPath(), io.readAll());
46 }
47
48 public StorageBase(final String name0, final String fullPath0, final Map<String, T> map0) {
49 name = name0;
50 fullPath = fullPath0;
51 map = map0;
52 }
53
54 @Override
55 public T get(final String name) {
56 return map.get(name);
57 }
58
59 @Override
60 public final Collection<String> getItemNames() {
61 return new ArrayList<>(map.keySet());
62 }
63
64 @Override
65 public Iterator<T> iterator() {
66 return map.values().iterator();
67 }
68
69 @Override
70 public Stream<T> stream() {
71 return map.values().stream();
72 }
73
74 @Override
75 public boolean contains(String name) {
76 return name != null && map.containsKey(name);
77 }
78
79 @Override
80 public int size() {
81 return map.size();
82 }
83
84 @Override
85 public T find(Predicate<T> condition) {
86 return IterableUtil.tryFind(map.values(), condition).orElse(null);
87 }
88
89 @Override
90 public void add(String name, T item) {
91 throw new UnsupportedOperationException("This is a read-only storage");
92 }
93
94 @Override
95 public void add(T item) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected