JAL-3013 resolve symlink to hmmer binaries folder
[jalview.git] / src / jalview / ws / dbsources / das / datamodel / DasSequenceSource.java
index 980dc81..84f6d4d 100644 (file)
@@ -1,23 +1,36 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.1)
- * Copyright (C) 2014 The Jalview Authors
+ * 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.
+ * 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/>.
+ * 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.das.datamodel;
 
+import jalview.bin.Cache;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceI;
+import jalview.util.MessageManager;
+import jalview.ws.dbsources.das.api.jalviewSourceI;
+import jalview.ws.seqfetcher.DbSourceProxy;
+import jalview.ws.seqfetcher.DbSourceProxyImpl;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -37,15 +50,6 @@ import org.biodas.jdas.schema.sources.VERSION;
 
 import com.stevesoft.pat.Regex;
 
-import jalview.ws.dbsources.das.api.jalviewSourceI;
-import jalview.ws.seqfetcher.*;
-import jalview.bin.Cache;
-import jalview.datamodel.Alignment;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.DBRefEntry;
-import jalview.datamodel.Sequence;
-import jalview.datamodel.SequenceI;
-
 /**
  * an instance of this class is created for each unique DAS Sequence source (ie
  * one capable of handling the 'sequence' for a particular MapMaster)
@@ -53,8 +57,8 @@ import jalview.datamodel.SequenceI;
  * @author JimP
  * 
  */
-public class DasSequenceSource extends DbSourceProxyImpl implements
-        DbSourceProxy
+public class DasSequenceSource extends DbSourceProxyImpl
+        implements DbSourceProxy
 {
   private jalviewSourceI jsrc;
 
@@ -71,9 +75,10 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
   protected MultipleConnectionPropertyProviderI connprops = null;
 
   /**
-   * DAS sources are tier 1 - if we have a direct DB connection then we should prefer it
+   * DAS sources are tier 1 - if we have a direct DB connection then we should
+   * prefer it
    */
-  private int tier=1;
+  private int tier = 1;
 
   /**
    * create a new DbSource proxy for a DAS 1 source
@@ -97,10 +102,12 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
     if (!(jsrc = new JalviewSource(source, connprops, false))
             .isSequenceSource())
     {
-      throw new Exception("Source " + source.getTitle()
-              + " does not support the sequence command.");
+      throw new Exception(MessageManager.formatMessage(
+              "exception.das_source_doesnt_support_sequence_command",
+              new String[]
+              { source.getTitle() }));
     }
-    this.tier = 1+((jsrc.isLocal() || jsrc.isReferenceSource()) ? 0 : 1);
+    this.tier = 1 + ((jsrc.isLocal() || jsrc.isReferenceSource()) ? 0 : 1);
     this.source = source;
     this.dbname = dbname;
     this.dbrefname = dbrefname.toUpperCase();
@@ -141,7 +148,8 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
   public AlignmentI getSequenceRecords(String queries) throws Exception
   {
     StringTokenizer st = new StringTokenizer(queries, "\t");
-    List<String> toks = new ArrayList<String>(), src = new ArrayList<String>(), acIds = new ArrayList<String>();
+    List<String> toks = new ArrayList<String>(),
+            src = new ArrayList<String>(), acIds = new ArrayList<String>();
     while (st.hasMoreTokens())
     {
       String t;
@@ -162,24 +170,21 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
         // slow, fetch one at a time.
         for (String sr : src)
         {
-          System.err
-                  .println("Retrieving IDs individually from das source: "
-                          + sr);
+          System.err.println(
+                  "Retrieving IDs individually from das source: " + sr);
           org.biodas.jdas.client.SequenceClient sq = new SequenceClient(
                   connprops.getConnectionPropertyProviderFor(sr));
           for (String q : toks)
           {
-            List<String> qset = Arrays.asList(new String[]
-            { q });
+            List<String> qset = Arrays.asList(new String[] { q });
             try
             {
               DasSequenceAdapter s = sq.fetchData(sr, qset);
               Map<List<String>, DasSequenceAdapter> dss = resultset.get(sr);
               if (dss == null)
               {
-                resultset
-                        .put(sr,
-                                dss = new HashMap<List<String>, DasSequenceAdapter>());
+                resultset.put(sr,
+                        dss = new HashMap<List<String>, DasSequenceAdapter>());
               }
               dss.put(qset, s);
             } catch (Exception x)
@@ -187,7 +192,8 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
               Map<List<String>, Exception> ers = errors.get(sr);
               if (ers == null)
               {
-                errors.put(sr, ers = new HashMap<List<String>, Exception>());
+                errors.put(sr,
+                        ers = new HashMap<List<String>, Exception>());
               }
               ers.put(qset, x);
             }
@@ -241,8 +247,8 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
 
             if (acIds.indexOf(lbl) == -1)
             {
-              System.err
-                      .println("Warning - received sequence event for strange accession code ("
+              System.err.println(
+                      "Warning - received sequence event for strange accession code ("
                               + lbl + ")");
             }
             else
@@ -251,11 +257,9 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
               {
                 if (e.getContent().length() == 0)
                 {
-                  System.err
-                          .println("Empty sequence returned for accession code ("
-                                  + lbl
-                                  + ") from "
-                                  + resset.getKey()
+                  System.err.println(
+                          "Empty sequence returned for accession code ("
+                                  + lbl + ") from " + resset.getKey()
                                   + " (source is " + getDbName());
                   continue;
                 }
@@ -263,11 +267,11 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
               seqs = new java.util.Vector<SequenceI>();
               // JDAS returns a sequence complete with any newlines and spaces
               // in the XML
-              Sequence sq = new Sequence(lbl, e.getContent().replaceAll(
-                      "\\s+", ""));
+              Sequence sq = new Sequence(lbl,
+                      e.getContent().replaceAll("\\s+", ""));
               sq.setStart(e.getStart().intValue());
-              sq.addDBRef(new DBRefEntry(getDbSource(), getDbVersion()
-                      + ":" + e.getVersion(), lbl));
+              sq.addDBRef(new DBRefEntry(getDbSource(),
+                      getDbVersion() + ":" + e.getVersion(), lbl));
               seqs.addElement(sq);
             }
           }
@@ -303,9 +307,9 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
 
         } catch (Exception x)
         {
-          Cache.log
-                  .error("Couldn't retrieve features for sequence from its source.",
-                          x);
+          Cache.log.error(
+                  "Couldn't retrieve features for sequence from its source.",
+                  x);
         }
       }