JAL-1807 test
[jalviewjs.git] / bin / jalview / io / PfamFile.js
1 Clazz.declarePackage ("jalview.io");
2 Clazz.load (["jalview.io.AlignFile"], "jalview.io.PfamFile", ["jalview.util.Format", "$.MessageManager", "java.io.IOException", "java.lang.StringBuffer", "java.util.Hashtable", "$.StringTokenizer", "$.Vector"], function () {
3 c$ = Clazz.declareType (jalview.io, "PfamFile", jalview.io.AlignFile);
4 Clazz.makeConstructor (c$, 
5 function () {
6 Clazz.superConstructor (this, jalview.io.PfamFile, []);
7 });
8 Clazz.overrideMethod (c$, "parse", 
9 function () {
10 var i = 0;
11 var line;
12 var seqhash =  new java.util.Hashtable ();
13 var headers =  new java.util.Vector ();
14 while ((line = this.nextLine ()) != null) {
15 if (line.indexOf (" ") != 0) {
16 if (line.indexOf ("#") != 0) {
17 var str =  new java.util.StringTokenizer (line, " ");
18 var id = "";
19 if (str.hasMoreTokens ()) {
20 id = str.nextToken ();
21 var tempseq;
22 if (seqhash.containsKey (id)) {
23 tempseq = seqhash.get (id);
24 } else {
25 tempseq =  new StringBuffer ();
26 seqhash.put (id, tempseq);
27 }if (!(headers.contains (id))) {
28 headers.addElement (id);
29 }if (str.hasMoreTokens ()) {
30 tempseq.append (str.nextToken ());
31 }}}}}
32 this.noSeqs = headers.size ();
33 if (this.noSeqs < 1) {
34 throw  new java.io.IOException (jalview.util.MessageManager.getString ("exception.pfam_no_sequences_found"));
35 }for (i = 0; i < headers.size (); i++) {
36 if (seqhash.get (headers.elementAt (i)) != null) {
37 if (this.maxLength < seqhash.get (headers.elementAt (i)).toString ().length) {
38 this.maxLength = seqhash.get (headers.elementAt (i)).toString ().length;
39 }var newSeq = this.parseId (headers.elementAt (i).toString ());
40 newSeq.setSequence (seqhash.get (headers.elementAt (i).toString ()).toString ());
41 this.seqs.addElement (newSeq);
42 } else {
43 System.err.println ("PFAM File reader: Can't find sequence for " + headers.elementAt (i));
44 }}
45 });
46 Clazz.defineMethod (c$, "print", 
47 function (s) {
48 var out =  new StringBuffer ("");
49 var max = 0;
50 var maxid = 0;
51 var i = 0;
52 while ((i < s.length) && (s[i] != null)) {
53 var tmp = this.printId (s[i]);
54 if (s[i].getSequence ().length > max) {
55 max = s[i].getSequence ().length;
56 }if (tmp.length > maxid) {
57 maxid = tmp.length;
58 }i++;
59 }
60 if (maxid < 15) {
61 maxid = 15;
62 }var j = 0;
63 while ((j < s.length) && (s[j] != null)) {
64 out.append ( new jalview.util.Format ("%-" + maxid + "s").form (this.printId (s[j]) + " "));
65 out.append (s[j].getSequenceAsString ());
66 out.append (this.newline);
67 j++;
68 }
69 out.append (this.newline);
70 return out.toString ();
71 }, "~A");
72 Clazz.defineMethod (c$, "print", 
73 function () {
74 return this.print (this.getSeqsAsArray ());
75 });
76 });