X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=site%2Fj2s%2Fjava%2Futil%2FBitSet.js;h=e52c16aa99c84b0d2b04048040eaaa9023bc5b38;hp=56849cfcb5007d1129f4a87dcc2bb2ab77cb3e7f;hb=b9b7a352eee79b7764c3b09c9d19663075061d8c;hpb=7301a2415adab88038b291fc54caeeb3a5a47a44 diff --git a/site/j2s/java/util/BitSet.js b/site/j2s/java/util/BitSet.js index 56849cf..e52c16a 100644 --- a/site/j2s/java/util/BitSet.js +++ b/site/j2s/java/util/BitSet.js @@ -1,288 +1,288 @@ -Clazz.load (null, "java.util.BitSet", ["java.lang.IndexOutOfBoundsException", "$.NegativeArraySizeException", "$.StringBuffer", "java.util.Arrays"], function () { -c$ = Clazz.decorateAsClass (function () { -this.bits = null; -Clazz.instantialize (this, arguments); -}, java.util, "BitSet", null, [Cloneable, java.io.Serializable]); -Clazz.makeConstructor (c$, -function () { -this.construct (32); -}); -Clazz.makeConstructor (c$, -function (nbits) { -if (nbits < 0) throw new NegativeArraySizeException (); -var length = nbits >>> 5; -if ((nbits & 4) != 0) ++length; -this.bits = Clazz.newArray (length, 0); -}, "~N"); -Clazz.defineMethod (c$, "and", -function (bs) { -var max = Math.min (this.bits.length, bs.bits.length); -var i; -for (i = 0; i < max; ++i) this.bits[i] &= bs.bits[i]; - -while (i < this.bits.length) this.bits[i++] = 0; - -}, "java.util.BitSet"); -Clazz.defineMethod (c$, "andNot", -function (bs) { -var i = Math.min (this.bits.length, bs.bits.length); -while (--i >= 0) { -this.bits[i] &= ~bs.bits[i]; -} -}, "java.util.BitSet"); -Clazz.defineMethod (c$, "cardinality", -function () { -var card = 0; -for (var i = this.bits.length - 1; i >= 0; i--) { -var a = this.bits[i]; -if (a == 0) continue ;if (a == -1) { -card += 32; -continue ;}a = ((a >> 1) & 0x55555555) + (a & 0x55555555); -a = ((a >> 2) & 0x33333333) + (a & 0x33333333); -a = ((a >> 4) & 0x0f0f0f0f) + (a & 0x0f0f0f0f); -a = ((a >> 8) & 0x00ff00ff) + (a & 0x00ff00ff); -card += ((a >> 16) & 0x0000ffff) + (a & 0x0000ffff); -} -return card; -}); -Clazz.defineMethod (c$, "clear", -function () { -java.util.Arrays.fill (this.bits, 0); -}); -Clazz.defineMethod (c$, "clear", -function (pos) { -var offset = pos >> 5; -this.ensure (offset); -this.bits[offset] &= ~(1 << pos); -}, "~N"); -Clazz.defineMethod (c$, "clear", -function (from, to) { -if (from < 0 || from > to) throw new IndexOutOfBoundsException (); -if (from == to) return ; -var lo_offset = from >>> 5; -var hi_offset = to >>> 5; -this.ensure (hi_offset); -if (lo_offset == hi_offset) { -this.bits[hi_offset] &= ((1 << from) - 1) | (-1 << to); -return ; -}this.bits[lo_offset] &= (1 << from) - 1; -this.bits[hi_offset] &= -1 << to; -for (var i = lo_offset + 1; i < hi_offset; i++) this.bits[i] = 0; - -}, "~N,~N"); -Clazz.defineMethod (c$, "clone", -function () { -try { -var bs = Clazz.superCall (this, java.util.BitSet, "clone", []); -bs.bits = this.bits.clone (); -return bs; -} catch (e) { -if (Clazz.exceptionOf (e, CloneNotSupportedException)) { -return null; -} else { -throw e; -} -} -}); -Clazz.overrideMethod(c$, "equals", -function (obj) { -if (!(Clazz.instanceOf (obj, java.util.BitSet))) return false; -var bs = obj; -var max = Math.min (this.bits.length, bs.bits.length); -var i; -for (i = 0; i < max; ++i) if (this.bits[i] != bs.bits[i]) return false; - -for (var j = i; j < this.bits.length; ++j) if (this.bits[j] != 0) return false; - -for (var j = i; j < bs.bits.length; ++j) if (bs.bits[j] != 0) return false; - -return true; -}, "~O"); -Clazz.defineMethod (c$, "flip", -function (index) { -var offset = index >> 5; -this.ensure (offset); -this.bits[offset] ^= 1 << index; -}, "~N"); -Clazz.defineMethod (c$, "flip", -function (from, to) { -if (from < 0 || from > to) throw new IndexOutOfBoundsException (); -if (from == to) return ; -var lo_offset = from >>> 5; -var hi_offset = to >>> 5; -this.ensure (hi_offset); -if (lo_offset == hi_offset) { -this.bits[hi_offset] ^= (-1 << from) & ((1 << to) - 1); -return ; -}this.bits[lo_offset] ^= -1 << from; -this.bits[hi_offset] ^= (1 << to) - 1; -for (var i = lo_offset + 1; i < hi_offset; i++) this.bits[i] ^= -1; - -}, "~N,~N"); -Clazz.defineMethod (c$, "get", -function (pos) { -var offset = pos >> 5; -if (offset >= this.bits.length) return false; -return (this.bits[offset] & (1 << pos)) != 0; -}, "~N"); -Clazz.defineMethod (c$, "get", -function (from, to) { -if (from < 0 || from > to) throw new IndexOutOfBoundsException (); -var bs = new java.util.BitSet (to - from); -var lo_offset = from >>> 5; -if (lo_offset >= this.bits.length) return bs; -var lo_bit = from & 4; -var hi_offset = to >>> 5; -if (lo_bit == 0) { -var len = Math.min (hi_offset - lo_offset + 1, this.bits.length - lo_offset); -System.arraycopy (this.bits, lo_offset, bs.bits, 0, len); -if (hi_offset < this.bits.length) bs.bits[hi_offset - lo_offset] &= (1 << to) - 1; -return bs; -}var len = Math.min (hi_offset, this.bits.length - 1); -var reverse = ~lo_bit; -var i; -for (i = 0; lo_offset < len; lo_offset++, i++) bs.bits[i] = ((this.bits[lo_offset] >>> lo_bit) | (this.bits[lo_offset + 1] << reverse)); - -if ((to & 4) > lo_bit) bs.bits[i++] = this.bits[lo_offset] >>> lo_bit; -if (hi_offset < this.bits.length) bs.bits[i - 1] &= (1 << (to - from)) - 1; -return bs; -}, "~N,~N"); -Clazz.overrideMethod(c$, "hashCode", -function () { -var h = 1234; -for (var i = this.bits.length; i > 0; ) h ^= i * this.bits[--i]; - -return h; -}); -Clazz.defineMethod (c$, "intersects", -function (set) { -var i = Math.min (this.bits.length, set.bits.length); -while (--i >= 0) if ((this.bits[i] & set.bits[i]) != 0) return true; - -return false; -}, "java.util.BitSet"); -Clazz.defineMethod (c$, "isEmpty", -function () { -for (var i = this.bits.length - 1; i >= 0; i--) if (this.bits[i] != 0) return false; - -return true; -}); -Clazz.defineMethod (c$, "length", -function () { -var i; -for (i = this.bits.length - 1; i >= 0 && this.bits[i] == 0; --i) ; -if (i < 0) return 0; -var b = this.bits[i]; -var len = (i + 1) * 32; -while ((b & 0x80000000) == 0) { ---len; -b <<= 1; -} -return len; -}); -Clazz.defineMethod (c$, "nextClearBit", -function (from) { -var offset = from >> 5; -var mask = 1 << from; -while (offset < this.bits.length) { -var h = this.bits[offset]; -do { -if ((h & mask) == 0) return from; -mask <<= 1; -from++; -} while (mask != 0); -mask = 1; -offset++; -} -return from; -}, "~N"); -Clazz.defineMethod (c$, "nextSetBit", -function (from) { -var offset = from >> 5; -var mask = 1 << from; -while (offset < this.bits.length) { -var h = this.bits[offset]; -do { -if ((h & mask) != 0) return from; -mask <<= 1; -from++; -} while (mask != 0); -mask = 1; -offset++; -} -return -1; -}, "~N"); -Clazz.defineMethod (c$, "or", -function (bs) { -this.ensure (bs.bits.length - 1); -for (var i = bs.bits.length - 1; i >= 0; i--) this.bits[i] |= bs.bits[i]; - -}, "java.util.BitSet"); -Clazz.defineMethod (c$, "set", -function (pos) { -var offset = pos >> 5; -this.ensure (offset); -this.bits[offset] |= 1 << pos; -}, "~N"); -Clazz.defineMethod (c$, "set", -function (index, value) { -if (value) this.set (index); - else this.clear (index); -}, "~N,~B"); -Clazz.defineMethod (c$, "set", -function (from, to) { -if (from < 0 || from > to) throw new IndexOutOfBoundsException (); -if (from == to) return ; -var lo_offset = from >>> 5; -var hi_offset = to >>> 5; -this.ensure (hi_offset); -if (lo_offset == hi_offset) { -this.bits[hi_offset] |= (-1 << from) & ((1 << to) - 1); -return ; -}this.bits[lo_offset] |= -1 << from; -this.bits[hi_offset] |= (1 << to) - 1; -for (var i = lo_offset + 1; i < hi_offset; i++) this.bits[i] = -1; - -}, "~N,~N"); -Clazz.defineMethod (c$, "set", -function (from, to, value) { -if (value) this.set (from, to); - else this.clear (from, to); -}, "~N,~N,~B"); -Clazz.defineMethod (c$, "size", -function () { -return this.bits.length * 32; -}); -Clazz.overrideMethod(c$, "toString", -function () { -var r = new StringBuffer ("{"); -var first = true; -for (var i = 0; i < this.bits.length; ++i) { -var bit = 1; -var word = this.bits[i]; -if (word == 0) continue ;for (var j = 0; j < 32; ++j) { -if ((word & bit) != 0) { -if (!first) r.append (", "); -r.append (32 * i + j); -first = false; -}bit <<= 1; -} -} -return r.append ("}").toString (); -}); -Clazz.defineMethod (c$, "xor", -function (bs) { -this.ensure (bs.bits.length - 1); -for (var i = bs.bits.length - 1; i >= 0; i--) this.bits[i] ^= bs.bits[i]; - -}, "java.util.BitSet"); -Clazz.defineMethod (c$, "ensure", - function (lastElt) { -if (lastElt >= this.bits.length) { -var nd = Clazz.newArray (lastElt + 1, 0); -System.arraycopy (this.bits, 0, nd, 0, this.bits.length); -this.bits = nd; -}}, "~N"); -Clazz.defineStatics (c$, -"INT_MASK", 0x4); -}); +Clazz.load (null, "java.util.BitSet", ["java.lang.IndexOutOfBoundsException", "$.NegativeArraySizeException", "$.StringBuffer", "java.util.Arrays"], function () { +c$ = Clazz.decorateAsClass (function () { +this.bits = null; +Clazz.instantialize (this, arguments); +}, java.util, "BitSet", null, [Cloneable, java.io.Serializable]); +Clazz.makeConstructor (c$, +function () { +this.construct (32); +}); +Clazz.makeConstructor (c$, +function (nbits) { +if (nbits < 0) throw new NegativeArraySizeException (); +var length = nbits >>> 5; +if ((nbits & 4) != 0) ++length; +this.bits = Clazz.newArray (length, 0); +}, "~N"); +Clazz.defineMethod (c$, "and", +function (bs) { +var max = Math.min (this.bits.length, bs.bits.length); +var i; +for (i = 0; i < max; ++i) this.bits[i] &= bs.bits[i]; + +while (i < this.bits.length) this.bits[i++] = 0; + +}, "java.util.BitSet"); +Clazz.defineMethod (c$, "andNot", +function (bs) { +var i = Math.min (this.bits.length, bs.bits.length); +while (--i >= 0) { +this.bits[i] &= ~bs.bits[i]; +} +}, "java.util.BitSet"); +Clazz.defineMethod (c$, "cardinality", +function () { +var card = 0; +for (var i = this.bits.length - 1; i >= 0; i--) { +var a = this.bits[i]; +if (a == 0) continue ;if (a == -1) { +card += 32; +continue ;}a = ((a >> 1) & 0x55555555) + (a & 0x55555555); +a = ((a >> 2) & 0x33333333) + (a & 0x33333333); +a = ((a >> 4) & 0x0f0f0f0f) + (a & 0x0f0f0f0f); +a = ((a >> 8) & 0x00ff00ff) + (a & 0x00ff00ff); +card += ((a >> 16) & 0x0000ffff) + (a & 0x0000ffff); +} +return card; +}); +Clazz.defineMethod (c$, "clear", +function () { +java.util.Arrays.fill (this.bits, 0); +}); +Clazz.defineMethod (c$, "clear", +function (pos) { +var offset = pos >> 5; +this.ensure (offset); +this.bits[offset] &= ~(1 << pos); +}, "~N"); +Clazz.defineMethod (c$, "clear", +function (from, to) { +if (from < 0 || from > to) throw new IndexOutOfBoundsException (); +if (from == to) return ; +var lo_offset = from >>> 5; +var hi_offset = to >>> 5; +this.ensure (hi_offset); +if (lo_offset == hi_offset) { +this.bits[hi_offset] &= ((1 << from) - 1) | (-1 << to); +return ; +}this.bits[lo_offset] &= (1 << from) - 1; +this.bits[hi_offset] &= -1 << to; +for (var i = lo_offset + 1; i < hi_offset; i++) this.bits[i] = 0; + +}, "~N,~N"); +Clazz.defineMethod (c$, "clone", +function () { +try { +var bs = Clazz.superCall (this, java.util.BitSet, "clone", []); +bs.bits = this.bits.clone (); +return bs; +} catch (e) { +if (Clazz.exceptionOf (e, CloneNotSupportedException)) { +return null; +} else { +throw e; +} +} +}); +Clazz.overrideMethod(c$, "equals", +function (obj) { +if (!(Clazz.instanceOf (obj, java.util.BitSet))) return false; +var bs = obj; +var max = Math.min (this.bits.length, bs.bits.length); +var i; +for (i = 0; i < max; ++i) if (this.bits[i] != bs.bits[i]) return false; + +for (var j = i; j < this.bits.length; ++j) if (this.bits[j] != 0) return false; + +for (var j = i; j < bs.bits.length; ++j) if (bs.bits[j] != 0) return false; + +return true; +}, "~O"); +Clazz.defineMethod (c$, "flip", +function (index) { +var offset = index >> 5; +this.ensure (offset); +this.bits[offset] ^= 1 << index; +}, "~N"); +Clazz.defineMethod (c$, "flip", +function (from, to) { +if (from < 0 || from > to) throw new IndexOutOfBoundsException (); +if (from == to) return ; +var lo_offset = from >>> 5; +var hi_offset = to >>> 5; +this.ensure (hi_offset); +if (lo_offset == hi_offset) { +this.bits[hi_offset] ^= (-1 << from) & ((1 << to) - 1); +return ; +}this.bits[lo_offset] ^= -1 << from; +this.bits[hi_offset] ^= (1 << to) - 1; +for (var i = lo_offset + 1; i < hi_offset; i++) this.bits[i] ^= -1; + +}, "~N,~N"); +Clazz.defineMethod (c$, "get", +function (pos) { +var offset = pos >> 5; +if (offset >= this.bits.length) return false; +return (this.bits[offset] & (1 << pos)) != 0; +}, "~N"); +Clazz.defineMethod (c$, "get", +function (from, to) { +if (from < 0 || from > to) throw new IndexOutOfBoundsException (); +var bs = new java.util.BitSet (to - from); +var lo_offset = from >>> 5; +if (lo_offset >= this.bits.length) return bs; +var lo_bit = from & 4; +var hi_offset = to >>> 5; +if (lo_bit == 0) { +var len = Math.min (hi_offset - lo_offset + 1, this.bits.length - lo_offset); +System.arraycopy (this.bits, lo_offset, bs.bits, 0, len); +if (hi_offset < this.bits.length) bs.bits[hi_offset - lo_offset] &= (1 << to) - 1; +return bs; +}var len = Math.min (hi_offset, this.bits.length - 1); +var reverse = ~lo_bit; +var i; +for (i = 0; lo_offset < len; lo_offset++, i++) bs.bits[i] = ((this.bits[lo_offset] >>> lo_bit) | (this.bits[lo_offset + 1] << reverse)); + +if ((to & 4) > lo_bit) bs.bits[i++] = this.bits[lo_offset] >>> lo_bit; +if (hi_offset < this.bits.length) bs.bits[i - 1] &= (1 << (to - from)) - 1; +return bs; +}, "~N,~N"); +Clazz.overrideMethod(c$, "hashCode", +function () { +var h = 1234; +for (var i = this.bits.length; i > 0; ) h ^= i * this.bits[--i]; + +return h; +}); +Clazz.defineMethod (c$, "intersects", +function (set) { +var i = Math.min (this.bits.length, set.bits.length); +while (--i >= 0) if ((this.bits[i] & set.bits[i]) != 0) return true; + +return false; +}, "java.util.BitSet"); +Clazz.defineMethod (c$, "isEmpty", +function () { +for (var i = this.bits.length - 1; i >= 0; i--) if (this.bits[i] != 0) return false; + +return true; +}); +Clazz.defineMethod (c$, "length", +function () { +var i; +for (i = this.bits.length - 1; i >= 0 && this.bits[i] == 0; --i) ; +if (i < 0) return 0; +var b = this.bits[i]; +var len = (i + 1) * 32; +while ((b & 0x80000000) == 0) { +--len; +b <<= 1; +} +return len; +}); +Clazz.defineMethod (c$, "nextClearBit", +function (from) { +var offset = from >> 5; +var mask = 1 << from; +while (offset < this.bits.length) { +var h = this.bits[offset]; +do { +if ((h & mask) == 0) return from; +mask <<= 1; +from++; +} while (mask != 0); +mask = 1; +offset++; +} +return from; +}, "~N"); +Clazz.defineMethod (c$, "nextSetBit", +function (from) { +var offset = from >> 5; +var mask = 1 << from; +while (offset < this.bits.length) { +var h = this.bits[offset]; +do { +if ((h & mask) != 0) return from; +mask <<= 1; +from++; +} while (mask != 0); +mask = 1; +offset++; +} +return -1; +}, "~N"); +Clazz.defineMethod (c$, "or", +function (bs) { +this.ensure (bs.bits.length - 1); +for (var i = bs.bits.length - 1; i >= 0; i--) this.bits[i] |= bs.bits[i]; + +}, "java.util.BitSet"); +Clazz.defineMethod (c$, "set", +function (pos) { +var offset = pos >> 5; +this.ensure (offset); +this.bits[offset] |= 1 << pos; +}, "~N"); +Clazz.defineMethod (c$, "set", +function (index, value) { +if (value) this.set (index); + else this.clear (index); +}, "~N,~B"); +Clazz.defineMethod (c$, "set", +function (from, to) { +if (from < 0 || from > to) throw new IndexOutOfBoundsException (); +if (from == to) return ; +var lo_offset = from >>> 5; +var hi_offset = to >>> 5; +this.ensure (hi_offset); +if (lo_offset == hi_offset) { +this.bits[hi_offset] |= (-1 << from) & ((1 << to) - 1); +return ; +}this.bits[lo_offset] |= -1 << from; +this.bits[hi_offset] |= (1 << to) - 1; +for (var i = lo_offset + 1; i < hi_offset; i++) this.bits[i] = -1; + +}, "~N,~N"); +Clazz.defineMethod (c$, "set", +function (from, to, value) { +if (value) this.set (from, to); + else this.clear (from, to); +}, "~N,~N,~B"); +Clazz.defineMethod (c$, "size", +function () { +return this.bits.length * 32; +}); +Clazz.overrideMethod(c$, "toString", +function () { +var r = new StringBuffer ("{"); +var first = true; +for (var i = 0; i < this.bits.length; ++i) { +var bit = 1; +var word = this.bits[i]; +if (word == 0) continue ;for (var j = 0; j < 32; ++j) { +if ((word & bit) != 0) { +if (!first) r.append (", "); +r.append (32 * i + j); +first = false; +}bit <<= 1; +} +} +return r.append ("}").toString (); +}); +Clazz.defineMethod (c$, "xor", +function (bs) { +this.ensure (bs.bits.length - 1); +for (var i = bs.bits.length - 1; i >= 0; i--) this.bits[i] ^= bs.bits[i]; + +}, "java.util.BitSet"); +Clazz.defineMethod (c$, "ensure", + function (lastElt) { +if (lastElt >= this.bits.length) { +var nd = Clazz.newArray (lastElt + 1, 0); +System.arraycopy (this.bits, 0, nd, 0, this.bits.length); +this.bits = nd; +}}, "~N"); +Clazz.defineStatics (c$, +"INT_MASK", 0x4); +});