package uk.me.parabola.mkgmap.reader.osm; import java.util.AbstractMap; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Represent a Relation. * * @author Rene_A */ public abstract class Relation extends Element { private final List<Map.Entry<String,Element>> elements = new ArrayList<Map.Entry<String,Element>>(); /** * Add a (role, Element) pair to this Relation. * @param role The role this element performs in this relation * @param el The Element added */ public void addElement(String role, Element el) { elements.add(new AbstractMap.SimpleEntry<String,Element>(role, el)); } /** Invoked after addElement() has been invoked on all Node and Way * members of the relations. Relation members (sub-relations) may be * added later. */ public abstract void processElements(); /** Get the ordered list of relation members. * @return list of pairs of (role, Element) */ public List<Map.Entry<String,Element>> getElements() { return elements; } public String kind() { return "relation"; } }