Revert "JAL-2245 Castor mapping and code changes for change to ENA XML format"
[jalview.git] / src / jalview / ws / dbsources / EmblXmlSource.java
index 73e67aa..2049766 100644 (file)
@@ -72,7 +72,7 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy
               "exception.ebiembl_retrieval_failed_on", new String[] {
                   emprefx.toLowerCase(), query.trim() }), e);
     }
-    return getEmblSequenceRecords(emprefx, reply);
+    return getEmblSequenceRecords(emprefx, query, reply);
   }
 
   /**
@@ -81,38 +81,46 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy
    * @param emprefx
    *          either EMBL or EMBLCDS strings are allowed - anything else will
    *          not retrieve emblxml
+   * @param query
    * @param file
    *          the EMBL XML file containing the results of a query
    * @return
    * @throws Exception
    */
-  public AlignmentI getEmblSequenceRecords(String emprefx, File reply)
-          throws Exception
+  public AlignmentI getEmblSequenceRecords(String emprefx, String query,
+          File reply) throws Exception
   {
-    EmblEntry entry = null;
+    EmblFile efile = null;
+    List<SequenceI> seqs = new ArrayList<SequenceI>();
 
     if (reply != null && reply.exists())
     {
       file = reply.getAbsolutePath();
       if (reply.length() > EMBL_NOT_FOUND_REPLY.length())
       {
-        entry = EmblFile.getEmblEntry(reply);
+        efile = EmblFile.getEmblFile(reply);
       }
     }
 
-    // TODO don't need peptides any more?
     List<SequenceI> peptides = new ArrayList<SequenceI>();
-    AlignmentI al = null;
-    if (entry != null)
+    if (efile != null)
     {
-      SequenceI seq = entry.getSequence(emprefx, peptides);
-      if (seq != null)
+      for (EmblEntry entry : efile.getEntries())
       {
-        seq.deriveSequence();
-        // place DBReferences on dataset and refer
-        al = new Alignment(new SequenceI[] { seq });
+        SequenceI seq = entry.getSequence(emprefx, peptides);
+        if (seq != null)
+        {
+          seqs.add(seq.deriveSequence());
+          // place DBReferences on dataset and refer
+        }
       }
     }
+
+    AlignmentI al = null;
+    if (!seqs.isEmpty())
+    {
+      al = new Alignment(seqs.toArray(new SequenceI[seqs.size()]));
+    }
     stopQuery();
     return al;
   }