package com.lateensoft.pathfinder.toolkit.serialize; import com.lateensoft.pathfinder.toolkit.model.character.Spell; import org.dom4j.Element; import java.io.InvalidObjectException; /** * @author tsiemens */ public class SpellXMLAdapter extends XMLObjectAdapter<Spell> { public static final String ELEMENT_NAME = "spell"; private static final String NAME_ELMT = "name"; private static final String LEVEL_ATTR = "level"; private static final String PREPARED_ATTR = "prepared"; private static final String DESC_ELMT = "desc"; @Override public String getElementName() { return ELEMENT_NAME; } @Override protected Spell createObjectForElement(Element element) throws InvalidObjectException { Spell spell = new Spell(); spell.setName(getSubElementText(element, NAME_ELMT)); spell.setLevel(getBoundedIntAttribute(element, LEVEL_ATTR, 0, 10)); spell.setPrepared(getBoundedIntAttribute(element, PREPARED_ATTR, 0, 40)); spell.setDescription(getSubElementText(element, DESC_ELMT)); return spell; } @Override protected void setElementContentForObject(Element element, Spell spell) { addSubElementText(element, NAME_ELMT, spell.getName()); element.addAttribute(LEVEL_ATTR, Integer.toString(spell.getLevel())); element.addAttribute(PREPARED_ATTR, Integer.toString(spell.getPrepared())); addSubElementText(element, DESC_ELMT, spell.getDescription()); } }