X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2Fpacked%2FParsePackedSet.java;h=ef231e5a4c0584e9b5bddd7b251a58c599ad30c8;hb=eb3e681d6e82ccdd5d312d1981dfb306e7f479f0;hp=97802f3ae311bc1ed0b81cbfe35fbf901d8aa9cb;hpb=20c600dc8c628f5a82cc32b1fe026291756f1d8e;p=jalview.git diff --git a/src/jalview/io/packed/ParsePackedSet.java b/src/jalview/io/packed/ParsePackedSet.java index 97802f3..ef231e5 100644 --- a/src/jalview/io/packed/ParsePackedSet.java +++ b/src/jalview/io/packed/ParsePackedSet.java @@ -1,15 +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 . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.io.packed; +import java.util.Locale; + +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; 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; public class ParsePackedSet @@ -29,7 +54,7 @@ public class ParsePackedSet public Object[] getAlignment(JalviewDataset context, Iterable files) throws Exception { - List rslt = new ArrayList(); + List rslt = new ArrayList<>(); if (context == null) { context = new JalviewDataset(); @@ -42,10 +67,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; @@ -54,32 +79,24 @@ public class ParsePackedSet if (fmt != null) { - if (!FormatAdapter.isValidIOFormat(fmt, false)) + // parse the alignment + AlignmentI al = null; + try + { + al = new FormatAdapter().readFromFile(src, fmt); + } catch (Exception e) { - errmsg = fmt; - exerror = null; + 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; } } } @@ -102,8 +119,16 @@ public class ParsePackedSet { br = new BufferedReader(src.getReader()); } - context.updateSetModified(new jalview.io.AnnotationFile() - .parseAnnotationFrom(context.getLastAlignment(), br)); + // TODO: add columnSelection to context + if (new jalview.io.AnnotationFile().parseAnnotationFrom( + context.getLastAlignment(), null, br)) + { + context.updateSetModified(true); + } + else + { + errmsg = "Annotation file contained no data."; + } } catch (Exception e) { @@ -128,13 +153,14 @@ public class ParsePackedSet // if not, create one. if (context.featureColours == null) { - context.featureColours = new Hashtable(); + context.featureColours = new HashMap<>(); } try { jalview.io.FeaturesFile ff = new jalview.io.FeaturesFile(src); - context.updateSetModified(ff.parse(context.getLastAlignment(), - context.featureColours, false, context.relaxedIdMatching)); + context.updateSetModified(ff.parse(context.getLastAlignment(), + context.featureColours, false, + context.relaxedIdMatching)); } catch (Exception e) { errmsg = ("Failed to parse the Features file associated with the alignment."); @@ -166,7 +192,24 @@ public class ParsePackedSet } } - + if (exerror != null) + { + if (errmsg != null && errmsg.length() > 0) + { + throw new IOException(errmsg, exerror); + } + else + { + throw new IOException(errmsg, exerror); + } + } + else + { + if (errmsg != null && errmsg.length() > 0) + { + throw new IOException(errmsg); + } + } } if (deuniquify) { @@ -182,18 +225,19 @@ public class ParsePackedSet * would be created. * * @param args + * @j2sIgnore */ public static void main(String args[]) { // make data providers from the set of keys/files int i = 0; - List dp = new ArrayList(); + List dp = new ArrayList<>(); while ((i + 1) < args.length) { 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; @@ -202,8 +246,9 @@ public class ParsePackedSet fp = new FileParse(file, AppletFormatAdapter.checkProtocol(file)); } catch (Exception e) { - System.err.println("Couldn't handle datasource of type " + jtype - + " using URI " + file); + jalview.bin.Console + .errPrintln("Couldn't handle datasource of type " + jtype + + " using URI " + file); e.printStackTrace(); return; } @@ -211,8 +256,8 @@ public class ParsePackedSet } else { - System.out.println("Couldn't parse source type token '" - + type.toUpperCase() + "'"); + jalview.bin.Console.outPrintln("Couldn't parse source type token '" + + type.toUpperCase(Locale.ROOT) + "'"); } } if (i < args.length) @@ -225,17 +270,17 @@ public class ParsePackedSet System.out.print("\n"); } - System.out.println("Now trying to parse set:"); + jalview.bin.Console.outPrintln("Now trying to parse set:"); JalviewDataset context; Object[] newdm; 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"); + jalview.bin.Console.outPrintln("Test failed for these arguments.\n"); e.printStackTrace(System.out); return; } @@ -243,7 +288,8 @@ public class ParsePackedSet { for (Object o : newdm) { - System.out.println("Will need to create an " + o.getClass()); + jalview.bin.Console + .outPrintln("Will need to create an " + o.getClass()); } // now test uniquify/deuniquify stuff @@ -251,10 +297,13 @@ public class ParsePackedSet // to buffers. // import with deuniquify info, and compare results to input. - } else { + } + else + { if (context.getLastAlignmentSet().isModified()) { - System.err.println("Initial alignment set was modified and any associated views should be updated."); + jalview.bin.Console.errPrintln( + "Initial alignment set was modified and any associated views should be updated."); } } }