package com.lateensoft.pathfinder.toolkit.serialize; import com.lateensoft.pathfinder.toolkit.model.character.Inventory; import com.lateensoft.pathfinder.toolkit.model.character.items.Armor; import com.lateensoft.pathfinder.toolkit.model.character.items.Item; import com.lateensoft.pathfinder.toolkit.model.character.items.Weapon; import org.dom4j.Element; import java.io.InvalidObjectException; import java.util.List; /** * @author trevsiemens */ public class InventoryXMLAdapter extends XMLObjectAdapter<Inventory> { public static final String ELEMENT_NAME = "inventory"; private final ItemXMLAdapter m_itemXMLAdapter = new ItemXMLAdapter(); private final WeaponXMLAdapter m_weaponXMLAdapter = new WeaponXMLAdapter(); private final ArmorXMLAdapter m_armorXMLAdapter = new ArmorXMLAdapter(); @Override public String getElementName() { return ELEMENT_NAME; } @Override protected Inventory createObjectForElement(Element element) throws InvalidObjectException { Inventory inventory = new Inventory(); inventory.getItems().addAll(getSubObjects(element, m_itemXMLAdapter)); inventory.getArmors().addAll(getSubObjects(element, m_armorXMLAdapter)); inventory.getWeapons().addAll(getSubObjects(element, m_weaponXMLAdapter)); return inventory; } @Override protected void setElementContentForObject(Element element, Inventory inventory) { List<Item> items = inventory.getItems(); for (Item item : items) { element.add(m_itemXMLAdapter.toXML(item)); } List<Armor> armors = inventory.getArmors(); for (Armor armor : armors) { element.add(m_armorXMLAdapter.toXML(armor)); } List<Weapon> weapons = inventory.getWeapons(); for (Weapon weapon : weapons) { element.add(m_weaponXMLAdapter.toXML(weapon)); } } }