JAL-3691 toUpperCase(Locale.ROOT) for all standard file format operations
[jalview.git] / src / jalview / io / packed / ParsePackedSet.java
index 61a6759..91575bf 100644 (file)
@@ -1,24 +1,29 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
- * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
+ * 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.io.packed;
 
+import jalview.api.FeatureColourI;
 import jalview.datamodel.AlignmentI;
 import jalview.io.AppletFormatAdapter;
+import jalview.io.FileFormatI;
 import jalview.io.FileParse;
 import jalview.io.FormatAdapter;
 import jalview.io.IdentifyFile;
@@ -27,8 +32,9 @@ import jalview.io.packed.DataProvider.JvDataType;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Hashtable;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Locale;
 
 public class ParsePackedSet
 {
@@ -60,10 +66,10 @@ public class ParsePackedSet
       FileParse src = dta.getDataSource();
       if (dta.getType().equals(DataProvider.JvDataType.ALIGNMENT))
       {
-        String fmt = null;
+        FileFormatI fmt = null;
         try
         {
-          fmt = new IdentifyFile().Identify(src, false);
+          fmt = new IdentifyFile().identify(src, false);
         } catch (Exception ex)
         {
           exerror = ex;
@@ -72,32 +78,24 @@ public class ParsePackedSet
 
         if (fmt != null)
         {
-          if (!FormatAdapter.isValidIOFormat(fmt, false))
+          // parse the alignment
+          AlignmentI al = null;
+          try
           {
-            errmsg = fmt;
-            exerror = null;
+            al = new FormatAdapter().readFromFile(src, fmt);
+          } catch (Exception e)
+          {
+            errmsg = "Failed to parse alignment from result set";
+            exerror = e;
           }
-          else
+          if (al != null)
           {
-            // parse the alignment
-            AlignmentI al = null;
-            try
-            {
-              al = new FormatAdapter().readFromFile(src, fmt);
-            } catch (Exception e)
-            {
-              errmsg = "Failed to parse alignment from result set";
-              exerror = e;
-            }
-            if (al != null)
-            {
-              // deuniquify and construct/merge additional dataset entries if
-              // necessary.
-              context.addAlignment(al);
-              context.updateSetModified(true);
-              rslt.add(al);
-              deuniquify = true;
-            }
+            // deuniquify and construct/merge additional dataset entries if
+            // necessary.
+            context.addAlignment(al);
+            context.updateSetModified(true);
+            rslt.add(al);
+            deuniquify = true;
           }
         }
       }
@@ -120,8 +118,9 @@ public class ParsePackedSet
           {
             br = new BufferedReader(src.getReader());
           }
+          // TODO: add columnSelection to context
           if (new jalview.io.AnnotationFile().parseAnnotationFrom(
-                  context.getLastAlignment(), br))
+                  context.getLastAlignment(), null, br))
           {
             context.updateSetModified(true);
           }
@@ -153,13 +152,14 @@ public class ParsePackedSet
         // if not, create one.
         if (context.featureColours == null)
         {
-          context.featureColours = new Hashtable();
+          context.featureColours = new HashMap<String, FeatureColourI>();
         }
         try
         {
           jalview.io.FeaturesFile ff = new jalview.io.FeaturesFile(src);
           context.updateSetModified(ff.parse(context.getLastAlignment(),
-                  context.featureColours, false, context.relaxedIdMatching));
+                  context.featureColours, false,
+                  context.relaxedIdMatching));
         } catch (Exception e)
         {
           errmsg = ("Failed to parse the Features file associated with the alignment.");
@@ -234,8 +234,8 @@ public class ParsePackedSet
     {
       String type = args[i++];
       final String file = args[i++];
-      final JvDataType jtype = DataProvider.JvDataType.valueOf(type
-              .toUpperCase());
+      final JvDataType jtype = DataProvider.JvDataType
+              .valueOf(type.toUpperCase(Locale.ROOT));
       if (jtype != null)
       {
         final FileParse fp;
@@ -254,7 +254,7 @@ public class ParsePackedSet
       else
       {
         System.out.println("Couldn't parse source type token '"
-                + type.toUpperCase() + "'");
+                + type.toUpperCase(Locale.ROOT) + "'");
       }
     }
     if (i < args.length)
@@ -273,8 +273,8 @@ public class ParsePackedSet
     ParsePackedSet pps;
     try
     {
-      newdm = (pps = new ParsePackedSet()).getAlignment(
-              context = new JalviewDataset(), dp);
+      newdm = (pps = new ParsePackedSet())
+              .getAlignment(context = new JalviewDataset(), dp);
     } catch (Exception e)
     {
       System.out.println("Test failed for these arguments.\n");
@@ -298,8 +298,8 @@ public class ParsePackedSet
     {
       if (context.getLastAlignmentSet().isModified())
       {
-        System.err
-                .println("Initial alignment set was modified and any associated views should be updated.");
+        System.err.println(
+                "Initial alignment set was modified and any associated views should be updated.");
       }
     }
   }