JAL-1807 includes ?j2sdebug flag and DebugJS._(msg)
[jalviewjs.git] / bin / jalview / datamodel / CigarBase.js
index bd75085..5b88b3f 100644 (file)
-Clazz.declarePackage ("jalview.datamodel");\r
-Clazz.load (null, "jalview.datamodel.CigarBase", ["jalview.util.MessageManager", "java.lang.Error", "$.Exception", "$.StringBuffer", "java.util.Vector", "javajs.util.AU"], function () {\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.length = 0;\r
-this._inc_length = 10;\r
-this.operation = null;\r
-this.range = null;\r
-Clazz.instantialize (this, arguments);\r
-}, jalview.datamodel, "CigarBase");\r
-Clazz.makeConstructor (c$, \r
-function () {\r
-});\r
-Clazz.defineMethod (c$, "getSequenceAndDeletions", \r
-function (reference, GapChar) {\r
-var rlength = 0;\r
-var deletions = javajs.util.AU.newInt2 (this.length);\r
-var trunc_deletions = null;\r
-var sq =  new StringBuffer ();\r
-var cursor = 0;\r
-var alcursor = 0;\r
-var start = 0;\r
-var startpos = 0;\r
-var end = 0;\r
-var endpos = 0;\r
-var delcount = -1;\r
-var consecutive_del = false;\r
-if (this.length == 0) {\r
-return null;\r
-}if (reference != null) {\r
-rlength = reference.length;\r
-}var modstart = true;\r
-for (var i = 0; i < this.length; i++) {\r
-switch (this.operation[i]) {\r
-case 'D':\r
-if (!consecutive_del) {\r
-deletions[++delcount] =  Clazz.newIntArray (-1, [cursor, 0, alcursor]);\r
-}cursor += this.range[i];\r
-deletions[delcount][1] = cursor - 1;\r
-consecutive_del = true;\r
-break;\r
-case 'I':\r
-consecutive_del = false;\r
-for (var r = 0; r < this.range[i]; r++) {\r
-sq.append (GapChar);\r
-alcursor++;\r
-}\r
-break;\r
-case 'M':\r
-consecutive_del = false;\r
-if (modstart) {\r
-start = cursor;\r
-startpos = alcursor;\r
-modstart = false;\r
-}if (reference != null) {\r
-var sbend = cursor + this.range[i];\r
-if (sbend > rlength) {\r
-sq.append (reference.substring (cursor, rlength));\r
-while (sbend-- >= rlength) {\r
-sq.append (GapChar);\r
-}\r
-} else {\r
-sq.append (reference.substring (cursor, sbend));\r
-}}alcursor += this.range[i];\r
-cursor += this.range[i];\r
-end = cursor - 1;\r
-endpos = alcursor;\r
-break;\r
-default:\r
-throw  new Error (jalview.util.MessageManager.formatMessage ("error.unknown_seq_cigar_operation",  Clazz.newArray (-1, [ new StringBuffer (this.operation[i].charCodeAt (0)).toString ()])));\r
-}\r
-}\r
-if (++delcount > 0) {\r
-trunc_deletions =  Clazz.newIntArray (delcount, 0);\r
-System.arraycopy (deletions, 0, trunc_deletions, 0, delcount);\r
-}deletions = null;\r
-return  Clazz.newArray (-1, [((reference != null) ? sq.toString () : null),  Clazz.newIntArray (-1, [start, startpos, end, endpos]), trunc_deletions]);\r
-}, "~S,~S");\r
-Clazz.defineMethod (c$, "compact_operations", \r
-function () {\r
-var i = 1;\r
-if (this.operation == null) {\r
-return;\r
-}var last = this.operation[0];\r
-while (i < this.length) {\r
-if (last == this.operation[i]) {\r
-this.range[i - 1] += this.range[i];\r
-var r = this.length - i;\r
-if (r > 0) {\r
-System.arraycopy (this.range, i + 1, this.range, i, r);\r
-System.arraycopy (this.operation, i + 1, this.operation, i, r);\r
-}this.length--;\r
-} else {\r
-last = this.operation[i++];\r
-}}\r
-});\r
-c$.parseCigarString = Clazz.defineMethod (c$, "parseCigarString", \r
-function (cigarString) {\r
-var ops = 0;\r
-for (var i = 0, l = cigarString.length; i < l; i++) {\r
-var c = cigarString.charAt (i);\r
-if (c == 'M' || c.charCodeAt (0) == (45) || c == 'I' || c.charCodeAt (0) == (41) || c == 'D' || c.charCodeAt (0) == (36)) {\r
-ops++;\r
-}}\r
-var operation =  Clazz.newCharArray (ops, '\0');\r
-var range =  Clazz.newIntArray (ops, 0);\r
-var op = 0;\r
-var i = 0;\r
-var l = cigarString.length;\r
-while (i < l) {\r
-var c;\r
-var j = i;\r
-do {\r
-c = cigarString.charAt (j++);\r
-} while (c >= '0' && c <= '9' && j < l);\r
-if (j >= l && c >= '0' && c <= '9') {\r
-throw  new Exception (jalview.util.MessageManager.getString ("exception.unterminated_cigar_string"));\r
-}try {\r
-var rangeint = cigarString.substring (i, j - 1);\r
-range[op] = Integer.parseInt (rangeint);\r
-i = j;\r
-} catch (e) {\r
-if (Clazz.exceptionOf (e, Exception)) {\r
-throw  new Error (jalview.util.MessageManager.getString ("error.implementation_bug_parse_cigar_string"));\r
-} else {\r
-throw e;\r
-}\r
-}\r
-if (c >= 'a' && c <= 'z') {\r
-c = String.fromCharCode (c.charCodeAt (0) - 32);\r
-}if ((c == 'M' || c == 'I' || c == 'D')) {\r
-operation[op++] = c;\r
-} else {\r
-throw  new Exception (jalview.util.MessageManager.formatMessage ("exception.unexpected_operation_cigar_string_pos",  Clazz.newArray (-1, [ new StringBuffer (c.charCodeAt (0)).toString (), Integer.$valueOf (i).toString (), cigarString])));\r
-}}\r
-return  Clazz.newArray (-1, [operation, range]);\r
-}, "~S");\r
-Clazz.defineMethod (c$, "addOperation", \r
-function (op, range) {\r
-if (op >= 'a' && op <= 'z') {\r
-op = String.fromCharCode (op.charCodeAt (0) - 32);\r
-}if (op != 'M' && op != 'D' && op != 'I') {\r
-throw  new Error (jalview.util.MessageManager.getString ("error.implementation_error_invalid_operation_string"));\r
-}if (range == 0) {\r
-return;\r
-}if (range < 0) {\r
-throw  new Error (jalview.util.MessageManager.getString ("error.invalid_range_string"));\r
-}var lngth = 0;\r
-if (this.operation == null) {\r
-this.operation =  Clazz.newCharArray (this._inc_length, '\0');\r
-this.range =  Clazz.newIntArray (this._inc_length, 0);\r
-}if (this.length + 1 == this.operation.length) {\r
-var ops = this.operation;\r
-this.operation =  Clazz.newCharArray (this.length + 1 + this._inc_length, '\0');\r
-System.arraycopy (ops, 0, this.operation, 0, this.length);\r
-ops = null;\r
-var rng = this.range;\r
-this.range =  Clazz.newIntArray (this.length + 1 + this._inc_length, 0);\r
-System.arraycopy (rng, 0, this.range, 0, this.length);\r
-rng = null;\r
-}if ((this.length > 0) && (this.operation[this.length - 1] == op)) {\r
-this.length--;\r
-} else {\r
-this.range[this.length] = 0;\r
-}this.operation[this.length] = op;\r
-this.range[this.length++] += range;\r
-}, "~S,~N");\r
-Clazz.defineMethod (c$, "deleteRange", \r
-function (start, end) {\r
-var deleted = 0;\r
-if (this.length == 0) {\r
-return deleted;\r
-}if (start < 0 || start > end) {\r
-throw  new Error (jalview.util.MessageManager.getString ("error.implementation_error_delete_range_out_of_bounds"));\r
-}var cursor = 0;\r
-var rlength = 1 + end - start;\r
-var oldlen = this.length;\r
-var o = 0;\r
-var editing = false;\r
-var oldops = this.operation;\r
-var oldrange = this.range;\r
-this.length = 0;\r
-this.operation = null;\r
-this.range = null;\r
-this.compact_operations ();\r
-while (o < oldlen && cursor <= end && rlength > 0) {\r
-if (oldops[o] == 'D') {\r
-this.addDeleted (oldrange[o++]);\r
-continue;\r
-}var remain = oldrange[o];\r
-if (!editing) {\r
-if ((cursor + remain) <= start) {\r
-this.addOperation (oldops[o], oldrange[o]);\r
-cursor += oldrange[o++];\r
-continue;\r
-}editing = true;\r
-if (start - cursor > 0) {\r
-this.addOperation (oldops[o], start - cursor);\r
-remain -= start - cursor;\r
-}}if (o < oldlen && editing && rlength > 0 && remain > 0) {\r
-switch (oldops[o]) {\r
-case 'M':\r
-if (rlength > remain) {\r
-this.addDeleted (remain);\r
-deleted += remain;\r
-} else {\r
-deleted += rlength;\r
-this.addDeleted (rlength);\r
-if (remain - rlength > 0) {\r
-this.addOperation ('M', remain - rlength);\r
-}rlength = 0;\r
-remain = 0;\r
-}break;\r
-case 'I':\r
-if (remain - rlength > 0) {\r
-this.addInsertion (remain - rlength);\r
-rlength = 0;\r
-}break;\r
-case 'D':\r
-throw  new Error (jalview.util.MessageManager.getString ("error.implementation_error"));\r
-default:\r
-throw  new Error (jalview.util.MessageManager.formatMessage ("error.implementation_error_unknown_operation",  Clazz.newArray (-1, [ new StringBuffer (oldops[o].charCodeAt (0)).toString ()])));\r
-}\r
-rlength -= remain;\r
-remain = oldrange[++o];\r
-}}\r
-while (o < oldlen) {\r
-this.addOperation (oldops[o], oldrange[o++]);\r
-}\r
-return deleted;\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "hasDeletedRegions", \r
-function () {\r
-for (var i = 0; i < this.length; i++) {\r
-if (this.operation[i] == 'D') {\r
-return true;\r
-}}\r
-return false;\r
-});\r
-Clazz.defineMethod (c$, "getDeletedRegions", \r
-function () {\r
-if (this.length == 0) {\r
-return null;\r
-}var dr =  new java.util.Vector ();\r
-var cursor = 0;\r
-var vcursor = 0;\r
-for (var i = 0; i < this.length; i++) {\r
-switch (this.operation[i]) {\r
-case 'M':\r
-cursor += this.range[i];\r
-case 'I':\r
-vcursor += this.range[i];\r
-break;\r
-case 'D':\r
-dr.addElement ( Clazz.newIntArray (-1, [vcursor, cursor, this.range[i]]));\r
-cursor += this.range[i];\r
-}\r
-}\r
-if (dr.size () == 0) {\r
-return null;\r
-}var delregions =  Clazz.newIntArray (dr.size () * 3, 0);\r
-for (var i = 0, l = dr.size (); i < l; i++) {\r
-var reg = dr.elementAt (i);\r
-delregions[i * 3] = reg[0];\r
-delregions[i * 3 + 1] = reg[1];\r
-delregions[i * 3 + 2] = reg[2];\r
-}\r
-return delregions;\r
-});\r
-Clazz.defineMethod (c$, "getFullWidth", \r
-function () {\r
-var w = 0;\r
-if (this.range != null) {\r
-for (var i = 0; i < this.length; i++) {\r
-w += this.range[i];\r
-}\r
-}return w;\r
-});\r
-Clazz.defineMethod (c$, "getWidth", \r
-function () {\r
-var w = 0;\r
-if (this.range != null) {\r
-for (var i = 0; i < this.length; i++) {\r
-if (this.operation[i] == 'M' || this.operation[i] == 'I') {\r
-w += this.range[i];\r
-}}\r
-}return w;\r
-});\r
-Clazz.defineMethod (c$, "addInsertion", \r
-function (range) {\r
-this.addOperation ('I', range);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "addDeleted", \r
-function (range) {\r
-this.addOperation ('D', range);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getCigarstring", \r
-function () {\r
-var cigarString =  new StringBuffer ();\r
-for (var i = 0; i < this.length; i++) {\r
-cigarString.append ("" + this.range[i]);\r
-cigarString.append (this.operation[i]);\r
-}\r
-return cigarString.toString ();\r
-});\r
-Clazz.defineStatics (c$,\r
-"D", 'D',\r
-"I", 'I',\r
-"M", 'M',\r
-"_case_shift", String.fromCharCode (32));\r
-});\r
+Clazz.declarePackage ("jalview.datamodel");
+Clazz.load (null, "jalview.datamodel.CigarBase", ["jalview.util.MessageManager", "java.lang.Error", "$.Exception", "$.StringBuffer", "java.util.Vector", "javajs.util.AU"], function () {
+c$ = Clazz.decorateAsClass (function () {
+this.length = 0;
+this._inc_length = 10;
+this.operation = null;
+this.range = null;
+Clazz.instantialize (this, arguments);
+}, jalview.datamodel, "CigarBase");
+Clazz.makeConstructor (c$, 
+function () {
+});
+Clazz.defineMethod (c$, "getSequenceAndDeletions", 
+function (reference, GapChar) {
+var rlength = 0;
+var deletions = javajs.util.AU.newInt2 (this.length);
+var trunc_deletions = null;
+var sq =  new StringBuffer ();
+var cursor = 0;
+var alcursor = 0;
+var start = 0;
+var startpos = 0;
+var end = 0;
+var endpos = 0;
+var delcount = -1;
+var consecutive_del = false;
+if (this.length == 0) {
+return null;
+}if (reference != null) {
+rlength = reference.length;
+}var modstart = true;
+for (var i = 0; i < this.length; i++) {
+switch (this.operation[i]) {
+case 'D':
+if (!consecutive_del) {
+deletions[++delcount] =  Clazz.newIntArray (-1, [cursor, 0, alcursor]);
+}cursor += this.range[i];
+deletions[delcount][1] = cursor - 1;
+consecutive_del = true;
+break;
+case 'I':
+consecutive_del = false;
+for (var r = 0; r < this.range[i]; r++) {
+sq.append (GapChar);
+alcursor++;
+}
+break;
+case 'M':
+consecutive_del = false;
+if (modstart) {
+start = cursor;
+startpos = alcursor;
+modstart = false;
+}if (reference != null) {
+var sbend = cursor + this.range[i];
+if (sbend > rlength) {
+sq.append (reference.substring (cursor, rlength));
+while (sbend-- >= rlength) {
+sq.append (GapChar);
+}
+} else {
+sq.append (reference.substring (cursor, sbend));
+}}alcursor += this.range[i];
+cursor += this.range[i];
+end = cursor - 1;
+endpos = alcursor;
+break;
+default:
+throw  new Error (jalview.util.MessageManager.formatMessage ("error.unknown_seq_cigar_operation",  Clazz.newArray (-1, [ new StringBuffer (this.operation[i].charCodeAt (0)).toString ()])));
+}
+}
+if (++delcount > 0) {
+trunc_deletions =  Clazz.newIntArray (delcount, 0);
+System.arraycopy (deletions, 0, trunc_deletions, 0, delcount);
+}deletions = null;
+return  Clazz.newArray (-1, [((reference != null) ? sq.toString () : null),  Clazz.newIntArray (-1, [start, startpos, end, endpos]), trunc_deletions]);
+}, "~S,~S");
+Clazz.defineMethod (c$, "compact_operations", 
+function () {
+var i = 1;
+if (this.operation == null) {
+return;
+}var last = this.operation[0];
+while (i < this.length) {
+if (last == this.operation[i]) {
+this.range[i - 1] += this.range[i];
+var r = this.length - i;
+if (r > 0) {
+System.arraycopy (this.range, i + 1, this.range, i, r);
+System.arraycopy (this.operation, i + 1, this.operation, i, r);
+}this.length--;
+} else {
+last = this.operation[i++];
+}}
+});
+c$.parseCigarString = Clazz.defineMethod (c$, "parseCigarString", 
+function (cigarString) {
+var ops = 0;
+for (var i = 0, l = cigarString.length; i < l; i++) {
+var c = cigarString.charAt (i);
+if (c == 'M' || c.charCodeAt (0) == (45) || c == 'I' || c.charCodeAt (0) == (41) || c == 'D' || c.charCodeAt (0) == (36)) {
+ops++;
+}}
+var operation =  Clazz.newCharArray (ops, '\0');
+var range =  Clazz.newIntArray (ops, 0);
+var op = 0;
+var i = 0;
+var l = cigarString.length;
+while (i < l) {
+var c;
+var j = i;
+do {
+c = cigarString.charAt (j++);
+} while (c >= '0' && c <= '9' && j < l);
+if (j >= l && c >= '0' && c <= '9') {
+throw  new Exception (jalview.util.MessageManager.getString ("exception.unterminated_cigar_string"));
+}try {
+var rangeint = cigarString.substring (i, j - 1);
+range[op] = Integer.parseInt (rangeint);
+i = j;
+} catch (e) {
+if (Clazz.exceptionOf (e, Exception)) {
+throw  new Error (jalview.util.MessageManager.getString ("error.implementation_bug_parse_cigar_string"));
+} else {
+throw e;
+}
+}
+if (c >= 'a' && c <= 'z') {
+c = String.fromCharCode (c.charCodeAt (0) - 32);
+}if ((c == 'M' || c == 'I' || c == 'D')) {
+operation[op++] = c;
+} else {
+throw  new Exception (jalview.util.MessageManager.formatMessage ("exception.unexpected_operation_cigar_string_pos",  Clazz.newArray (-1, [ new StringBuffer (c.charCodeAt (0)).toString (), Integer.$valueOf (i).toString (), cigarString])));
+}}
+return  Clazz.newArray (-1, [operation, range]);
+}, "~S");
+Clazz.defineMethod (c$, "addOperation", 
+function (op, range) {
+if (op >= 'a' && op <= 'z') {
+op = String.fromCharCode (op.charCodeAt (0) - 32);
+}if (op != 'M' && op != 'D' && op != 'I') {
+throw  new Error (jalview.util.MessageManager.getString ("error.implementation_error_invalid_operation_string"));
+}if (range == 0) {
+return;
+}if (range < 0) {
+throw  new Error (jalview.util.MessageManager.getString ("error.invalid_range_string"));
+}var lngth = 0;
+if (this.operation == null) {
+this.operation =  Clazz.newCharArray (this._inc_length, '\0');
+this.range =  Clazz.newIntArray (this._inc_length, 0);
+}if (this.length + 1 == this.operation.length) {
+var ops = this.operation;
+this.operation =  Clazz.newCharArray (this.length + 1 + this._inc_length, '\0');
+System.arraycopy (ops, 0, this.operation, 0, this.length);
+ops = null;
+var rng = this.range;
+this.range =  Clazz.newIntArray (this.length + 1 + this._inc_length, 0);
+System.arraycopy (rng, 0, this.range, 0, this.length);
+rng = null;
+}if ((this.length > 0) && (this.operation[this.length - 1] == op)) {
+this.length--;
+} else {
+this.range[this.length] = 0;
+}this.operation[this.length] = op;
+this.range[this.length++] += range;
+}, "~S,~N");
+Clazz.defineMethod (c$, "deleteRange", 
+function (start, end) {
+var deleted = 0;
+if (this.length == 0) {
+return deleted;
+}if (start < 0 || start > end) {
+throw  new Error (jalview.util.MessageManager.getString ("error.implementation_error_delete_range_out_of_bounds"));
+}var cursor = 0;
+var rlength = 1 + end - start;
+var oldlen = this.length;
+var o = 0;
+var editing = false;
+var oldops = this.operation;
+var oldrange = this.range;
+this.length = 0;
+this.operation = null;
+this.range = null;
+this.compact_operations ();
+while (o < oldlen && cursor <= end && rlength > 0) {
+if (oldops[o] == 'D') {
+this.addDeleted (oldrange[o++]);
+continue;
+}var remain = oldrange[o];
+if (!editing) {
+if ((cursor + remain) <= start) {
+this.addOperation (oldops[o], oldrange[o]);
+cursor += oldrange[o++];
+continue;
+}editing = true;
+if (start - cursor > 0) {
+this.addOperation (oldops[o], start - cursor);
+remain -= start - cursor;
+}}if (o < oldlen && editing && rlength > 0 && remain > 0) {
+switch (oldops[o]) {
+case 'M':
+if (rlength > remain) {
+this.addDeleted (remain);
+deleted += remain;
+} else {
+deleted += rlength;
+this.addDeleted (rlength);
+if (remain - rlength > 0) {
+this.addOperation ('M', remain - rlength);
+}rlength = 0;
+remain = 0;
+}break;
+case 'I':
+if (remain - rlength > 0) {
+this.addInsertion (remain - rlength);
+rlength = 0;
+}break;
+case 'D':
+throw  new Error (jalview.util.MessageManager.getString ("error.implementation_error"));
+default:
+throw  new Error (jalview.util.MessageManager.formatMessage ("error.implementation_error_unknown_operation",  Clazz.newArray (-1, [ new StringBuffer (oldops[o].charCodeAt (0)).toString ()])));
+}
+rlength -= remain;
+remain = oldrange[++o];
+}}
+while (o < oldlen) {
+this.addOperation (oldops[o], oldrange[o++]);
+}
+return deleted;
+}, "~N,~N");
+Clazz.defineMethod (c$, "hasDeletedRegions", 
+function () {
+for (var i = 0; i < this.length; i++) {
+if (this.operation[i] == 'D') {
+return true;
+}}
+return false;
+});
+Clazz.defineMethod (c$, "getDeletedRegions", 
+function () {
+if (this.length == 0) {
+return null;
+}var dr =  new java.util.Vector ();
+var cursor = 0;
+var vcursor = 0;
+for (var i = 0; i < this.length; i++) {
+switch (this.operation[i]) {
+case 'M':
+cursor += this.range[i];
+case 'I':
+vcursor += this.range[i];
+break;
+case 'D':
+dr.addElement ( Clazz.newIntArray (-1, [vcursor, cursor, this.range[i]]));
+cursor += this.range[i];
+}
+}
+if (dr.size () == 0) {
+return null;
+}var delregions =  Clazz.newIntArray (dr.size () * 3, 0);
+for (var i = 0, l = dr.size (); i < l; i++) {
+var reg = dr.elementAt (i);
+delregions[i * 3] = reg[0];
+delregions[i * 3 + 1] = reg[1];
+delregions[i * 3 + 2] = reg[2];
+}
+return delregions;
+});
+Clazz.defineMethod (c$, "getFullWidth", 
+function () {
+var w = 0;
+if (this.range != null) {
+for (var i = 0; i < this.length; i++) {
+w += this.range[i];
+}
+}return w;
+});
+Clazz.defineMethod (c$, "getWidth", 
+function () {
+var w = 0;
+if (this.range != null) {
+for (var i = 0; i < this.length; i++) {
+if (this.operation[i] == 'M' || this.operation[i] == 'I') {
+w += this.range[i];
+}}
+}return w;
+});
+Clazz.defineMethod (c$, "addInsertion", 
+function (range) {
+this.addOperation ('I', range);
+}, "~N");
+Clazz.defineMethod (c$, "addDeleted", 
+function (range) {
+this.addOperation ('D', range);
+}, "~N");
+Clazz.defineMethod (c$, "getCigarstring", 
+function () {
+var cigarString =  new StringBuffer ();
+for (var i = 0; i < this.length; i++) {
+cigarString.append ("" + this.range[i]);
+cigarString.append (this.operation[i]);
+}
+return cigarString.toString ();
+});
+Clazz.defineStatics (c$,
+"D", 'D',
+"I", 'I',
+"M", 'M',
+"_case_shift", String.fromCharCode (32));
+});