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
9 this.START_CHAIN = 3;
\r
12 this.DESCRIPTION1 = 6;
\r
13 this.DESCRIPTION2 = 7;
\r
14 this.RESOLUTION = 8;
\r
17 this.Padding = null;
\r
19 if (!Clazz.isClassDefined ("jalview.io.ModellerDescription.resCode")) {
\r
20 jalview.io.ModellerDescription.$ModellerDescription$resCode$ ();
\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
31 Clazz.makeConstructor (c$,
\r
33 this.fields.put (this.Fields[9], "");
\r
35 Clazz.defineMethod (c$, "validResidueCode",
\r
38 var r = jalview.jsdev.RegExp.newRegex (["\\s*((([-0-9]+).?)|FIRST|LAST|@)"]);
\r
39 if (!r.search (field)) {
\r
41 }var value = r.stringMatchedI (3);
\r
42 if (value == null) {
\r
43 value = r.stringMatchedI (1);
\r
45 val = Integer.$valueOf (value);
\r
46 return Clazz.innerTypeInstance (jalview.io.ModellerDescription.resCode, this, null, field, val);
\r
48 if (Clazz.exceptionOf (e, Exception)) {
\r
53 return Clazz.innerTypeInstance (jalview.io.ModellerDescription.resCode, this, null, field, null);
\r
55 Clazz.defineMethod (c$, "parseDescription",
\r
57 var fields = new java.util.Hashtable ();
\r
58 var st = new java.util.StringTokenizer (desc, ":", true);
\r
61 if (st.countTokens () > 0) {
\r
63 field = st.nextToken (":");
\r
65 if (this.seqTypes[i].equalsIgnoreCase (field)) {
\r
67 }} while (++i < this.seqTypes.length);
\r
68 if (i < this.seqTypes.length) {
\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
78 fields.put ( String.instantialize (this.Fields[i] + "num"), val);
\r
81 };}fields.put (this.Fields[i++], field);
\r
82 if (st.hasMoreTokens ()) {
\r
88 while (st.hasMoreTokens ()) {
\r
89 var tl = st.nextToken (":");
\r
90 field += tl.equals (":") ? tl : (":" + tl);
\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
97 fields.put (this.Fields[0], this.seqTypes[type]);
\r
100 Clazz.makeConstructor (c$,
\r
102 if (desc == null) {
\r
104 }this.fields = this.parseDescription (desc);
\r
106 Clazz.defineMethod (c$, "setStartCode",
\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
112 Clazz.defineMethod (c$, "setEndCode",
\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
118 Clazz.makeConstructor (c$,
\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
128 this.setStartCode (seq.getStart ());
\r
129 this.setEndCode (seq.getEnd ());
\r
130 this.fields.put (this.Fields[1], seq.getName ());
\r
132 if (seq.getDatasetSequence () != null && seq.getDatasetSequence ().getDBRef () != null) {
\r
133 var dbr = seq.getDatasetSequence ().getDBRef ();
\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
143 }this.fields.put (this.Fields[0], this.seqTypes[t]);
\r
144 }}, "jalview.datamodel.SequenceI");
\r
145 Clazz.defineMethod (c$, "isModellerFieldset",
\r
147 return (this.fields.containsKey (this.Fields[0]));
\r
149 Clazz.defineMethod (c$, "getDescriptionLine",
\r
152 var lastfield = this.Fields.length - 1;
\r
153 if (this.isModellerFieldset ()) {
\r
155 for (; lastfield > 6; lastfield--) {
\r
156 if (this.fields.containsKey (this.Fields[lastfield])) {
\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
164 desc += this.Padding[i] + ":";
\r
166 }if (this.fields.containsKey (this.Fields[lastfield])) {
\r
167 desc += this.fields.get (this.Fields[lastfield]);
\r
172 Clazz.defineMethod (c$, "getStartNum",
\r
175 var val = this.getStartCode ();
\r
176 if (val != null && val.val != null) {
\r
177 return val.val.intValue ();
\r
180 Clazz.defineMethod (c$, "getStartCode",
\r
182 if (this.isModellerFieldset () && this.fields.containsKey (this.Fields[2] + "num")) {
\r
183 return this.fields.get (this.Fields[2] + "num");
\r
186 Clazz.defineMethod (c$, "getEndCode",
\r
188 if (this.isModellerFieldset () && this.fields.containsKey (this.Fields[4] + "num")) {
\r
189 return this.fields.get (this.Fields[4] + "num");
\r
192 Clazz.defineMethod (c$, "getEndNum",
\r
195 var val = this.getEndCode ();
\r
196 if (val != null && val.val != null) {
\r
197 return val.val.intValue ();
\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
207 newSeq.setStart (1);
\r
208 }rc = this.getEndCode ();
\r
209 if (rc != null && rc.val != null) {
\r
210 newSeq.setEnd (this.getEndNum ());
\r
212 newSeq.setEnd (newSeq.getStart () + newSeq.getLength ());
\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
222 Clazz.instantialize (this, arguments);
\r
223 }, jalview.io.ModellerDescription, "resCode");
\r
224 Clazz.makeConstructor (c$,
\r
229 Clazz.makeConstructor (c$,
\r
231 this.val = new Integer (a);
\r
232 this.field = this.val.toString ();
\r