JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / jalview / io / ModellerDescription.js
1 Clazz.declarePackage ("jalview.io");\r
2 Clazz.load (["java.util.Hashtable"], "jalview.io.ModellerDescription", ["jalview.datamodel.DBRefSource", "jalview.jsdev.RegExp", "java.util.StringTokenizer"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.seqTypes = null;\r
5 this.Fields = null;\r
6 this.TYPE = 0;\r
7 this.LOCALID = 1;\r
8 this.START = 2;\r
9 this.START_CHAIN = 3;\r
10 this.END = 4;\r
11 this.END_CHAIN = 5;\r
12 this.DESCRIPTION1 = 6;\r
13 this.DESCRIPTION2 = 7;\r
14 this.RESOLUTION = 8;\r
15 this.TAIL = 9;\r
16 this.Types = null;\r
17 this.Padding = null;\r
18 this.fields = null;\r
19 if (!Clazz.isClassDefined ("jalview.io.ModellerDescription.resCode")) {\r
20 jalview.io.ModellerDescription.$ModellerDescription$resCode$ ();\r
21 }\r
22 Clazz.instantialize (this, arguments);\r
23 }, jalview.io, "ModellerDescription");\r
24 Clazz.prepareFields (c$, function () {\r
25 this.seqTypes =  Clazz.newArray (-1, ["sequence", "structure", "structureX", "structureN"]);\r
26 this.Fields =  Clazz.newArray (-1, ["objectType", "objectId", "startField", "startCode", "endField", "endCode", "description1", "description2", "resolutionField", "tailField"]);\r
27 this.Types =  Clazz.newIntArray (-1, [0, 0, 1, 0, 1, 0, 0, 0, 0, 0]);\r
28 this.Padding =  Clazz.newCharArray (-1, [' ', ' ', ' ', '.', ' ', '.', '.', '.', '.', '.']);\r
29 this.fields =  new java.util.Hashtable ();\r
30 });\r
31 Clazz.makeConstructor (c$, \r
32 function () {\r
33 this.fields.put (this.Fields[9], "");\r
34 });\r
35 Clazz.defineMethod (c$, "validResidueCode", \r
36  function (field) {\r
37 var val = null;\r
38 var r = jalview.jsdev.RegExp.newRegex (["\\s*((([-0-9]+).?)|FIRST|LAST|@)"]);\r
39 if (!r.search (field)) {\r
40 return null;\r
41 }var value = r.stringMatchedI (3);\r
42 if (value == null) {\r
43 value = r.stringMatchedI (1);\r
44 }try {\r
45 val = Integer.$valueOf (value);\r
46 return Clazz.innerTypeInstance (jalview.io.ModellerDescription.resCode, this, null, field, val);\r
47 } catch (e) {\r
48 if (Clazz.exceptionOf (e, Exception)) {\r
49 } else {\r
50 throw e;\r
51 }\r
52 }\r
53 return Clazz.innerTypeInstance (jalview.io.ModellerDescription.resCode, this, null, field, null);\r
54 }, "~S");\r
55 Clazz.defineMethod (c$, "parseDescription", \r
56  function (desc) {\r
57 var fields =  new java.util.Hashtable ();\r
58 var st =  new java.util.StringTokenizer (desc, ":", true);\r
59 var field;\r
60 var type = -1;\r
61 if (st.countTokens () > 0) {\r
62 var i = 0;\r
63 field = st.nextToken (":");\r
64 do {\r
65 if (this.seqTypes[i].equalsIgnoreCase (field)) {\r
66 break;\r
67 }} while (++i < this.seqTypes.length);\r
68 if (i < this.seqTypes.length) {\r
69 st.nextToken ();\r
70 type = i;\r
71 i = 1;\r
72 while (i < 9 && st.hasMoreTokens ()) {\r
73 if ((field = st.nextToken (":")) != null) {\r
74 if (!field.equals (":")) {\r
75 if (this.Types[i] == 1) {\r
76 var val = this.validResidueCode (field);\r
77 if (val != null) {\r
78 fields.put ( String.instantialize (this.Fields[i] + "num"), val);\r
79 } else {\r
80 type = -1;\r
81 };}fields.put (this.Fields[i++], field);\r
82 if (st.hasMoreTokens ()) {\r
83 st.nextToken ();\r
84 }} else {\r
85 i++;\r
86 }}}\r
87 if (i == 9) {\r
88 while (st.hasMoreTokens ()) {\r
89 var tl = st.nextToken (":");\r
90 field += tl.equals (":") ? tl : (":" + tl);\r
91 }\r
92 fields.put (this.Fields[9], field);\r
93 }}}if (type == -1) {\r
94 fields =  new java.util.Hashtable ();\r
95 fields.put (this.Fields[9],  String.instantialize (desc));\r
96 } else {\r
97 fields.put (this.Fields[0], this.seqTypes[type]);\r
98 }return fields;\r
99 }, "~S");\r
100 Clazz.makeConstructor (c$, \r
101 function (desc) {\r
102 if (desc == null) {\r
103 desc = "";\r
104 }this.fields = this.parseDescription (desc);\r
105 }, "~S");\r
106 Clazz.defineMethod (c$, "setStartCode", \r
107 function (v) {\r
108 var r;\r
109 this.fields.put (this.Fields[2] + "num", r = Clazz.innerTypeInstance (jalview.io.ModellerDescription.resCode, this, null, v));\r
110 this.fields.put (this.Fields[2], r.field);\r
111 }, "~N");\r
112 Clazz.defineMethod (c$, "setEndCode", \r
113 function (v) {\r
114 var r;\r
115 this.fields.put (this.Fields[4] + "num", r = Clazz.innerTypeInstance (jalview.io.ModellerDescription.resCode, this, null, v));\r
116 this.fields.put (this.Fields[4], r.field);\r
117 }, "~N");\r
118 Clazz.makeConstructor (c$, \r
119 function (seq) {\r
120 if (seq.getDescription () != null) {\r
121 this.fields = this.parseDescription (seq.getDescription ());\r
122 }if (this.isModellerFieldset ()) {\r
123 if (this.getStartCode () == null || (this.getStartNum () != seq.getStart () && this.getStartCode ().val != null)) {\r
124 this.setStartCode (seq.getStart ());\r
125 }if (this.getEndCode () == null || (this.getEndNum () != seq.getEnd () && this.getStartCode () != null && this.getStartCode ().val != null)) {\r
126 this.setEndCode (seq.getEnd ());\r
127 }} else {\r
128 this.setStartCode (seq.getStart ());\r
129 this.setEndCode (seq.getEnd ());\r
130 this.fields.put (this.Fields[1], seq.getName ());\r
131 var t = 0;\r
132 if (seq.getDatasetSequence () != null && seq.getDatasetSequence ().getDBRef () != null) {\r
133 var dbr = seq.getDatasetSequence ().getDBRef ();\r
134 var i;\r
135 var j;\r
136 for (i = 0, j = dbr.length; i < j; i++) {\r
137 if (dbr[i] != null) {\r
138 if (dbr[i].getSource ().equals (jalview.datamodel.DBRefSource.PDB)) {\r
139 this.fields.put (this.Fields[1], dbr[i].getAccessionId ());\r
140 t = 2;\r
141 break;\r
142 }}}\r
143 }this.fields.put (this.Fields[0], this.seqTypes[t]);\r
144 }}, "jalview.datamodel.SequenceI");\r
145 Clazz.defineMethod (c$, "isModellerFieldset", \r
146 function () {\r
147 return (this.fields.containsKey (this.Fields[0]));\r
148 });\r
149 Clazz.defineMethod (c$, "getDescriptionLine", \r
150 function () {\r
151 var desc = "";\r
152 var lastfield = this.Fields.length - 1;\r
153 if (this.isModellerFieldset ()) {\r
154 var value;\r
155 for (; lastfield > 6; lastfield--) {\r
156 if (this.fields.containsKey (this.Fields[lastfield])) {\r
157 break;\r
158 }}\r
159 for (var i = 0; i < lastfield; i++) {\r
160 value = this.fields.get (this.Fields[i]);\r
161 if (value != null && value.length > 0) {\r
162 desc += (this.fields.get (this.Fields[i])) + ":";\r
163 } else {\r
164 desc += this.Padding[i] + ":";\r
165 }}\r
166 }if (this.fields.containsKey (this.Fields[lastfield])) {\r
167 desc += this.fields.get (this.Fields[lastfield]);\r
168 } else {\r
169 desc += ".";\r
170 }return desc;\r
171 });\r
172 Clazz.defineMethod (c$, "getStartNum", \r
173 function () {\r
174 var start = 0;\r
175 var val = this.getStartCode ();\r
176 if (val != null && val.val != null) {\r
177 return val.val.intValue ();\r
178 }return start;\r
179 });\r
180 Clazz.defineMethod (c$, "getStartCode", \r
181 function () {\r
182 if (this.isModellerFieldset () && this.fields.containsKey (this.Fields[2] + "num")) {\r
183 return this.fields.get (this.Fields[2] + "num");\r
184 }return null;\r
185 });\r
186 Clazz.defineMethod (c$, "getEndCode", \r
187 function () {\r
188 if (this.isModellerFieldset () && this.fields.containsKey (this.Fields[4] + "num")) {\r
189 return this.fields.get (this.Fields[4] + "num");\r
190 }return null;\r
191 });\r
192 Clazz.defineMethod (c$, "getEndNum", \r
193 function () {\r
194 var end = 0;\r
195 var val = this.getEndCode ();\r
196 if (val != null && val.val != null) {\r
197 return val.val.intValue ();\r
198 }return end;\r
199 });\r
200 Clazz.defineMethod (c$, "updateSequenceI", \r
201 function (newSeq) {\r
202 if (this.isModellerFieldset ()) {\r
203 var rc = this.getStartCode ();\r
204 if (rc != null && rc.val != null) {\r
205 newSeq.setStart (this.getStartNum ());\r
206 } else {\r
207 newSeq.setStart (1);\r
208 }rc = this.getEndCode ();\r
209 if (rc != null && rc.val != null) {\r
210 newSeq.setEnd (this.getEndNum ());\r
211 } else {\r
212 newSeq.setEnd (newSeq.getStart () + newSeq.getLength ());\r
213 }return true;\r
214 }return false;\r
215 }, "jalview.datamodel.SequenceI");\r
216 c$.$ModellerDescription$resCode$ = function () {\r
217 Clazz.pu$h(self.c$);\r
218 c$ = Clazz.decorateAsClass (function () {\r
219 Clazz.prepareCallback (this, arguments);\r
220 this.val = null;\r
221 this.field = null;\r
222 Clazz.instantialize (this, arguments);\r
223 }, jalview.io.ModellerDescription, "resCode");\r
224 Clazz.makeConstructor (c$, \r
225 function (a, b) {\r
226 this.val = b;\r
227 this.field = a;\r
228 }, "~S,Integer");\r
229 Clazz.makeConstructor (c$, \r
230 function (a) {\r
231 this.val =  new Integer (a);\r
232 this.field = this.val.toString ();\r
233 }, "~N");\r
234 c$ = Clazz.p0p ();\r
235 };\r
236 });\r