1 Clazz.declarePackage ("jalview.io");
\r
2 Clazz.load (null, "jalview.io.IdentifyFile", ["jalview.io.FileParse"], function () {
\r
3 c$ = Clazz.declareType (jalview.io, "IdentifyFile");
\r
4 Clazz.defineMethod (c$, "Identify",
\r
5 function (file, protocol) {
\r
6 var emessage = "UNIDENTIFIED FILE PARSING ERROR";
\r
9 parser = new jalview.io.FileParse (file, protocol);
\r
10 if (parser.isValid ()) {
\r
11 return this.Identify (parser);
\r
13 if (Clazz.exceptionOf (e, Exception)) {
\r
14 System.err.println ("Error whilst identifying");
\r
15 e.printStackTrace (System.err);
\r
16 emessage = e.getMessage ();
\r
21 if (parser != null) {
\r
22 return parser.errormessage;
\r
25 Clazz.defineMethod (c$, "Identify",
\r
27 return this.Identify (source, true);
\r
28 }, "jalview.io.FileParse");
\r
29 Clazz.defineMethod (c$, "Identify",
\r
30 function (source, closeSource) {
\r
34 var lineswereskipped = false;
\r
35 var isBinary = false;
\r
39 }while ((data = source.nextLine ()) != null) {
\r
40 length += data.trim ().length;
\r
41 if (!lineswereskipped) {
\r
42 for (var i = 0; !isBinary && i < data.length; i++) {
\r
43 var c = data.charAt (i);
\r
44 isBinary = (c.charCodeAt (0) < 32 && c != '\t' && c != '\n' && c != '\r' && c.charCodeAt (0) != 5 && c.charCodeAt (0) != 27);
\r
47 if (source.inFile != null) {
\r
48 var fileStr = source.inFile.getName ();
\r
49 if (fileStr.lastIndexOf (".jar") > -1 || fileStr.lastIndexOf (".zip") > -1) {
\r
51 }}if (!lineswereskipped && data.startsWith ("PK")) {
\r
54 }}data = data.toUpperCase ();
\r
55 if (data.startsWith ("##GFF-VERSION")) {
\r
56 reply = "GFF v2 or v3";
\r
58 }if (data.indexOf ("# STOCKHOLM") > -1) {
\r
61 }if (data.matches ("<HTML(\"[^\"]*\"|'[^']*'|[^'\">])*>")) {
\r
64 }if (data.matches ("<RNAML (\"[^\"]*\"|'[^']*'|[^'\">])*>")) {
\r
67 }if (data.indexOf ("{\"") > -1) {
\r
70 }if ((data.length < 1) || (data.indexOf ("#") == 0)) {
\r
71 lineswereskipped = true;
\r
73 }if (data.indexOf ("PILEUP") > -1) {
\r
76 }if ((data.indexOf ("//") == 0) || ((data.indexOf ("!!") > -1) && (data.indexOf ("!!") < data.indexOf ("_MULTIPLE_ALIGNMENT ")))) {
\r
79 } else if (data.indexOf ("CLUSTAL") > -1) {
\r
82 } else if (data.indexOf (">") > -1) {
\r
83 var checkPIR = false;
\r
84 var starterm = false;
\r
85 if ((data.indexOf (">P1;") > -1) || (data.indexOf (">DL;") > -1)) {
\r
88 }data = source.nextLine ();
\r
89 if (data.indexOf (">") > -1) {
\r
92 var data1 = source.nextLine ();
\r
93 var data2 = source.nextLine ();
\r
96 starterm = (data1 != null && data1.indexOf ("*") > -1) || (data2 != null && data2.indexOf ("*") > -1);
\r
97 }if (data2 != null && (c1 = data.indexOf ("*")) > -1) {
\r
98 if (c1 == 0 && c1 == data2.indexOf ("*")) {
\r
111 dta = source.nextLine ();
\r
113 if (Clazz.exceptionOf (ex, java.io.IOException)) {
\r
118 ;if (dta != null && dta.indexOf ("*") > -1) {
\r
120 }} while (dta != null && !starterm);
\r
127 } else if (data.indexOf ("HEADER") == 0 || data.indexOf ("ATOM") == 0) {
\r
130 } else if (data.matches ("\\s*\\d+\\s+\\d+\\s*")) {
\r
133 } else if (!lineswereskipped && data.charAt (0) != '*' && data.charAt (0) != ' ' && data.indexOf (":") < data.indexOf (",")) {
\r
134 reply = "JnetFile";
\r
136 }lineswereskipped = true;
\r
143 if (Clazz.exceptionOf (ex, Exception)) {
\r
144 System.err.println ("File Identification failed!\n" + ex);
\r
145 return source.errormessage;
\r
151 System.err.println ("File Identification failed! - Empty file was read.");
\r
152 return "EMPTY DATA FILE";
\r
154 }, "jalview.io.FileParse,~B");
\r
155 Clazz.defineStatics (c$,
\r
156 "GFF3File", "GFF v2 or v3");
\r