Merge branch 'develop' into merged_2_11_2_0_to_2_12
[jalview.git] / src / jalview / ws / dbsources / EmblFlatfileSource.java
index 2353f22..577bc0f 100644 (file)
@@ -1,17 +1,40 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.ws.dbsources;
 
+import java.util.Locale;
+
 import java.io.File;
 import java.io.IOException;
 
 import com.stevesoft.pat.Regex;
 
-import jalview.bin.Cache;
+import jalview.bin.Console;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.SequenceI;
 import jalview.io.DataSourceType;
 import jalview.io.EmblFlatFile;
 import jalview.io.FileParse;
+import jalview.util.Platform;
 import jalview.ws.ebi.EBIFetchClient;
 
 /**
@@ -22,7 +45,7 @@ import jalview.ws.ebi.EBIFetchClient;
  */
 public abstract class EmblFlatfileSource extends EbiFileRetrievedProxy
 {
-  private static final Regex ACCESSION_REGEX = new Regex("^[A-Z]+[0-9]+");
+  private static final Regex ACCESSION_REGEX = Platform.newRegex("^[A-Z]+[0-9]+");
 
   @Override
   public String getDbVersion()
@@ -73,13 +96,14 @@ public abstract class EmblFlatfileSource extends EbiFileRetrievedProxy
     try
     {
       reply = dbFetch.fetchDataAsFile(
-              dbName.toLowerCase() + ":" + query.trim(), null, "txt");
+              dbName.toLowerCase(Locale.ROOT) + ":" + query.trim(), null,
+              "gz");
     } catch (Exception e)
     {
       stopQuery();
       throw new Exception(
-              String.format("EBI EMBL XML retrieval failed for %s:%s",
-                      dbName.toLowerCase(), query.trim()),
+              String.format("EBI EMBL retrieval failed for %s:%s",
+                      dbName.toLowerCase(Locale.ROOT), query.trim()),
               e);
     }
     return getEmblSequenceRecords(dbName, query, reply);
@@ -95,7 +119,6 @@ public abstract class EmblFlatfileSource extends EbiFileRetrievedProxy
       file = reply.getAbsolutePath();
       FileParse fp = new FileParse(file, DataSourceType.FILE);
       EmblFlatFile emblParser = new EmblFlatFile(fp, getDbSource());
-      emblParser.parse();
       SequenceI[] seqs = emblParser.getSeqsAsArray();
       if (seqs.length > 0)
       {
@@ -104,12 +127,17 @@ public abstract class EmblFlatfileSource extends EbiFileRetrievedProxy
 
       if (al == null)
       {
-        Cache.log.error(
-                "No record found for '" + dbName + ":" + query + "'");
+        Console.error("No record found for '" + dbName + ":" + query + "'");
       }
     }
 
     stopQuery();
     return al;
   }
+
+  @Override
+  public boolean isDnaCoding()
+  {
+    return true;
+  }
 }