All pastes #746013 Raw Edit

Someone

public java v1 · immutable
·published 2007-10-22 21:48 UTC
rendered paste body
/* Class9 - Decompiled by JODE * Visit http://jode.sourceforge.net/ * Renamed by Rictoo with help with around 3 methods from IRC (whitecastle, frank_, c|p) <3 */import java.awt.FontMetrics;import java.awt.Graphics;import java.net.MalformedURLException;import java.net.URL;public class MutableString implements Interface1 {    public static int anInt1669;    public static int anInt1670;    public static int anInt1672;    public static int anInt1673;    public static int anInt1674;    public static int anInt1675;    public static int anInt1676;    public static int anInt1678;    public static int anInt1679;    public static int anInt1680;    public static int anInt1681;    public static int anInt1682;    public static int anInt1683;    public static int anInt1685;    public static int anInt1686;    public static int anInt1687;    public static int anInt1688;    public static int anInt1689;    public static int anInt1690;    public static int anInt1691;    public static MutableString aClass9_1692 = Class26.method235(" from your ignore list first)3",            -1);    public static int anInt1693;    public static int anInt1694;    public static int anInt1695;    public static int anInt1696;    public static int anInt1697;    public static int anInt1698;    public static int anInt1699;    public static int anInt1700;    public static int anInt1701;    public static long aLong1702;    public static Class17 aClass17_1703;    public static int anInt1704;    public static int anInt1705;    public static int anInt1706;    public static int anInt1707;    public static int anInt1709;    public static int anInt1710;    public static int anInt1711;    public static int anInt1712;    public static int anInt1713;    public static int anInt1714;    public static MutableString aClass9_1715 = aClass9_1692;    public static int anInt1716;    public static int anInt1717;    public static Class27 aClass27_1718;    public static MutableString aClass9_1719;    public static MutableString aClass9_1720;    public static int anInt1721;    public static MutableString aClass9_1722;    public static int anInt1723;    public static MutableString aClass9_1724;    /*synthetic*/ public static Class aClass1725;    static {        aClass17_1703 = new Class17(32);        aClass9_1719 = Class26.method235("Sichtbare Karte vorbereitet)3", -1);        aClass9_1722 = Class26.method235("Error connecting to server)3", -1);        aClass9_1720 = aClass9_1722;        aClass9_1724 = Class26.method235("::gc", -1);        aClass27_1718 = new Class27();    }    public boolean editable = true;    public int length;    public byte[] stringData;    public int hashCache;    public static void method83(byte i) {        aClass9_1724 = null;        aClass9_1720 = null;        aClass17_1703 = null;        aClass9_1719 = null;        aClass9_1692 = null;        aClass9_1722 = null;        aClass27_1718 = null;        aClass9_1715 = null;        if (i != -37) {            aClass9_1715 = null;        }    }    public int method84(MutableString ms) {        int len;        if (ms.length < length) {            len = ms.length;        } else {            len = length;        }        anInt1696++;        for (int idx = 0; idx < len; idx++) {            if (Class73.anIntArray1371[0xff & ms.stringData[idx]] > Class73.anIntArray1371[0xff &                    stringData[idx]]) {                return -1;            }            if (Class73.anIntArray1371[0xff & ms.stringData[idx]] < Class73.anIntArray1371[0xff &                    stringData[idx]]) {                return 1;            }        }        if (ms.length > length) {            return -1;        }        if (ms.length < length) {            return 1;        }        return 0;    }    public int toInt() {        anInt1693++;        return toInt(10);    }    public MutableString substring(int i) {        anInt1674++;        return substring(i, length);    }    public int intHash() {        int hash = 0;        for (int idx = 0; idx < length; idx++)            hash = (stringData[idx] & 0xff) - hash + (hash << 5);        anInt1685++;        return hash;    }    public MutableString mask() {        MutableString ms = new MutableString();        anInt1710++;        ms.length = length;        ms.stringData = new byte[length];        for (int i_7_ = 0; i_7_ < length; i_7_++)            ms.stringData[i_7_] = (byte) '*';        return ms;    }        public MutableString trim() {    	// 0-32 are unprintable chars    	        int start = 0;        anInt1673++;               for (;                (start < length &&                ((stringData[start] >= 0 && stringData[start] <= 32) ||                (0xff & stringData[start]) == 160)); start++) {            /* empty */        }        int end;        for (end = length; end > start &&         		((stringData[end - 1] >= 0 &&                (stringData[end - 1] <= 32)) ||                ((0xff & stringData[end - 1]) == 160)); end--) {            /* empty */        }        if (start == 0 && length == end) {            return this;        }        MutableString ms = new MutableString();        ms.length = end - start;        ms.stringData = new byte[ms.length];        for (int idx = 0; idx < ms.length; idx++)            ms.stringData[idx] = stringData[start + idx];        return ms;    }    public int getStringWidth(FontMetrics fontmetrics) {        anInt1691++;        String string;        try {            string = new String(stringData, 0, length, "ISO-8859-1");        } catch (java.io.UnsupportedEncodingException uee) {            string = new String(stringData, 0, length);        }        return fontmetrics.stringWidth(string);    }    public String toString() {        anInt1700++;        throw new RuntimeException();    }    public int compareTo(MutableString ms) {        anInt1714++;        int i;        if (ms.length < length) {            i = ms.length;        } else {            i = length;        }        for (int idx = 0; idx < i; idx++) {            if ((0xff & ms.stringData[idx]) > (0xff & stringData[idx])) {                return -1;            }            if ((stringData[idx] & 0xff) > (ms.stringData[idx] & 0xff)) {                return 1;            }        }        if (ms.length > length) {            return -1;        }        if (length > ms.length) {            return 1;        }        return 0;    }    public int toInt(int radix) {        anInt1716++;        if (radix < 1 || radix > 36) {            radix = 10;        }        boolean negative = false;        int number = 0;        boolean validNumber = false;        for (int idx = 0; length > idx ; idx++) {            int b = 0xff & stringData[idx];            if (idx == 0) {                if (b == '-') {                    negative = true;                    continue;                }                if (b == '+') {                    continue;                }            }            if (b >= '0' && b <= '9') b -= 48;            else if (b >= 'A' && b <= 'Z') b -= 55;             else if (b >= 'a' && b <= 'z') b -= 87;            else throw new NumberFormatException();            if (b >= radix) {                throw new NumberFormatException();            }            if (negative) {                b = -b;            }            int i_19_ = b + (radix * number);            if (number != (i_19_ / radix))                 throw new NumberFormatException();            validNumber = true;            number = i_19_;        }        if (!validNumber) {            throw new NumberFormatException();        }        return number;    }    public int getLength() {        anInt1713++;        return length;    }    public boolean substringEquals(MutableString ms, int i) {        anInt1689++;        if (length < ms.length) {            return false;        }        for (int i_21_ = i; i_21_ < ms.length; i_21_++) {            if (stringData[i_21_] != ms.stringData[i_21_]) {                return false;            }        }        return true;    }    public static void method95(boolean bool) {        Class6.method76(113);        Class8.method82(10);        Class74_Sub7_Sub30.method700(false);        Class71_Sub2.method528((byte) 58);        anInt1686++;        Class74_Sub12_Sub14.method857((byte) -126);        Class74_Sub16.method1158(-1);        Class89.method1337((byte) -108);        Class74_Sub12_Sub5.method787(1);        Class74_Sub12_Sub6.method794((byte) -100);        Class74_Sub12_Sub16_Sub4.method913(69);        Class74_Sub12_Sub16_Sub2_Sub2.method884(-1);        if (bool != true) {            aClass27_1718 = null;        }        Class74_Sub12_Sub7.method803(126);        ((Class6) Class74_Sub12_Sub18_Sub4.anInterface2_3942).method69((byte) -8);        Class74_Sub7_Sub9.aClass70_2474.method517(false);        Class74_Sub7_Sub26.aClass46_Sub1_2830.method352((byte) -103);        Class7.aClass46_Sub1_151.method352((byte) -103);        Class5.aClass46_Sub1_135.method352((byte) -92);        Class74_Sub12.aClass46_Sub1_2006.method352((byte) -103);        Class38.aClass46_Sub1_760.method352((byte) -93);        Class83.aClass46_Sub1_1536.method352((byte) -123);        Class28.aClass46_Sub1_615.method352((byte) -93);        client.aClass46_Sub1_1772.method352((byte) -113);        Class51.aClass46_Sub1_975.method352((byte) -112);        Class74_Sub12_Sub10.aClass46_Sub1_3319.method352((byte) -116);        Class74_Sub7_Sub2.aClass46_Sub1_2345.method352((byte) -115);    }    public boolean equalsIgnoreCase(MutableString ms) {        anInt1699++;        if (ms == null) {            return false;        }        if (length != ms.length) {            return false;        }        for (int i_24_ = 0; i_24_ < length; i_24_++) {            byte i_25_ = ms.stringData[i_24_];            if ((i_25_ >= 'A' && i_25_ <= 'Z') ||                    (i_25_ >= -64 && i_25_<= -34 && i_25_ != -41)) {                i_25_ += 32; // Make it lower case            }            byte i_26_ = stringData[i_24_];            if ((i_26_ >= 'A' && i_26_<= 'Z') ||            		(i_26_ >= -64 && i_26_<= -34 && i_26_ != -41)) {                i_26_ += 32; // Make it lower case            }            if (i_25_ != i_26_) {                return false;            }        }        return true;    }    public boolean equals(Object object) {        anInt1675++;        if (object instanceof MutableString) {            return equals((MutableString) object);        }        throw new IllegalArgumentException();    }    public boolean endsWith(MutableString ms) {        anInt1687++;        if (ms.length > length) {            return false;        }        int off = length - ms.length;        for (int idx = 0; idx < ms.length; idx++) {            if (stringData[off + idx] != ms.stringData[idx]) {                return false;            }        }        return true;    }    public void drawString(Graphics graphics, int x, int y) {        anInt1704++;        String string;        try {            string = new String(stringData, 0, length, "ISO-8859-1");        } catch (java.io.UnsupportedEncodingException unsupportedencodingexception) {            string = new String(stringData, 0, length);        }        graphics.drawString(string, x, y);    }    public static void method99(int i, byte i_32_, int i_33_, Class22 class22) {        anInt1712++;        if ((Class6.aClass22_1735 == null) &&                !Class74_Sub12_Sub11.aBoolean3373 &&                ((class22 != null) &&                (Class74_Sub7_Sub7.method608(class22, 2) != null))) {            Class6.aClass22_1735 = class22;            Class74_Sub24.aClass22_2306 = Class74_Sub7_Sub7.method608(class22, 2);            Class20.anInt334 = i_33_;            Class69.anInt1317 = i;            Class74_Sub7_Sub26.anInt2822 = 0;            Class74_Sub12_Sub13.aBoolean3414 = false;            if (i_32_ != 118) {                method95(true);            }        }    }    public int indexOf(int ch, int fromIndex) {        anInt1705++;        byte c = (byte) ch;        int idx = fromIndex;        for (; idx < length; idx++) {            if (c == stringData[idx]) {                return idx;            }        }        return -1;    }    public MutableString capitalize() {        anInt1682++;        int c = 2; // 2 = Next is Uppercase, 1 = Neutral, 0 = Next is Lowercase        MutableString ms = new MutableString();        ms.length = length;        ms.stringData = new byte[length];        for (int idx = 0; idx < length; idx++) {            byte b = stringData[idx];            if ((b < 'a' || b > 'z') &&                    (b < -32 || b > -2 || b == -9)) {                if ((b >= 'A' && b <= 'Z') ||                        ((b >= -64) && (b <= -34) &&                        (b != -41))) {                    if (c == 0) {                        b += 32;                    }                    c = 0;                } else if (b == '.' || b == '!' || b == '?') {                    c = 2;                } else if (b != ' ') {                    c = 1;                } else if (c != 2) {                    c = 1;                }            } else {                if (c == 2) {                    b -= 32;                }                c = 0;            }            ms.stringData[idx] = b;        }        return ms;    }    public MutableString method102(boolean bool) {        anInt1678++;        long l = longHash();        synchronized ((aClass1725 != null) ? aClass1725                                           : (aClass1725 = method123("MutableString"))) {            if (Class46.aClass17_892 != null) {                for (Class74_Sub11 class74_sub11 = ((Class74_Sub11) Class46.aClass17_892.method175(                            l, (byte) 28)); class74_sub11 != null;                        class74_sub11 = ((Class74_Sub11) Class46.aClass17_892.method169(                                (byte) -97))) {                    if (equals(class74_sub11.aClass9_1995)) {                        return class74_sub11.aClass9_1995;                    }                }            } else {                Class46.aClass17_892 = new Class17(4096);            }            Class74_Sub11 class74_sub11 = new Class74_Sub11();            class74_sub11.aClass9_1995 = this;            editable = bool;            Class46.aClass17_892.method177(l, -117, class74_sub11);        }        return this;    }    public int method103(int i, int i_44_, MutableString class9_45_) {        anInt1711++;        int[] is = new int[class9_45_.length];        int[] is_46_ = new int[256];        int[] is_47_ = new int[class9_45_.length];        for (int i_48_ = 0; i_48_ < is_46_.length; i_48_++)            is_46_[i_48_] = class9_45_.length;        for (int i_49_ = 1;                (i_49_ ^ 0xffffffff) >= (class9_45_.length ^ 0xffffffff);                i_49_++) {            is[i_49_ - 1] = (class9_45_.length << 1557288257) + -i_49_;            is_46_[Class74_Sub7_Sub7.method607(255,                class9_45_.stringData[-1 + i_49_])] = -i_49_ +                class9_45_.length;        }        int i_50_ = 1 + class9_45_.length;        for (int i_51_ = class9_45_.length; i_51_ > 0; i_51_--) {            is_47_[i_51_ - 1] = i_50_;            for (;                    (((class9_45_.length ^ 0xffffffff) <= (i_50_ ^                    0xffffffff)) &&                    ((class9_45_.stringData[i_51_ + -1] ^ 0xffffffff) != (class9_45_.stringData[-1 +                    i_50_] ^ 0xffffffff))); i_50_ = is_47_[-1 + i_50_]) {                if ((is[i_50_ - 1] ^ 0xffffffff) <= ((-i_51_ +                        class9_45_.length) ^ 0xffffffff)) {                    is[-1 + i_50_] = class9_45_.length + -i_51_;                }            }            i_50_--;        }        int i_52_ = 0;        int i_53_ = 1;        int i_54_ = i_50_;        i_50_ = -i_54_ + (1 + class9_45_.length);        int i_55_ = 1;        while (i_50_ >= i_55_) {            is_47_[i_55_ + -1] = i_52_;            for (;                    (((i_52_ ^ 0xffffffff) <= -2) &&                    ((class9_45_.stringData[-1 + i_52_] ^ 0xffffffff) != (class9_45_.stringData[i_55_ -                    1] ^ 0xffffffff))); i_52_ = is_47_[i_52_ - 1]) {                /* empty */            }            i_55_++;            i_52_++;        }        if (i != -18621) {            aClass9_1692 = null;        }        while (i_54_ < class9_45_.length) {            for (int i_56_ = i_53_; i_54_ >= i_56_; i_56_++) {                if ((i_54_ + (class9_45_.length - i_56_)) <= is[-1 + i_56_]) {                    is[i_56_ + -1] = -i_56_ + (i_54_ + class9_45_.length);                }            }            i_53_ = i_54_ + 1;            i_54_ = -is_47_[-1 + i_50_] + (i_54_ + i_50_);            i_50_ = is_47_[-1 + i_50_];        }        int i_57_;        for (int i_58_ = -1 + (class9_45_.length + i_44_);                (i_58_ ^ 0xffffffff) > (length ^ 0xffffffff);                i_58_ += Math.max(is_46_[0xff & stringData[i_58_]],                    is[i_57_])) {            for (i_57_ = class9_45_.length - 1;                    (i_57_ >= 0) &&                    ((class9_45_.stringData[i_57_] ^ 0xffffffff) == (stringData[i_58_] ^                    0xffffffff)); i_57_--)                i_58_--;            if (i_57_ == -1) {                return 1 + i_58_;            }        }        return -1;    }    public MutableString appendChar(int ch) {        anInt1717++;        if (ch <= 0 || ch > 255) {            throw new IllegalArgumentException("invalid char:" + ch);        }        if (!editable) {            throw new IllegalArgumentException();        }        hashCache = 0;        if (stringData.length == length) {            int len = 1;            while(len <= length)                len <<= 1;                     byte[] is = new byte[len];            Class44.byteArrayCopy(stringData, 0, is, 0, length);            stringData = is;        }        stringData[length++] = (byte) ch;        return this;    }    public MutableString concat(MutableString ms) {        anInt1695++;        if (!editable) {            throw new IllegalArgumentException();        }        hashCache = 0;        if (stringData.length < (length + ms.length)) {            int len;            for (len = 1; len < (ms.length + length); len += len) {                /* empty */            }            byte[] is = new byte[len];            Class44.byteArrayCopy(stringData, 0, is, 0, length);            stringData = is;        }        Class44.byteArrayCopy(ms.stringData, 0, stringData, length, ms.length);        length += ms.length;        return this;    }    public MutableString substring(int off, int len) {        anInt1688++;        MutableString ms = new MutableString();        ms.stringData = new byte[len - off];        ms.length = len - off;        Class44.byteArrayCopy(stringData, off, ms.stringData, 0, ms.length);                return ms;    }    public MutableString appendCharC(int ch) {        anInt1681++;        if (ch <= 0 || ch > 255) {            throw new IllegalArgumentException("invalid char");        }        MutableString ms = new MutableString();        ms.stringData = new byte[length + 1];        ms.length = length + 1;        Class44.byteArrayCopy(stringData, 0, ms.stringData, 0, length);        ms.stringData[length] = (byte) ch;        return ms;    }    public int read(byte[] b, int len, int srcPos, int destPos) {        anInt1679++;        Class44.byteArrayCopy(stringData, srcPos, b, destPos, len - srcPos);        return len - srcPos;    }    public int hashCode() {        anInt1676++;        return intHash();    }    public MutableString adjustSize() {        anInt1698++;        if (!editable) {            throw new IllegalArgumentException();        }        hashCache = 0;        if (stringData.length != length) {            byte[] is = new byte[length];            Class44.byteArrayCopy(stringData, 0, is, 0, length);            stringData = is;        }        return this;    }    public int charAt(int i) {        anInt1697++;        return 0xff & stringData[i];    }    public boolean equals(MutableString ms) {        anInt1701++;        if (ms == null) {            return false;        }        if (length != ms.length) {            return false;        }        if (!editable || !ms.editable) {            if (hashCache == 0) {                hashCache = intHash();                if (hashCache == 0) {                    hashCache = 1;                }            }            if (ms.hashCache == 0) {                ms.hashCache = ms.intHash();                if (ms.hashCache== 0) {                    ms.hashCache = 1;                }            }            if (hashCache != ms.hashCache) {                return false;            }        }        for (int idx = 0; idx < length; idx++) {            if (stringData[idx] != ms.stringData[idx]) {                return false;            }        }        return true;    }    public byte[] getStringData() {        anInt1683++;        byte[] is = new byte[length];        Class44.byteArrayCopy(stringData, 0, is, 0, length);        return is;    }    public MutableString toLowercase(int i) {        anInt1672++;        MutableString ms = new MutableString();        ms.length = length;        ms.stringData = new byte[length];        if (i != 16864) {            aClass9_1719 = null;        }        for (int idx = 0; idx < length; idx++) {            byte b = stringData[idx];            if ((b >= 'A' && b <= 'Z') ||                    (b >= -64 && b <= -34 && b != -41)) {                b += 32;            }            ms.stringData[idx] = b;        }        return ms;    }    public MutableString deprepareUsername() {        anInt1690++;        MutableString ms = new MutableString();        boolean capital = true;        ms.length = length;        ms.stringData = new byte[length];        for (int idx = 0; idx < length; idx++) {            byte b = stringData[idx];            if (b != '_') {                if (b >= 'a' && b <= 'z' && capital) {                    ms.stringData[idx] = (byte) (b - 32);                } else {                    ms.stringData[idx] = b;                }                capital = false;            } else {                capital = true;                ms.stringData[idx] = (byte) ' ';            }        }        return ms;    }    public boolean isDecimal() {        anInt1723++;        return isNumber(10);    }    public long method116(byte i) {        if (i >= -73) {            return -84L;        }        anInt1669++;        long l = 0L;        for (int i_81_ = 0; (length ^ 0xffffffff) < (i_81_ ^ 0xffffffff);                i_81_++) {            if ((i_81_ ^ 0xffffffff) <= -13) {                break;            }            l *= 37L;            byte i_82_ = stringData[i_81_];            if ((i_82_ < 65) || (i_82_ > 90)) {                if (((i_82_ ^ 0xffffffff) > -98) ||                        ((i_82_ ^ 0xffffffff) < -123)) {                    if ((i_82_ >= 48) && (i_82_ <= 57)) {                        l += (long) (-21 + i_82_);                    }                } else {                    l += (long) (i_82_ + -96);                }            } else {                l += (long) (-65 + (i_82_ + 1));            }        }        for (; (((l % 37L) ^ 0xffffffffffffffffL) == -1L) && (l != 0L);                l /= 37L) {            /* empty */        }        return l;    }    public MutableString prepareUsername() {        anInt1694++;        MutableString ms = new MutableString();        int pos = 0;        ms.stringData = new byte[12];        ms.length = 0;        for (int idx = 0; length > idx; idx++) {            if (stringData[idx] < 'A' || stringData[idx] > 'Z') {                if ((stringData[idx] >= 'a' && stringData[idx] <= 'z') ||                        (stringData[idx] >= '0' && stringData[idx] <= '9')) {                    ms.stringData[pos++] = stringData[idx];                    ms.length = pos;                } else if (pos > 0) {                    ms.stringData[pos++] = (byte) '_';                }            } else {                ms.stringData[pos++] = (byte) (32 + stringData[idx]);                ms.length = pos;            }            if (pos == 12) {                break;            }        }        return ms;    }    public int method118(int i, MutableString class9_86_) {        if (i != 0) {            hashCache = -13;        }        anInt1670++;        return method103(-18621, 0, class9_86_);    }    public static int method119(int i, int i_87_) {        anInt1706++;        if (i < i_87_) {            int i_89_ = i;            i = i_87_;            i_87_ = i_89_;        }        int i_90_;        for (; i_87_ != 0; i_87_ = i_90_) {            i_90_ = i % i_87_;            i = i_87_;        }        return i;    }    public long longHash() {        long hash = 0L;        anInt1680++;        for (int i_91_ = 0; i_91_ < length; i_91_++)            hash = (long) (stringData[i_91_] & 0xff) + ((hash << -59) - hash);        return hash;    }    public boolean isNumber(int radix) { // frunk told me l0l        anInt1707++;        if (radix < 1 || radix > 36) {            radix = 10;        }        boolean negative = false;        int i_93_ = 0;        boolean number = false;        for (int idx = 0; idx < length; idx++) {            int b = stringData[idx] & 0xff;            if (idx == 0) {                if (b == '-') {                    negative = true;                    continue;                }                if (b == '+') {                    continue;                }            }            if (b >= '0' && b <= '9') {                b -= 48;            } else if (b >= 'A' && b <= 'Z') {                b -= 55;            } else if (b >= 'a' && b <= 'z') {                b -= 87;            } else {                return false;            }            if (radix <= b) {                return false;            }            if (negative) {                b = -b;            }            int i_97_ = b + (i_93_ * radix);            if (i_93_ != (i_97_ / radix)) {                return false;            }            number = true;            i_93_ = i_97_;        }        return number;    }    public URL toURL() throws MalformedURLException {        anInt1709++;        return new URL(new String(stringData, 0, length));    }    /*synthetic*/ public static Class method123(String string) {        try {            return Class.forName(string);        } catch (ClassNotFoundException classnotfoundexception) {            throw new NoClassDefFoundError(classnotfoundexception.getMessage());        }    }}