Team:Freiburg software/Code/BioBrick DAS DNA Handler.java
From 2009.igem.org
/* 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; } }