|
|
@@ -2,7 +2,9 @@ package org.leumasjaffe.charsheet.model;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.util.Collection;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Optional;
|
|
|
import java.util.Set;
|
|
|
|
|
|
@@ -38,11 +40,16 @@ public class DDClass {
|
|
|
|
|
|
@Getter(AccessLevel.PACKAGE) @NonNull Optional<DDSpellList> spells;
|
|
|
|
|
|
+ static Map<String, DDClass> store = new HashMap<>();
|
|
|
+
|
|
|
@SneakyThrows
|
|
|
public static DDClass getFromResource(final String name) {
|
|
|
- final ObjectMapper mapper = new ObjectMapper();
|
|
|
- mapper.registerModule(new Jdk8Module());
|
|
|
- return mapper.readValue(new File("resources/classes/" + name + ".json"), DDClass.class);
|
|
|
+ if (!store.containsKey(name)) {
|
|
|
+ final ObjectMapper mapper = new ObjectMapper();
|
|
|
+ mapper.registerModule(new Jdk8Module());
|
|
|
+ store.put(name, mapper.readValue(new File("resources/classes/" + name + ".json"), DDClass.class));
|
|
|
+ }
|
|
|
+ return store.get(name);
|
|
|
}
|
|
|
|
|
|
public Collection<DDSpell> getSpellList( int level ) {
|