package com.lateensoft.pathfinder.toolkit.serialize; import org.dom4j.Element; import java.io.InvalidObjectException; import java.util.List; /** * @author tsiemens */ public abstract class IterableXMLAdapter<I extends Iterable<E>, E, A extends XMLObjectAdapter<E>> extends XMLObjectAdapter<I> { public abstract A getItemAdapter(); protected abstract I createObjectFromItems(List<E> items); @Override protected I createObjectForElement(Element element) throws InvalidObjectException { List<E> items = getSubObjects(element, getItemAdapter()); return createObjectFromItems(items); } @Override protected void setElementContentForObject(Element element, I iterable) { A adapter = getItemAdapter(); for (E item : iterable) { element.add(adapter.toXML(item)); } } }