Team:Freiburg software/Code/BioBrick DAS DNA Handler.java

/*   Copyright: synbiowave License: GPL Authors: Jörg Wassolesk Version: 0.1 DESCRIPTION: This class provides the functions for handling DAS DNA requests. */

package org.synbiowave.biobrick;

import org.xml.sax.helpers.DefaultHandler; import org.xml.sax.Attributes;

// TODO: Auto-generated Javadoc /** * a class to parse the XML response of a DAS-DNA request. * * @author Jörg */ public class BioBrick_DAS_DNA_Handler extends DefaultHandler {

/** The sequence. */	String sequence ; /** The length. */	int length ; /** The dna_flag. */	boolean dna_flag; /**	 * Instantiates a new bio brick_ da s_ dn a_ handler. */	public BioBrick_DAS_DNA_Handler { super; // TODO Auto-generated constructor stub sequence = "" ; length = 0; dna_flag = false ; }

/* (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("DNA")){ //System.out.println("new element >" + name + "< >" + qName+"<"); // was : length String lenstr 	= atts.getValue("length"); length = Integer.parseInt(lenstr); dna_flag = true ; }	}	/* (non-Javadoc) * @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int) */	public void characters (char ch[], int start, int length){ //System.out.print("Characters:   \"");		if (dna_flag) 		 for (int i = start; i < start + length; i++) {		 	switch (ch[i]) {		 	case '\\':		 		//System.out.print("\\\\");		 		break;		 	case '"': //System.out.print("\\\"");		 		break;		 	case '\n':		 		//System.out.print("\\n");		 		break;		 	case '\r':		 		//System.out.print("\\r");		 		break;		 	case '\t':		 		//System.out.print("\\t");		 		break;		 	case ' ':		 		break;		 	default:		 		sequence = sequence + ch[i];		 		//System.out.print(ch[i]);		 break;		 }		 }		 //System.out.print("\"\n"); }	/**	 * Gets the _sequence. * 	 * @return the _sequence */	public String get_sequence { if ( length != sequence.length) { System.err.println("Sequence does not match specified length!"); }		return sequence; }	 }