removed all dasobert code and begun to replace with Jdas calls.
[jalview.git] / src / org / biojava / dasobert / das / SequenceThread.java
diff --git a/src/org/biojava/dasobert/das/SequenceThread.java b/src/org/biojava/dasobert/das/SequenceThread.java
deleted file mode 100755 (executable)
index 720c60b..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- *                  BioJava development code
- *
- * This code may be freely distributed and modified under the
- * terms of the GNU Lesser General Public Licence.  This should
- * be distributed with the code.  If you do not have a copy,
- * see:
- *
- *      http://www.gnu.org/copyleft/lesser.html
- *
- * Copyright for this code is held jointly by the individual
- * authors.  These should be listed in @author doc comments.
- *
- * For more information on the BioJava project and its aims,
- * or to join the biojava-l mailing list, visit the home page
- * at:
- *
- *      http://www.biojava.org/
- * 
- * Created on Nov 20, 2005
- *
- */
-package org.biojava.dasobert.das;
-
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.biojava.dasobert.dasregistry.Das1Source;
-import org.biojava.dasobert.eventmodel.SequenceEvent;
-import org.biojava.dasobert.eventmodel.SequenceListener;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.XMLReader;
-import java.util.*;
-
-/**
- * a thread that gets the sequence from a DAS server
- * 
- * @author Andreas Prlic
- * 
- */
-public class SequenceThread extends Thread
-{
-
-  Das1Source[] sequenceServers;
-
-  String sp_accession;
-
-  List seqListeners;
-
-  String version;
-
-  static Logger logger = Logger.getLogger("org.biojava.spice");
-
-  public SequenceThread(String sp_accession, Das1Source ds)
-  {
-    super();
-    Das1Source[] dss = new Das1Source[1];
-    dss[0] = ds;
-    this.sp_accession = sp_accession;
-    this.sequenceServers = dss;
-    clearSequenceListeners();
-    version = "";
-  }
-
-  public SequenceThread(String sp_accession, Das1Source[] ds)
-  {
-    super();
-
-    this.sp_accession = sp_accession;
-    this.sequenceServers = ds;
-    clearSequenceListeners();
-  }
-
-  public void clearSequenceListeners()
-  {
-    seqListeners = new ArrayList();
-  }
-
-  public void addSequenceListener(SequenceListener lis)
-  {
-    seqListeners.add(lis);
-  }
-
-  public void run()
-  {
-    getSequence();
-  }
-
-  public void getSequence()
-  {
-
-    boolean gotSequence = false;
-
-    for (int i = 0; i < sequenceServers.length; i++)
-    {
-
-      if (gotSequence)
-        break;
-
-      Das1Source ds = sequenceServers[i];
-      String url = ds.getUrl();
-      char lastChar = url.charAt(url.length() - 1);
-      if (!(lastChar == '/'))
-        url += "/";
-      String dascmd = url + "sequence?segment=";
-      String connstr = dascmd + sp_accession;
-
-      try
-      {
-        version = "";
-
-        String sequence = retrieveSequence(connstr);
-        // TODO: discriminate exceptions caused by connection/server errors and ones caused by the sequence not being found in the reference source.
-        if (sequence!=null)
-        {
-          // bug in aristotle das source?
-          sequence.replaceAll(" ", "");
-          gotSequence = true;
-          // set the sequence ...
-
-          triggerNewSequence(sp_accession, sequence, ds, version);
-        }
-        return;
-      } catch (Exception ex)
-      {
-        ex.printStackTrace();
-        logger.warning(ex.getMessage());
-
-        // triggerException(ex);
-
-      }
-    }
-
-    logger
-            .log(
-                    Level.WARNING,
-                    "could not retreive UniProt sequence from any available DAS sequence server");
-
-    triggerNoSequence(sp_accession);
-
-  }
-
-  // private void triggerException(Exception e){
-  // Iterator iter = seqListeners.iterator();
-  // while (iter.hasNext()){
-  // SequenceListener li = (SequenceListener)iter.next();
-  // li.exceptionOccured(e);
-  // }
-  // }
-
-  private void triggerNewSequence(String sp_accession, String sequence,
-          Das1Source source, String version)
-  {
-
-    Iterator iter = seqListeners.iterator();
-    while (iter.hasNext())
-    {
-      SequenceListener li = (SequenceListener) iter.next();
-      // SequenceEvent event = new SequenceEvent(sequence);
-      SequenceEvent event = new SequenceEvent(sp_accession, sequence,
-              version);
-      event.setSource(source);
-      li.newSequence(event);
-    }
-  }
-
-  private void triggerNoSequence(String ac)
-  {
-
-    Iterator iter = seqListeners.iterator();
-    while (iter.hasNext())
-    {
-      SequenceListener li = (SequenceListener) iter.next();
-      li.noObjectFound(ac);
-    }
-
-  }
-
-  /**
-   * retrieve the Sequence from a DAS server.
-   * 
-   * @param connstr -
-   *                the DAS - request string. e.g.
-   *                http://www.ebi.ac.uk/das-srv/uniprot/das/aristotle/sequence?segment=P00280
-   * @return the requested Sequence
-   * @throws Exception
-   */
-  public String retrieveSequence(String connstr) throws Exception
-  {
-
-    // logger.finest("trying: " + connstr) ;
-    URL dasUrl = new URL(connstr);
-    // DAS_httpConnector dhtp = new DAS_httpConnector() ;
-    logger.info("requesting sequence from " + connstr);
-    InputStream dasInStream = open(dasUrl);
-
-    SAXParserFactory spfactory = SAXParserFactory.newInstance();
-
-    // never do this
-    // String vali = System.getProperty("XMLVALIDATION");
-    String vali = "false";
-    boolean validate = false;
-    if ((vali != null) && (vali.equals("true")))
-      validate = true;
-    spfactory.setValidating(validate);
-
-    SAXParser saxParser = null;
-
-    try
-    {
-      saxParser = spfactory.newSAXParser();
-    } catch (ParserConfigurationException e)
-    {
-      // e.printStackTrace();
-      logger.log(Level.FINER, "Uncaught exception", e);
-    }
-
-    XMLReader xmlreader = saxParser.getXMLReader();
-
-    try
-    {
-      xmlreader.setFeature("http://xml.org/sax/features/validation",
-              validate);
-    } catch (SAXException e)
-    {
-      logger.finer("Cannot set validation to " + validate);
-      logger.log(Level.FINER, "Uncaught exception", e);
-    }
-
-    try
-    {
-      xmlreader
-              .setFeature(
-                      "http://apache.org/xml/features/nonvalidating/load-external-dtd",
-                      validate);
-    } catch (SAXNotRecognizedException e)
-    {
-      // e.printStackTrace();
-      logger.finer("Cannot set load-external-dtd to" + validate);
-      logger.log(Level.FINER, "Uncaught exception", e);
-      // System.err.println("Cannot set load-external-dtd to" + validate);
-    }
-    if (dasInStream==null)
-    {
-      return null;
-    }
-    // DAS_DNA_Handler cont_handle = new DAS_DNA_Handler() ;
-    DAS_Sequence_Handler cont_handle = new DAS_Sequence_Handler();
-    xmlreader.setContentHandler(cont_handle);
-    xmlreader.setErrorHandler(new org.xml.sax.helpers.DefaultHandler());
-    InputSource insource = new InputSource();
-    insource.setByteStream(dasInStream);
-
-    xmlreader.parse(insource);
-    String sequence = cont_handle.get_sequence();
-    version = cont_handle.getVersion();
-    // logger.finest("Got sequence from DAS: " +sequence);
-
-    logger.exiting(this.getClass().getName(), "retreiveSequence", sequence);
-    return sequence;
-  }
-
-  private InputStream open(URL url)
-  {
-    {
-
-      InputStream inStream = null;
-      try
-      {
-
-        HttpURLConnection huc = null;
-
-        huc = DAS_FeatureRetrieve.openHttpURLConnection(url);
-
-        logger.finest(huc.getResponseMessage());
-
-        inStream = huc.getInputStream();
-
-      } catch (Exception ex)
-      {
-        ex.printStackTrace();
-        logger.log(Level.WARNING, "exception occured", ex);
-      }
-
-      return inStream;
-    }
-
-  }
-
-}