package fr.orsay.lri.varna.models.rna; import java.awt.Color; import java.io.Serializable; import java.util.ArrayList; import java.util.Hashtable; import javax.xml.transform.sax.TransformerHandler; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; import fr.orsay.lri.varna.models.rna.ModeleBackboneElement.BackboneType; import fr.orsay.lri.varna.utils.XMLUtils; public class ModeleBackbone implements Serializable{ /** * */ private Hashtable elems = new Hashtable(); private static final long serialVersionUID = -614968737102943216L; public static String XML_ELEMENT_NAME = "backbone"; public void toXML(TransformerHandler hd) throws SAXException { AttributesImpl atts = new AttributesImpl(); hd.startElement("","",XML_ELEMENT_NAME,atts); for (ModeleBackboneElement bck:elems.values()) { bck.toXML(hd); } hd.endElement("","",XML_ELEMENT_NAME); atts.clear(); } public void addElement(ModeleBackboneElement mbe) { elems.put(mbe.getIndex(),mbe); } public BackboneType getTypeBefore(int indexBase) { return getTypeAfter(indexBase-1); } public BackboneType getTypeAfter(int indexBase) { if (elems.containsKey(indexBase)) return elems.get(indexBase).getType(); else return BackboneType.SOLID_TYPE; } public Color getColorBefore(int indexBase, Color defCol) { return getColorAfter(indexBase-1,defCol); } public Color getColorAfter(int indexBase, Color defCol) { if (elems.containsKey(indexBase)) { Color c = elems.get(indexBase).getColor(); if (c != null) return c; } return defCol; } }