X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=bin%2Fjalview%2Fio%2FAppletFormatAdapter.js;h=f4dab9f79dd364538ebf30a59cb7094deb5593fa;hp=681a44d1e03f12823a2e328bd58a8ba02cf14094;hb=8ffd05b3abe52c0b6b79b011c0966361f82d5fe6;hpb=6154cb57a6eac3bb1344b8342495f5bb701ee921 diff --git a/bin/jalview/io/AppletFormatAdapter.js b/bin/jalview/io/AppletFormatAdapter.js index 681a44d..f4dab9f 100644 --- a/bin/jalview/io/AppletFormatAdapter.js +++ b/bin/jalview/io/AppletFormatAdapter.js @@ -1,389 +1,389 @@ -Clazz.declarePackage ("jalview.io"); -Clazz.load (null, "jalview.io.AppletFormatAdapter", ["MCview.PDBfile", "jalview.datamodel.Alignment", "jalview.io.FileParse", "$.IdentifyFile", "jalview.jsdev.GenericFileAdapter", "jalview.util.MessageManager", "java.io.IOException", "java.lang.Exception", "$.StringBuffer"], function () { -c$ = Clazz.decorateAsClass (function () { -this.viewpanel = null; -this.annotFromStructure = false; -this.localSecondaryStruct = false; -this.serviceSecondaryStruct = false; -this.alignFile = null; -this.inFile = null; -this.newline = null; -this.exportSettings = null; -Clazz.instantialize (this, arguments); -}, jalview.io, "AppletFormatAdapter"); -Clazz.prepareFields (c$, function () { -this.newline = System.getProperty ("line.separator"); -}); -Clazz.makeConstructor (c$, -function () { -}); -Clazz.makeConstructor (c$, -function (viewpanel) { -this.viewpanel = viewpanel; -}, "jalview.api.AlignmentViewPanel"); -Clazz.makeConstructor (c$, -function (alignPanel, settings) { -this.viewpanel = alignPanel; -this.exportSettings = settings; -}, "jalview.api.AlignmentViewPanel,jalview.api.AlignExportSettingI"); -c$.prettyPrint = Clazz.defineMethod (c$, "prettyPrint", -function (els) { -var list = new StringBuffer (); -for (var i = 0, iSize = els.length - 1; i < iSize; i++) { -list.append (els[i]); -list.append (", "); -} -list.append (" and " + els[els.length - 1] + "."); -return list.toString (); -}, "~A"); -Clazz.defineMethod (c$, "setNewlineString", -function (nl) { -this.newline = nl; -}, "~S"); -Clazz.defineMethod (c$, "getNewlineString", -function () { -return this.newline; -}); -c$.isValidFormat = Clazz.defineMethod (c$, "isValidFormat", -function (format) { -return jalview.io.AppletFormatAdapter.isValidFormat (format, false); -}, "~S"); -c$.isValidFormat = Clazz.defineMethod (c$, "isValidFormat", -function (format, forwriting) { -var valid = false; -var format_list = (forwriting) ? jalview.io.AppletFormatAdapter.WRITEABLE_FORMATS : jalview.io.AppletFormatAdapter.READABLE_FORMATS; -for (var element, $element = 0, $$element = format_list; $element < $$element.length && ((element = $$element[$element]) || true); $element++) { -if (element.equalsIgnoreCase (format)) { -return true; -}} -return valid; -}, "~S,~B"); -Clazz.defineMethod (c$, "readFile", -function (inFile, type, format) { -this.inFile = inFile; -try { -if (format.equals ("FASTA")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("FastaFile", [inFile, type]); -} else if (format.equals ("MSF")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("MSFfile", [inFile, type]); -} else if (format.equals ("PileUp")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PileUpfile", [inFile, type]); -} else if (format.equals ("CLUSTAL")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("ClustalFile", [inFile, type]); -} else if (format.equals ("BLC")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("BLCFile", [inFile, type]); -} else if (format.equals ("PIR")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PIRFile", [inFile, type]); -} else if (format.equals ("PFAM")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PfamFile", [inFile, type]); -} else if (format.equals ("JnetFile")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("JPredFile", [inFile, type]); -(this.alignFile).removeNonSequences (); -} else if (format.equals ("PDB")) { -this.alignFile = new MCview.PDBfile (this.annotFromStructure, this.localSecondaryStruct, this.serviceSecondaryStruct, inFile, type); -} else if (format.equals ("STH")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("StockholmFile", [inFile, type]); -} else if (format.equals ("SimpleBLAST")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("SimpleBlastFile", [inFile, type]); -} else if (format.equals ("PHYLIP")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PhylipFile", [inFile, type]); -} else if (format.equals ("JSON")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("JSONFile", [inFile, type]); -} else if (format.equals ("HTML")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("HtmlFile", [inFile, type]); -} else if (format.equals ("RNAML")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("RnamlFile", [inFile, type]); -} else if (format.equals ("GFF v2 or v3")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("Gff3File", [inFile, type]); -}return this.buildAlignmentFrom (this.alignFile); -} catch (e) { -if (Clazz.exceptionOf (e, Exception)) { -e.printStackTrace (); -System.err.println ("Failed to read alignment using the '" + format + "' reader.\n" + e); -if (e.getMessage () != null && e.getMessage ().startsWith (jalview.io.AppletFormatAdapter.INVALID_CHARACTERS)) { -throw new java.io.IOException (e.getMessage ()); -}if (type.equalsIgnoreCase ("Paste")) { -try { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("FastaFile", [">UNKNOWN\n" + inFile, "Paste"]); -return this.buildAlignmentFrom (this.alignFile); -} catch (ex) { -if (Clazz.exceptionOf (ex, Exception)) { -if (ex.toString ().startsWith (jalview.io.AppletFormatAdapter.INVALID_CHARACTERS)) { -throw new java.io.IOException (e.getMessage ()); -}ex.printStackTrace (); -} else { -throw ex; -} -} -}throw new java.io.IOException (jalview.io.AppletFormatAdapter.SUPPORTED_FORMATS); -} else { -throw e; -} -} -}, "~S,~S,~S"); -Clazz.defineMethod (c$, "readFromFile", -function (source, format) { -this.inFile = source.getInFile (); -var type = source.type; -try { -if (format.equals ("FASTA")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("FastaFile", [source]); -} else if (format.equals ("MSF")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("MSFfile", [source]); -} else if (format.equals ("PileUp")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PileUpfile", [source]); -} else if (format.equals ("CLUSTAL")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("ClustalFile", [source]); -} else if (format.equals ("BLC")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("BLCFile", [source]); -} else if (format.equals ("PIR")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PIRFile", [source]); -} else if (format.equals ("PFAM")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PfamFile", [source]); -} else if (format.equals ("JnetFile")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("JPredFile", [source]); -(this.alignFile).removeNonSequences (); -} else if (format.equals ("PDB")) { -this.alignFile = new MCview.PDBfile (this.annotFromStructure, this.localSecondaryStruct, this.serviceSecondaryStruct, source); -} else if (format.equals ("STH")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("StockholmFile", [source]); -} else if (format.equals ("RNAML")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("RnamlFile", [source]); -} else if (format.equals ("SimpleBLAST")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("SimpleBlastFile", [source]); -} else if (format.equals ("PHYLIP")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PhylipFile", [source]); -} else if (format.equals ("GFF v2 or v3")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("Gff3File", [this.inFile, type]); -} else if (format.equals ("JSON")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("JSONFile", [source]); -} else if (format.equals ("HTML")) { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("HtmlFile", [source]); -}return this.buildAlignmentFrom (this.alignFile); -} catch (e) { -if (Clazz.exceptionOf (e, Exception)) { -e.printStackTrace (); -System.err.println ("Failed to read alignment using the '" + format + "' reader.\n" + e); -if (e.getMessage () != null && e.getMessage ().startsWith (jalview.io.AppletFormatAdapter.INVALID_CHARACTERS)) { -throw new java.io.IOException (e.getMessage ()); -}if (type.equalsIgnoreCase ("Paste")) { -try { -this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("FastaFile", [">UNKNOWN\n" + this.inFile, "Paste"]); -return this.buildAlignmentFrom (this.alignFile); -} catch (ex) { -if (Clazz.exceptionOf (ex, Exception)) { -if (ex.toString ().startsWith (jalview.io.AppletFormatAdapter.INVALID_CHARACTERS)) { -throw new java.io.IOException (e.getMessage ()); -}ex.printStackTrace (); -} else { -throw ex; -} -} -}throw new java.io.IOException (jalview.io.AppletFormatAdapter.SUPPORTED_FORMATS); -} else { -throw e; -} -} -}, "jalview.io.FileParse,~S"); -Clazz.defineMethod (c$, "buildAlignmentFrom", -($fz = function (alignFile2) { -var al = new jalview.datamodel.Alignment (this.alignFile.getSeqsAsArray ()); -this.alignFile.addAnnotations (al); -this.alignFile.addGroups (al); -return al; -}, $fz.isPrivate = true, $fz), "jalview.io.AlignFile"); -Clazz.defineMethod (c$, "formatSequences", -function (format, jvsuffix, ap, selectedOnly) { -var selvew = ap.getAlignViewport ().getAlignmentView (selectedOnly, false); -var aselview = selvew.getVisibleAlignment (ap.getAlignViewport ().getGapCharacter ()); -var ala = (ap.getAlignViewport ().getVisibleAlignmentAnnotation (selectedOnly)); -if (ala != null) { -for (var aa, $aa = ala.iterator (); $aa.hasNext () && ((aa = $aa.next ()) || true);) { -aselview.addAnnotation (aa); -} -}this.viewpanel = ap; -return this.formatSequences (format, aselview, jvsuffix); -}, "~S,~B,jalview.api.AlignmentViewPanel,~B"); -Clazz.defineMethod (c$, "formatSequences", -function (format, alignment, jvsuffix) { -try { -var afile = null; -if (format.equalsIgnoreCase ("FASTA")) { -afile = jalview.jsdev.GenericFileAdapter.getFile ("FastaFile", []); -} else if (format.equalsIgnoreCase ("MSF")) { -afile = jalview.jsdev.GenericFileAdapter.getFile ("MSFfile", []); -} else if (format.equalsIgnoreCase ("PileUp")) { -afile = jalview.jsdev.GenericFileAdapter.getFile ("PileUpfile", []); -} else if (format.equalsIgnoreCase ("CLUSTAL")) { -afile = jalview.jsdev.GenericFileAdapter.getFile ("ClustalFile", []); -} else if (format.equalsIgnoreCase ("BLC")) { -afile = jalview.jsdev.GenericFileAdapter.getFile ("BLCFile", []); -} else if (format.equalsIgnoreCase ("PIR")) { -afile = jalview.jsdev.GenericFileAdapter.getFile ("PIRFile", []); -} else if (format.equalsIgnoreCase ("PFAM")) { -afile = jalview.jsdev.GenericFileAdapter.getFile ("PfamFile", []); -} else if (format.equalsIgnoreCase ("STH")) { -afile = jalview.jsdev.GenericFileAdapter.getFile ("StockholmFile", [alignment]); -} else if (format.equalsIgnoreCase ("AMSA")) { -afile = jalview.jsdev.GenericFileAdapter.getFile ("AMSAFile", [alignment]); -} else if (format.equalsIgnoreCase ("PHYLIP")) { -afile = jalview.jsdev.GenericFileAdapter.getFile ("PhylipFile", []); -} else if (format.equalsIgnoreCase ("JSON")) { -afile = jalview.jsdev.GenericFileAdapter.getFile ("JSONFile", []); -} else if (format.equalsIgnoreCase ("RNAML")) { -afile = jalview.jsdev.GenericFileAdapter.getFile ("RnamlFile", []); -} else { -throw new Exception (jalview.util.MessageManager.getString ("error.implementation_error_unknown_file_format_string")); -}afile.setNewlineString (this.newline); -afile.addJVSuffix (jvsuffix); -afile.setExportSettings (this.exportSettings); -afile.configureForView (this.viewpanel); -if (this.viewpanel == null || this.viewpanel.getAlignment () == null || this.viewpanel.getAlignment () !== alignment) { -afile.setSeqs (alignment.getSequencesArray ()); -} else { -afile.setSeqs (this.viewpanel.getAlignment ().getSequencesArray ()); -}var afileresp = afile.print (); -if (afile.hasWarningMessage ()) { -System.err.println ("Warning raised when writing as " + format + " : " + afile.getWarningMessage ()); -}return afileresp; -} catch (e) { -if (Clazz.exceptionOf (e, Exception)) { -System.err.println ("Failed to write alignment as a '" + format + "' file\n"); -e.printStackTrace (); -} else { -throw e; -} -} -return null; -}, "~S,jalview.datamodel.AlignmentI,~B"); -c$.checkProtocol = Clazz.defineMethod (c$, "checkProtocol", -function (file) { -var protocol = jalview.io.AppletFormatAdapter.FILE; -var ft = file.toLowerCase ().trim (); -if (ft.indexOf ("http:") == 0 || ft.indexOf ("https:") == 0 || ft.indexOf ("file:") == 0) { -protocol = jalview.io.AppletFormatAdapter.URL; -}return protocol; -}, "~S"); -c$.resolveProtocol = Clazz.defineMethod (c$, "resolveProtocol", -function (file, format) { -return jalview.io.AppletFormatAdapter.resolveProtocol (file, format, false); -}, "~S,~S"); -c$.resolveProtocol = Clazz.defineMethod (c$, "resolveProtocol", -function (file, format, debug) { -var protocol = null; -if (debug) { -System.out.println ("resolving datasource started with:\n>>file\n" + file + ">>endfile"); -}try { -var rtn = false; -var is = System.getSecurityManager ().getClass ().getResourceAsStream ("/" + file); -if (is != null) { -rtn = true; -is.close (); -}if (debug) { -System.err.println ("Resource '" + file + "' was " + (rtn ? "" : "not") + " located by classloader."); -};if (rtn) { -protocol = jalview.io.AppletFormatAdapter.CLASSLOADER; -}} catch (ex) { -if (Clazz.exceptionOf (ex, Exception)) { -System.err.println ("Exception checking resources: " + file + " " + ex); -} else { -throw ex; -} -} -if (file.indexOf ("://") > -1) { -protocol = jalview.io.AppletFormatAdapter.URL; -} else { -protocol = jalview.io.AppletFormatAdapter.FILE; -}var fp = null; -try { -if (debug) { -System.out.println ("Trying to get contents of resource as " + protocol + ":"); -}fp = new jalview.io.FileParse (file, protocol); -if (!fp.isValid ()) { -fp = null; -} else { -if (debug) { -System.out.println ("Successful."); -}}} catch (e) { -if (Clazz.exceptionOf (e, Exception)) { -if (debug) { -System.err.println ("Exception when accessing content: " + e); -}fp = null; -} else { -throw e; -} -} -if (fp == null) { -if (debug) { -System.out.println ("Accessing as paste."); -}protocol = jalview.io.AppletFormatAdapter.PASTE; -fp = null; -try { -fp = new jalview.io.FileParse (file, protocol); -if (!fp.isValid ()) { -fp = null; -}} catch (e) { -if (Clazz.exceptionOf (e, Exception)) { -System.err.println ("Failed to access content as paste!"); -e.printStackTrace (); -fp = null; -} else { -throw e; -} -} -}if (fp == null) { -return null; -}if (format == null || format.length == 0) { -return protocol; -} else { -try { -var idformat = new jalview.io.IdentifyFile ().Identify (file, protocol); -if (idformat == null) { -if (debug) { -System.out.println ("Format not identified. Inaccessible file."); -}return null; -}if (debug) { -System.out.println ("Format identified as " + idformat + "and expected as " + format); -}if (idformat.equals (format)) { -if (debug) { -System.out.println ("Protocol identified as " + protocol); -}return protocol; -} else { -if (debug) { -System.out.println ("File deemed not accessible via " + protocol); -}fp.close (); -return null; -}} catch (e) { -if (Clazz.exceptionOf (e, Exception)) { -if (debug) { -System.err.println ("File deemed not accessible via " + protocol); -e.printStackTrace (); -};} else { -throw e; -} -} -}return null; -}, "~S,~S,~B"); -Clazz.defineMethod (c$, "getAlignFile", -function () { -return this.alignFile; -}); -Clazz.defineMethod (c$, "setAlignFile", -function (alignFile) { -this.alignFile = alignFile; -}, "jalview.io.AlignFile"); -Clazz.defineStatics (c$, -"FILE", "File", -"URL", "URL", -"PASTE", "Paste", -"CLASSLOADER", "ClassLoader"); -c$.READABLE_FORMATS = c$.prototype.READABLE_FORMATS = Clazz.newArray (-1, ["BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "STH", "PDB", "JnetFile", "RNAML", "PHYLIP", "JSON", "GFF v2 or v3", "HTML"]); -c$.READABLE_EXTENSIONS = c$.prototype.READABLE_EXTENSIONS = Clazz.newArray (-1, ["fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa", "sto,stk", "xml,rnaml", "phy", "json", ".gff2,gff3", "jar,jvp", "html"]); -c$.READABLE_FNAMES = c$.prototype.READABLE_FNAMES = Clazz.newArray (-1, ["Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Stockholm", "RNAML", "PHYLIP", "JSON", "GFF v2 or v3", "Jalview", "HTML"]); -c$.WRITEABLE_FORMATS = c$.prototype.WRITEABLE_FORMATS = Clazz.newArray (-1, ["BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "AMSA", "STH", "PHYLIP", "JSON"]); -c$.WRITABLE_EXTENSIONS = c$.prototype.WRITABLE_EXTENSIONS = Clazz.newArray (-1, ["fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa", "sto,stk", "phy", "json", "jvp"]); -c$.WRITABLE_FNAMES = c$.prototype.WRITABLE_FNAMES = Clazz.newArray (-1, ["Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "STH", "PHYLIP", "JSON", "Jalview"]); -Clazz.defineStatics (c$, -"INVALID_CHARACTERS", "Contains invalid characters"); -c$.SUPPORTED_FORMATS = c$.prototype.SUPPORTED_FORMATS = "Formats currently supported are\n" + jalview.io.AppletFormatAdapter.prettyPrint (jalview.io.AppletFormatAdapter.READABLE_FORMATS); -}); +Clazz.declarePackage ("jalview.io"); +Clazz.load (null, "jalview.io.AppletFormatAdapter", ["MCview.PDBfile", "jalview.datamodel.Alignment", "jalview.io.FileParse", "$.IdentifyFile", "jalview.jsdev.GenericFileAdapter", "jalview.util.MessageManager", "java.io.IOException", "java.lang.Exception", "$.StringBuffer"], function () { +c$ = Clazz.decorateAsClass (function () { +this.viewpanel = null; +this.annotFromStructure = false; +this.localSecondaryStruct = false; +this.serviceSecondaryStruct = false; +this.alignFile = null; +this.inFile = null; +this.newline = null; +this.exportSettings = null; +Clazz.instantialize (this, arguments); +}, jalview.io, "AppletFormatAdapter"); +Clazz.prepareFields (c$, function () { +this.newline = System.getProperty ("line.separator"); +}); +Clazz.makeConstructor (c$, +function () { +}); +Clazz.makeConstructor (c$, +function (viewpanel) { +this.viewpanel = viewpanel; +}, "jalview.api.AlignmentViewPanel"); +Clazz.makeConstructor (c$, +function (alignPanel, settings) { +this.viewpanel = alignPanel; +this.exportSettings = settings; +}, "jalview.api.AlignmentViewPanel,jalview.api.AlignExportSettingI"); +c$.prettyPrint = Clazz.defineMethod (c$, "prettyPrint", +function (els) { +var list = new StringBuffer (); +for (var i = 0, iSize = els.length - 1; i < iSize; i++) { +list.append (els[i]); +list.append (", "); +} +list.append (" and " + els[els.length - 1] + "."); +return list.toString (); +}, "~A"); +Clazz.defineMethod (c$, "setNewlineString", +function (nl) { +this.newline = nl; +}, "~S"); +Clazz.defineMethod (c$, "getNewlineString", +function () { +return this.newline; +}); +c$.isValidFormat = Clazz.defineMethod (c$, "isValidFormat", +function (format) { +return jalview.io.AppletFormatAdapter.isValidFormat (format, false); +}, "~S"); +c$.isValidFormat = Clazz.defineMethod (c$, "isValidFormat", +function (format, forwriting) { +var valid = false; +var format_list = (forwriting) ? jalview.io.AppletFormatAdapter.WRITEABLE_FORMATS : jalview.io.AppletFormatAdapter.READABLE_FORMATS; +for (var element, $element = 0, $$element = format_list; $element < $$element.length && ((element = $$element[$element]) || true); $element++) { +if (element.equalsIgnoreCase (format)) { +return true; +}} +return valid; +}, "~S,~B"); +Clazz.defineMethod (c$, "readFile", +function (inFile, type, format) { +this.inFile = inFile; +try { +if (format.equals ("FASTA")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("FastaFile", [inFile, type]); +} else if (format.equals ("MSF")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("MSFfile", [inFile, type]); +} else if (format.equals ("PileUp")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PileUpfile", [inFile, type]); +} else if (format.equals ("CLUSTAL")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("ClustalFile", [inFile, type]); +} else if (format.equals ("BLC")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("BLCFile", [inFile, type]); +} else if (format.equals ("PIR")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PIRFile", [inFile, type]); +} else if (format.equals ("PFAM")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PfamFile", [inFile, type]); +} else if (format.equals ("JnetFile")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("JPredFile", [inFile, type]); +(this.alignFile).removeNonSequences (); +} else if (format.equals ("PDB")) { +this.alignFile = new MCview.PDBfile (this.annotFromStructure, this.localSecondaryStruct, this.serviceSecondaryStruct, inFile, type); +} else if (format.equals ("STH")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("StockholmFile", [inFile, type]); +} else if (format.equals ("SimpleBLAST")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("SimpleBlastFile", [inFile, type]); +} else if (format.equals ("PHYLIP")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PhylipFile", [inFile, type]); +} else if (format.equals ("JSON")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("JSONFile", [inFile, type]); +} else if (format.equals ("HTML")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("HtmlFile", [inFile, type]); +} else if (format.equals ("RNAML")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("RnamlFile", [inFile, type]); +} else if (format.equals ("GFF v2 or v3")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("Gff3File", [inFile, type]); +}return this.buildAlignmentFrom (this.alignFile); +} catch (e) { +if (Clazz.exceptionOf (e, Exception)) { +e.printStackTrace (); +System.err.println ("Failed to read alignment using the '" + format + "' reader.\n" + e); +if (e.getMessage () != null && e.getMessage ().startsWith (jalview.io.AppletFormatAdapter.INVALID_CHARACTERS)) { +throw new java.io.IOException (e.getMessage ()); +}if (type.equalsIgnoreCase ("Paste")) { +try { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("FastaFile", [">UNKNOWN\n" + inFile, "Paste"]); +return this.buildAlignmentFrom (this.alignFile); +} catch (ex) { +if (Clazz.exceptionOf (ex, Exception)) { +if (ex.toString ().startsWith (jalview.io.AppletFormatAdapter.INVALID_CHARACTERS)) { +throw new java.io.IOException (e.getMessage ()); +}ex.printStackTrace (); +} else { +throw ex; +} +} +}throw new java.io.IOException (jalview.io.AppletFormatAdapter.SUPPORTED_FORMATS); +} else { +throw e; +} +} +}, "~S,~S,~S"); +Clazz.defineMethod (c$, "readFromFile", +function (source, format) { +this.inFile = source.getInFile (); +var type = source.type; +try { +if (format.equals ("FASTA")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("FastaFile", [source]); +} else if (format.equals ("MSF")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("MSFfile", [source]); +} else if (format.equals ("PileUp")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PileUpfile", [source]); +} else if (format.equals ("CLUSTAL")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("ClustalFile", [source]); +} else if (format.equals ("BLC")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("BLCFile", [source]); +} else if (format.equals ("PIR")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PIRFile", [source]); +} else if (format.equals ("PFAM")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PfamFile", [source]); +} else if (format.equals ("JnetFile")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("JPredFile", [source]); +(this.alignFile).removeNonSequences (); +} else if (format.equals ("PDB")) { +this.alignFile = new MCview.PDBfile (this.annotFromStructure, this.localSecondaryStruct, this.serviceSecondaryStruct, source); +} else if (format.equals ("STH")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("StockholmFile", [source]); +} else if (format.equals ("RNAML")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("RnamlFile", [source]); +} else if (format.equals ("SimpleBLAST")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("SimpleBlastFile", [source]); +} else if (format.equals ("PHYLIP")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("PhylipFile", [source]); +} else if (format.equals ("GFF v2 or v3")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("Gff3File", [this.inFile, type]); +} else if (format.equals ("JSON")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("JSONFile", [source]); +} else if (format.equals ("HTML")) { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("HtmlFile", [source]); +}return this.buildAlignmentFrom (this.alignFile); +} catch (e) { +if (Clazz.exceptionOf (e, Exception)) { +e.printStackTrace (); +System.err.println ("Failed to read alignment using the '" + format + "' reader.\n" + e); +if (e.getMessage () != null && e.getMessage ().startsWith (jalview.io.AppletFormatAdapter.INVALID_CHARACTERS)) { +throw new java.io.IOException (e.getMessage ()); +}if (type.equalsIgnoreCase ("Paste")) { +try { +this.alignFile = jalview.jsdev.GenericFileAdapter.getFile ("FastaFile", [">UNKNOWN\n" + this.inFile, "Paste"]); +return this.buildAlignmentFrom (this.alignFile); +} catch (ex) { +if (Clazz.exceptionOf (ex, Exception)) { +if (ex.toString ().startsWith (jalview.io.AppletFormatAdapter.INVALID_CHARACTERS)) { +throw new java.io.IOException (e.getMessage ()); +}ex.printStackTrace (); +} else { +throw ex; +} +} +}throw new java.io.IOException (jalview.io.AppletFormatAdapter.SUPPORTED_FORMATS); +} else { +throw e; +} +} +}, "jalview.io.FileParse,~S"); +Clazz.defineMethod (c$, "buildAlignmentFrom", +($fz = function (alignFile2) { +var al = new jalview.datamodel.Alignment (this.alignFile.getSeqsAsArray ()); +this.alignFile.addAnnotations (al); +this.alignFile.addGroups (al); +return al; +}, $fz.isPrivate = true, $fz), "jalview.io.AlignFile"); +Clazz.defineMethod (c$, "formatSequences", +function (format, jvsuffix, ap, selectedOnly) { +var selvew = ap.getAlignViewport ().getAlignmentView (selectedOnly, false); +var aselview = selvew.getVisibleAlignment (ap.getAlignViewport ().getGapCharacter ()); +var ala = (ap.getAlignViewport ().getVisibleAlignmentAnnotation (selectedOnly)); +if (ala != null) { +for (var aa, $aa = ala.iterator (); $aa.hasNext () && ((aa = $aa.next ()) || true);) { +aselview.addAnnotation (aa); +} +}this.viewpanel = ap; +return this.formatSequences (format, aselview, jvsuffix); +}, "~S,~B,jalview.api.AlignmentViewPanel,~B"); +Clazz.defineMethod (c$, "formatSequences", +function (format, alignment, jvsuffix) { +try { +var afile = null; +if (format.equalsIgnoreCase ("FASTA")) { +afile = jalview.jsdev.GenericFileAdapter.getFile ("FastaFile", []); +} else if (format.equalsIgnoreCase ("MSF")) { +afile = jalview.jsdev.GenericFileAdapter.getFile ("MSFfile", []); +} else if (format.equalsIgnoreCase ("PileUp")) { +afile = jalview.jsdev.GenericFileAdapter.getFile ("PileUpfile", []); +} else if (format.equalsIgnoreCase ("CLUSTAL")) { +afile = jalview.jsdev.GenericFileAdapter.getFile ("ClustalFile", []); +} else if (format.equalsIgnoreCase ("BLC")) { +afile = jalview.jsdev.GenericFileAdapter.getFile ("BLCFile", []); +} else if (format.equalsIgnoreCase ("PIR")) { +afile = jalview.jsdev.GenericFileAdapter.getFile ("PIRFile", []); +} else if (format.equalsIgnoreCase ("PFAM")) { +afile = jalview.jsdev.GenericFileAdapter.getFile ("PfamFile", []); +} else if (format.equalsIgnoreCase ("STH")) { +afile = jalview.jsdev.GenericFileAdapter.getFile ("StockholmFile", [alignment]); +} else if (format.equalsIgnoreCase ("AMSA")) { +afile = jalview.jsdev.GenericFileAdapter.getFile ("AMSAFile", [alignment]); +} else if (format.equalsIgnoreCase ("PHYLIP")) { +afile = jalview.jsdev.GenericFileAdapter.getFile ("PhylipFile", []); +} else if (format.equalsIgnoreCase ("JSON")) { +afile = jalview.jsdev.GenericFileAdapter.getFile ("JSONFile", []); +} else if (format.equalsIgnoreCase ("RNAML")) { +afile = jalview.jsdev.GenericFileAdapter.getFile ("RnamlFile", []); +} else { +throw new Exception (jalview.util.MessageManager.getString ("error.implementation_error_unknown_file_format_string")); +}afile.setNewlineString (this.newline); +afile.addJVSuffix (jvsuffix); +afile.setExportSettings (this.exportSettings); +afile.configureForView (this.viewpanel); +if (this.viewpanel == null || this.viewpanel.getAlignment () == null || this.viewpanel.getAlignment () !== alignment) { +afile.setSeqs (alignment.getSequencesArray ()); +} else { +afile.setSeqs (this.viewpanel.getAlignment ().getSequencesArray ()); +}var afileresp = afile.print (); +if (afile.hasWarningMessage ()) { +System.err.println ("Warning raised when writing as " + format + " : " + afile.getWarningMessage ()); +}return afileresp; +} catch (e) { +if (Clazz.exceptionOf (e, Exception)) { +System.err.println ("Failed to write alignment as a '" + format + "' file\n"); +e.printStackTrace (); +} else { +throw e; +} +} +return null; +}, "~S,jalview.datamodel.AlignmentI,~B"); +c$.checkProtocol = Clazz.defineMethod (c$, "checkProtocol", +function (file) { +var protocol = jalview.io.AppletFormatAdapter.FILE; +var ft = file.toLowerCase ().trim (); +if (ft.indexOf ("http:") == 0 || ft.indexOf ("https:") == 0 || ft.indexOf ("file:") == 0) { +protocol = jalview.io.AppletFormatAdapter.URL; +}return protocol; +}, "~S"); +c$.resolveProtocol = Clazz.defineMethod (c$, "resolveProtocol", +function (file, format) { +return jalview.io.AppletFormatAdapter.resolveProtocol (file, format, false); +}, "~S,~S"); +c$.resolveProtocol = Clazz.defineMethod (c$, "resolveProtocol", +function (file, format, debug) { +var protocol = null; +if (debug) { +System.out.println ("resolving datasource started with:\n>>file\n" + file + ">>endfile"); +}try { +var rtn = false; +var is = System.getSecurityManager ().getClass ().getResourceAsStream ("/" + file); +if (is != null) { +rtn = true; +is.close (); +}if (debug) { +System.err.println ("Resource '" + file + "' was " + (rtn ? "" : "not") + " located by classloader."); +};if (rtn) { +protocol = jalview.io.AppletFormatAdapter.CLASSLOADER; +}} catch (ex) { +if (Clazz.exceptionOf (ex, Exception)) { +System.err.println ("Exception checking resources: " + file + " " + ex); +} else { +throw ex; +} +} +if (file.indexOf ("://") > -1) { +protocol = jalview.io.AppletFormatAdapter.URL; +} else { +protocol = jalview.io.AppletFormatAdapter.FILE; +}var fp = null; +try { +if (debug) { +System.out.println ("Trying to get contents of resource as " + protocol + ":"); +}fp = new jalview.io.FileParse (file, protocol); +if (!fp.isValid ()) { +fp = null; +} else { +if (debug) { +System.out.println ("Successful."); +}}} catch (e) { +if (Clazz.exceptionOf (e, Exception)) { +if (debug) { +System.err.println ("Exception when accessing content: " + e); +}fp = null; +} else { +throw e; +} +} +if (fp == null) { +if (debug) { +System.out.println ("Accessing as paste."); +}protocol = jalview.io.AppletFormatAdapter.PASTE; +fp = null; +try { +fp = new jalview.io.FileParse (file, protocol); +if (!fp.isValid ()) { +fp = null; +}} catch (e) { +if (Clazz.exceptionOf (e, Exception)) { +System.err.println ("Failed to access content as paste!"); +e.printStackTrace (); +fp = null; +} else { +throw e; +} +} +}if (fp == null) { +return null; +}if (format == null || format.length == 0) { +return protocol; +} else { +try { +var idformat = new jalview.io.IdentifyFile ().Identify (file, protocol); +if (idformat == null) { +if (debug) { +System.out.println ("Format not identified. Inaccessible file."); +}return null; +}if (debug) { +System.out.println ("Format identified as " + idformat + "and expected as " + format); +}if (idformat.equals (format)) { +if (debug) { +System.out.println ("Protocol identified as " + protocol); +}return protocol; +} else { +if (debug) { +System.out.println ("File deemed not accessible via " + protocol); +}fp.close (); +return null; +}} catch (e) { +if (Clazz.exceptionOf (e, Exception)) { +if (debug) { +System.err.println ("File deemed not accessible via " + protocol); +e.printStackTrace (); +};} else { +throw e; +} +} +}return null; +}, "~S,~S,~B"); +Clazz.defineMethod (c$, "getAlignFile", +function () { +return this.alignFile; +}); +Clazz.defineMethod (c$, "setAlignFile", +function (alignFile) { +this.alignFile = alignFile; +}, "jalview.io.AlignFile"); +Clazz.defineStatics (c$, +"FILE", "File", +"URL", "URL", +"PASTE", "Paste", +"CLASSLOADER", "ClassLoader"); +c$.READABLE_FORMATS = c$.prototype.READABLE_FORMATS = Clazz.newArray (-1, ["BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "STH", "PDB", "JnetFile", "RNAML", "PHYLIP", "JSON", "GFF v2 or v3", "HTML"]); +c$.READABLE_EXTENSIONS = c$.prototype.READABLE_EXTENSIONS = Clazz.newArray (-1, ["fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa", "sto,stk", "xml,rnaml", "phy", "json", ".gff2,gff3", "jar,jvp", "html"]); +c$.READABLE_FNAMES = c$.prototype.READABLE_FNAMES = Clazz.newArray (-1, ["Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Stockholm", "RNAML", "PHYLIP", "JSON", "GFF v2 or v3", "Jalview", "HTML"]); +c$.WRITEABLE_FORMATS = c$.prototype.WRITEABLE_FORMATS = Clazz.newArray (-1, ["BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "AMSA", "STH", "PHYLIP", "JSON"]); +c$.WRITABLE_EXTENSIONS = c$.prototype.WRITABLE_EXTENSIONS = Clazz.newArray (-1, ["fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa", "sto,stk", "phy", "json", "jvp"]); +c$.WRITABLE_FNAMES = c$.prototype.WRITABLE_FNAMES = Clazz.newArray (-1, ["Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "STH", "PHYLIP", "JSON", "Jalview"]); +Clazz.defineStatics (c$, +"INVALID_CHARACTERS", "Contains invalid characters"); +c$.SUPPORTED_FORMATS = c$.prototype.SUPPORTED_FORMATS = "Formats currently supported are\n" + jalview.io.AppletFormatAdapter.prettyPrint (jalview.io.AppletFormatAdapter.READABLE_FORMATS); +});