package org.leumasjaffe.charsheet.entity.magic; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.AccessLevel; import lombok.Data; import lombok.NonNull; import lombok.experimental.FieldDefaults; @Data @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true) @JsonIgnoreProperties(ignoreUnknown=true) public class DDSpellList { @NonNull Source group; @NonNull List> known; @NonNull List> perDay; @NonNull List spellList; @Data public static class SpellList { @NonNull List spellList; @JsonCreator public SpellList(List data) { this.spellList = new ArrayList<>(data.size()); int idx = -1; for ( final String name : data ) { if ((idx = name.indexOf(':')) != -1) { spellList.add(DDSpellFactory.loadSpellWithResource(name.substring(0, idx), name.substring(idx))); } else { spellList.add(DDSpellFactory.loadSpell(name)); } } } } }