|
|
@@ -1,7 +1,10 @@
|
|
|
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;
|
|
|
|
|
|
@@ -36,11 +39,16 @@ public class DDClass {
|
|
|
|
|
|
@Getter(AccessLevel.NONE) @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 boolean isClassSkill(final String skillName) {
|