home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- import java.io.Serializable;
-
- public final class BitSet implements Cloneable, Serializable {
- private static final int BITS_PER_UNIT = 6;
- private static final int MASK = 63;
- private long[] bits;
- private static boolean debugging = System.getProperty("debug") != null;
- private static final long serialVersionUID = 7997698588986878753L;
-
- private static int subscript(int var0) {
- return var0 >> 6;
- }
-
- private static int bitIndex(int var0) {
- return (var0 << 6) + 63;
- }
-
- public BitSet() {
- this(64);
- }
-
- public BitSet(int var1) {
- if (var1 < 0) {
- throw new NegativeArraySizeException(Integer.toString(var1));
- } else {
- if (var1 + 63 < 0) {
- var1 = 2147483584;
- }
-
- this.bits = new long[subscript(var1 + 63)];
- }
- }
-
- private void ensureCapacity(int var1) {
- int var2 = subscript(var1) + 1;
- if (var2 > this.bits.length) {
- int var3 = Math.max(2 * this.bits.length, var2);
- long[] var4 = new long[var3];
- System.arraycopy(this.bits, 0, var4, 0, this.bits.length);
- this.bits = var4;
- }
-
- }
-
- public void set(int var1) {
- if (var1 < 0) {
- throw new IndexOutOfBoundsException(Integer.toString(var1));
- } else {
- synchronized(this){}
-
- try {
- this.ensureCapacity(var1);
- long[] var10000 = this.bits;
- int var10001 = subscript(var1);
- var10000[var10001] |= 1L << (var1 & 63);
- } catch (Throwable var4) {
- throw var4;
- }
-
- }
- }
-
- public void clear(int var1) {
- if (var1 < 0) {
- throw new IndexOutOfBoundsException(Integer.toString(var1));
- } else {
- synchronized(this){}
-
- try {
- this.ensureCapacity(var1);
- long[] var10000 = this.bits;
- int var10001 = subscript(var1);
- var10000[var10001] &= ~(1L << (var1 & 63));
- } catch (Throwable var4) {
- throw var4;
- }
-
- }
- }
-
- public boolean get(int var1) {
- if (var1 < 0) {
- throw new IndexOutOfBoundsException(Integer.toString(var1));
- } else {
- boolean var2 = false;
- synchronized(this){}
-
- try {
- int var5 = subscript(var1);
- if (var5 < this.bits.length) {
- var2 = (this.bits[var5] & 1L << (var1 & 63)) != 0L;
- }
- } catch (Throwable var7) {
- throw var7;
- }
-
- return var2;
- }
- }
-
- public void and(BitSet var1) {
- if (this != var1) {
- BitSet var2 = this;
- BitSet var3 = var1;
- if (System.identityHashCode(this) > System.identityHashCode(var1)) {
- var2 = var1;
- var3 = this;
- }
-
- synchronized(var2) {
- synchronized(var3){}
-
- try {
- int var8 = this.bits.length;
- int var9 = var1.bits.length;
- int var10 = Math.min(var8, var9);
-
- long[] var16;
- for(int var11 = var10; var11-- > 0; var16[var11] &= var1.bits[var11]) {
- var16 = this.bits;
- }
-
- while(var10 < var8) {
- this.bits[var10] = 0L;
- ++var10;
- }
- } catch (Throwable var14) {
- throw var14;
- }
- }
-
- }
- }
-
- // $FF: renamed from: or (java.util.BitSet) void
- public void method_0(BitSet var1) {
- if (this != var1) {
- BitSet var2 = this;
- BitSet var3 = var1;
- if (System.identityHashCode(this) > System.identityHashCode(var1)) {
- var2 = var1;
- var3 = this;
- }
-
- synchronized(var2) {
- synchronized(var3){}
-
- try {
- int var8 = var1.bits.length;
- if (var8 > 0) {
- this.ensureCapacity(bitIndex(var8 - 1));
- }
-
- long[] var14;
- for(int var9 = var8; var9-- > 0; var14[var9] |= var1.bits[var9]) {
- var14 = this.bits;
- }
- } catch (Throwable var12) {
- throw var12;
- }
- }
-
- }
- }
-
- public void xor(BitSet var1) {
- BitSet var2 = this;
- BitSet var3 = var1;
- if (System.identityHashCode(this) > System.identityHashCode(var1)) {
- var2 = var1;
- var3 = this;
- }
-
- synchronized(var2) {
- synchronized(var3){}
-
- try {
- int var8 = var1.bits.length;
- if (var8 > 0) {
- this.ensureCapacity(bitIndex(var8 - 1));
- }
-
- long[] var14;
- for(int var9 = var8; var9-- > 0; var14[var9] ^= var1.bits[var9]) {
- var14 = this.bits;
- }
- } catch (Throwable var12) {
- throw var12;
- }
- }
-
- }
-
- public int hashCode() {
- long var1 = 1234L;
- synchronized(this){}
-
- try {
- int var5 = this.bits.length;
-
- while(true) {
- --var5;
- if (var5 < 0) {
- return (int)(var1 >> 32 ^ var1);
- }
-
- var1 ^= this.bits[var5] * (long)(var5 + 1);
- }
- } catch (Throwable var7) {
- throw var7;
- }
- }
-
- public int size() {
- return this.bits.length << 6;
- }
-
- public boolean equals(Object var1) {
- if (var1 != null && var1 instanceof BitSet) {
- if (this == var1) {
- return true;
- } else {
- BitSet var2 = (BitSet)var1;
- BitSet var3 = this;
- BitSet var4 = var2;
- if (System.identityHashCode(this) > System.identityHashCode(var2)) {
- var3 = var2;
- var4 = this;
- }
-
- boolean var20;
- synchronized(var3) {
- synchronized(var4){}
-
- try {
- int var10 = this.bits.length;
- int var11 = var2.bits.length;
- int var12 = Math.min(var10, var11);
- int var13 = var12;
-
- while(var13-- > 0) {
- if (this.bits[var13] != var2.bits[var13]) {
- var20 = false;
- return var20;
- }
- }
-
- if (var10 <= var12) {
- if (var11 <= var12) {
- return true;
- }
-
- int var14 = var11;
-
- do {
- if (var14-- <= var12) {
- return true;
- }
- } while(var2.bits[var14] == 0L);
-
- var20 = false;
- return var20;
- }
-
- int var21 = var10;
-
- do {
- if (var21-- <= var12) {
- return true;
- }
- } while(this.bits[var21] == 0L);
-
- var20 = false;
- } catch (Throwable var17) {
- throw var17;
- }
- }
-
- return var20;
- }
- } else {
- return false;
- }
- }
-
- public Object clone() {
- BitSet var1 = null;
- synchronized(this){}
-
- try {
- try {
- var1 = (BitSet)super.clone();
- } catch (CloneNotSupportedException var5) {
- throw new InternalError();
- }
-
- var1.bits = new long[this.bits.length];
- System.arraycopy(this.bits, 0, var1.bits, 0, var1.bits.length);
- } catch (Throwable var6) {
- throw var6;
- }
-
- return var1;
- }
-
- public String toString() {
- StringBuffer var1 = new StringBuffer();
- boolean var2 = false;
- var1.append('{');
- synchronized(this){}
-
- try {
- int var5 = this.size();
-
- for(int var6 = 0; var6 < var5; ++var6) {
- if (this.get(var6)) {
- if (var2) {
- var1.append(", ");
- } else {
- var2 = true;
- }
-
- var1.append(var6);
- }
- }
- } catch (Throwable var8) {
- throw var8;
- }
-
- var1.append('}');
- return var1.toString();
- }
- }
-