+++ /dev/null
-/*\r
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)\r
- * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle\r
- * \r
- * This file is part of Jalview.\r
- * \r
- * Jalview is free software: you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License \r
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\r
- * \r
- * Jalview is distributed in the hope that it will be useful, but \r
- * WITHOUT ANY WARRANTY; without even the implied warranty \r
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR \r
- * PURPOSE. See the GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.\r
- */\r
-package jalview.ws.dbsources.das;\r
-\r
-import jalview.datamodel.AlignmentI;\r
-import jalview.datamodel.Alignment;\r
-import jalview.datamodel.DBRefEntry;\r
-import jalview.datamodel.Sequence;\r
-import jalview.datamodel.SequenceI;\r
-import jalview.ws.dbsources.DasSequenceSource;\r
-\r
-import org.biojava.dasobert.eventmodel.SequenceEvent;\r
-import org.biojava.dasobert.eventmodel.SequenceListener;\r
-\r
-/**\r
- * Listen for sequence fetch events from a dasobert SequenceThread started with\r
- * a query string and collect sequences returned from the DAS sequence source.\r
- * \r
- * @author JimP\r
- * \r
- */\r
-public class DasSequenceSourceListener implements SequenceListener\r
-{\r
-\r
- String ourAccession = null;\r
-\r
- DasSequenceSource oursource = null;\r
-\r
- /**\r
- * \r
- * @param source\r
- * the DAS Sequence DbProxy object containing database details for\r
- * this source\r
- * @param query\r
- * the query string sent to the das source that we should be\r
- * listening for.\r
- */\r
- public DasSequenceSourceListener(DasSequenceSource source, String query)\r
- {\r
- oursource = source;\r
- ourAccession = query;\r
- }\r
-\r
- public void clearSelection()\r
- {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- java.util.Vector seqs = null;\r
-\r
- public void newSequence(SequenceEvent e)\r
- {\r
- if (!e.getAccessionCode().equals(ourAccession))\r
- {\r
- System.err\r
- .println("Warning - received sequence event for strange accession code ("\r
- + e.getAccessionCode()\r
- + ") - we expected "\r
- + ourAccession);\r
-\r
- return;\r
- }\r
- if (seqs == null)\r
- {\r
- if (e.getSequence().length() == 0)\r
- {\r
- System.err.println("Empty sequence returned for accession code ("\r
- + e.getAccessionCode() + ") from " + oursource.getDbName());\r
- called = true;\r
- noSequences = true;\r
- return;\r
- }\r
- seqs = new java.util.Vector();\r
- }\r
- Sequence sq = new Sequence(e.getAccessionCode(), e.getSequence());\r
- sq.addDBRef(new DBRefEntry(oursource.getDbSource(), oursource\r
- .getDbVersion() + ":" + e.getVersion(), e.getAccessionCode()));\r
- seqs.addElement(sq);\r
- called = true;\r
- }\r
-\r
- public void selectedSeqPosition(int position)\r
- {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- public void selectedSeqRange(int start, int end)\r
- {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- public void selectionLocked(boolean flag)\r
- {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- public void newObjectRequested(String accessionCode)\r
- {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- boolean noSequences = false;\r
-\r
- public void noObjectFound(String accessionCode)\r
- {\r
- if (accessionCode.equals(ourAccession))\r
- {\r
- noSequences = true;\r
- called = true;\r
- }\r
- }\r
-\r
- public boolean hasNoSequences()\r
- {\r
- return noSequences;\r
- }\r
-\r
- boolean called = false;\r
-\r
- public boolean isNotCalled()\r
- {\r
- return !called;\r
- }\r
-\r
- public AlignmentI getSequences()\r
- {\r
- if (noSequences || seqs != null && seqs.size() == 0)\r
- return null;\r
- SequenceI[] sqs = new SequenceI[seqs.size()];\r
- for (int i = 0, iSize = seqs.size(); i < iSize; i++)\r
- {\r
- sqs[i] = (SequenceI) seqs.elementAt(i);\r
- }\r
- Alignment al = new Alignment(sqs);\r
- if (oursource.getSource().hasCapability("features"))\r
- {\r
- java.util.Vector src = new java.util.Vector();\r
- src.addElement(oursource.getSource());\r
- new jalview.ws.DasSequenceFeatureFetcher(sqs, null, src, false, false);\r
- }\r
-\r
- return al;\r
- }\r
-\r
-}\r