From 2009.igem.org
/*
Copyright: synbiowave
License: GPL
Authors: Jörg Wassolesk
Version: 0.1
DESCRIPTION:
This class provides the methods needed for the handling of DAS entry_point requests.
*/
package org.synbiowave.biobrick ;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.Attributes;
// TODO: Auto-generated Javadoc
/**
* a class to parse the reponse of the BioBrick DAS - entry_points request.
*/
public class BioBrick_DAS_Entry_Points_Handler extends DefaultHandler {
/** The segments. */
List<Map<String,String>> segments;
/** The ids. */
TreeSet<String> ids;
/** The current entry point. */
Map<String,String> currentEntryPoint;
/**
* Instantiates a new bio brick_ da s_ entry_ points_ handler.
*/
public BioBrick_DAS_Entry_Points_Handler(){
segments=new ArrayList<Map<String,String>>();
ids=new TreeSet<String>();
currentEntryPoint=new HashMap<String,String>();}
/* (non-Javadoc)
* @see org.xml.sax.helpers.DefaultHandler#startDocument()
*/
public void startDocument(){
segments=new ArrayList<Map<String,String>>();
ids=new TreeSet<String>();}
/* (non-Javadoc)
* @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
*/
public void startElement(String uri,String name,String qName,Attributes atts){
if(qName.equals("SEGMENT")){
currentEntryPoint=new HashMap<String,String>();
String id=atts.getValue("id");
if(!(id==null)){
currentEntryPoint.put("id",id);
ids.add(id);}
String size=atts.getValue("size");
if(!(size==null)){currentEntryPoint.put("size",size);}
String start=atts.getValue("start");
if(!(start==null)){currentEntryPoint.put("start",start);}
String stop=atts.getValue("stop");
if(!(stop==null)){currentEntryPoint.put("stop",stop);}
String orientation=atts.getValue("orientation");
if(!(orientation==null)){currentEntryPoint.put("orientation",orientation);}
String subparts=atts.getValue("subparts");
if(!(subparts==null)){currentEntryPoint.put("subparts",subparts);}}}
/* (non-Javadoc)
* @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
*/
public void endElement(String uri,String name,String qName){
if(qName.equals("SEGMENT")){segments.add(currentEntryPoint);}}
/**
* Gets the segemnts.
*
* @return the segemnts
*/
public List<Map<String,String>> getSegemnts(){return segments;}
/**
* Gets the i ds.
*
* @return the i ds
*/
public TreeSet<String> getIDs(){return ids;}
}