/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.NullOutputStream
 *  com.l7tech.util.ConfigFactory
 */
package com.l7tech.server.log;

import com.l7tech.common.io.NullOutputStream;
import com.l7tech.util.ConfigFactory;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.Formatter;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;

public class LoggingPrintStream
extends PrintStream {
    private final Logger a;
    private final Level b;
    private ThreadLocal<StringBuilder> c = new ThreadLocal();
    private final int d;
    private static final String[] e;

    public LoggingPrintStream(Logger logger, Level level) {
        super((OutputStream)new NullOutputStream(), true);
        String[] stringArray = e;
        this.d = ConfigFactory.getIntProperty((String)stringArray[2], (int)256);
        if (logger == null) {
            throw new IllegalArgumentException(stringArray[1]);
        }
        try {
            if (level == null) {
                throw new IllegalArgumentException(e[0]);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw LoggingPrintStream.a(illegalArgumentException);
        }
        this.a = logger;
        this.b = level;
    }

    @Override
    public PrintStream append(char c10) {
        this.a(Character.toString(c10), false);
        return this;
    }

    @Override
    public PrintStream append(CharSequence charSequence) {
        try {
            if (charSequence != null) {
                this.a(charSequence.toString(), false);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw LoggingPrintStream.a(illegalArgumentException);
        }
        return this;
    }

    @Override
    public PrintStream append(CharSequence charSequence, int n2, int n3) {
        try {
            if (charSequence != null) {
                this.a(charSequence.subSequence(n2, n3).toString(), false);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw LoggingPrintStream.a(illegalArgumentException);
        }
        return this;
    }

    @Override
    public void print(boolean bl2) {
        this.a(Boolean.toString(bl2), false);
    }

    @Override
    public void print(char c10) {
        this.a(Character.toString(c10), false);
    }

    @Override
    public void print(double d10) {
        this.a(Double.toString(d10), false);
    }

    @Override
    public void print(float f2) {
        this.a(Float.toString(f2), false);
    }

    @Override
    public void print(int n2) {
        this.a(Integer.toString(n2), false);
    }

    @Override
    public void print(long l2) {
        this.a(Long.toString(l2), false);
    }

    @Override
    public void print(Object object) {
        try {
            if (object != null) {
                this.a(object.toString(), false);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw LoggingPrintStream.a(illegalArgumentException);
        }
    }

    @Override
    public void print(char[] cArray) {
        try {
            if (cArray != null) {
                this.a(new String(cArray), false);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw LoggingPrintStream.a(illegalArgumentException);
        }
    }

    @Override
    public void print(String string) {
        try {
            if (string != null) {
                this.a(string, false);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw LoggingPrintStream.a(illegalArgumentException);
        }
    }

    @Override
    public void println() {
        this.a("", true);
    }

    @Override
    public void println(boolean bl2) {
        this.a(Boolean.toString(bl2), true);
    }

    @Override
    public void println(char c10) {
        this.a(Character.toString(c10), true);
    }

    @Override
    public void println(char[] cArray) {
        try {
            if (cArray != null) {
                this.a(new String(cArray), true);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw LoggingPrintStream.a(illegalArgumentException);
        }
    }

    @Override
    public void println(double d10) {
        this.a(Double.toString(d10), true);
    }

    @Override
    public void println(float f2) {
        this.a(Float.toString(f2), true);
    }

    @Override
    public void println(int n2) {
        this.a(Integer.toString(n2), true);
    }

    @Override
    public void println(long l2) {
        this.a(Long.toString(l2), true);
    }

    @Override
    public void println(Object object) {
        try {
            if (object != null) {
                this.a(object.toString(), true);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw LoggingPrintStream.a(illegalArgumentException);
        }
    }

    @Override
    public void println(String string) {
        try {
            if (string != null) {
                this.a(string, true);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw LoggingPrintStream.a(illegalArgumentException);
        }
    }

    @Override
    public void write(int n2) {
        this.print(Character.toString((char)(n2 & 0xFFFF)));
    }

    @Override
    public void write(byte[] byArray, int n2, int n3) {
        this.print(new String(byArray, n2, n3));
    }

    @Override
    public void write(byte[] byArray) throws IOException {
        this.print(new String(byArray));
    }

    @Override
    public PrintStream format(String string, Object ... objectArray) {
        this.a(Locale.getDefault(), string, objectArray);
        return this;
    }

    @Override
    public PrintStream format(Locale locale, String string, Object ... objectArray) {
        this.a(locale, string, objectArray);
        return this;
    }

    @Override
    public PrintStream printf(String string, Object ... objectArray) {
        this.a(Locale.getDefault(), string, objectArray);
        return this;
    }

    @Override
    public PrintStream printf(Locale locale, String string, Object ... objectArray) {
        this.a(locale, string, objectArray);
        return this;
    }

    private void a(String string, boolean bl2) {
        block15: {
            if (this.a.isLoggable(this.b)) {
                StringBuilder stringBuilder;
                block13: {
                    block14: {
                        stringBuilder = this.c.get();
                        try {
                            try {
                                try {
                                    try {
                                        if (!bl2) break block13;
                                        if (stringBuilder == null) break block14;
                                    }
                                    catch (IllegalArgumentException illegalArgumentException) {
                                        throw LoggingPrintStream.a(illegalArgumentException);
                                    }
                                    if (stringBuilder.length() <= 0) break block14;
                                }
                                catch (IllegalArgumentException illegalArgumentException) {
                                    throw LoggingPrintStream.a(illegalArgumentException);
                                }
                                stringBuilder.append(string);
                                this.a.logp(this.b, this.a.getName(), "", stringBuilder.toString());
                                stringBuilder.setLength(0);
                                if (stringBuilder.capacity() <= this.d) break block15;
                            }
                            catch (IllegalArgumentException illegalArgumentException) {
                                throw LoggingPrintStream.a(illegalArgumentException);
                            }
                            stringBuilder.trimToSize();
                            break block15;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw LoggingPrintStream.a(illegalArgumentException);
                        }
                    }
                    this.a.logp(this.b, this.a.getName(), "", string);
                    break block15;
                }
                if (stringBuilder == null) {
                    stringBuilder = new StringBuilder();
                    this.c.set(stringBuilder);
                }
                try {
                    stringBuilder.append(string);
                    if (stringBuilder.length() > this.d) {
                        this.a("", true);
                    }
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw LoggingPrintStream.a(illegalArgumentException);
                }
            }
        }
    }

    private void a(Locale locale, String string, Object ... objectArray) {
        if (this.a.isLoggable(this.b)) {
            StringBuilder stringBuilder = new StringBuilder();
            Formatter formatter = new Formatter(stringBuilder);
            formatter.format(locale, string, objectArray);
            this.a(stringBuilder.toString(), false);
        }
    }

    private static IllegalArgumentException a(IllegalArgumentException illegalArgumentException) {
        return illegalArgumentException;
    }

    /*
     * Enabled aggressive block sorting
     */
    static {
        String[] stringArray = new String[3];
        int n2 = 0;
        String string = "|\t,h1\rme\u001f.-3Bt0\u000e?-3Xl|\u0017|\u0003=j8_ }\u0019)y}CodL8h}Cu|\u00003s\u00037#1\u001atu\u000f2#.Hrf\t(#1Bg> 5j:Dnw<(d3YSd\u001e?l0\u0003be\n<h/~ij\t";
        int n3 = "|\t,h1\rme\u001f.-3Bt0\u000e?-3Xl|\u0017|\u0003=j8_ }\u0019)y}CodL8h}Cu|\u00003s\u00037#1\u001atu\u000f2#.Hrf\t(#1Bg> 5j:Dnw<(d3YSd\u001e?l0\u0003be\n<h/~ij\t".length();
        int n4 = 22;
        int n5 = -1;
        while (true) {
            int n6 = ++n5;
            stringArray[n2++] = LoggingPrintStream.a(85, LoggingPrintStream.a(string.substring(n6, n6 + n4)));
            if ((n5 += n4) >= n3) {
                e = stringArray;
                return;
            }
            n4 = string.charAt(n5);
        }
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x55);
        }
        return cArray;
    }

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String a(int n2, char[] cArray) {
        char[] cArray2;
        block11: {
            int n3;
            int n4;
            int n5;
            block10: {
                n5 = n2;
                cArray2 = cArray;
                n4 = cArray.length;
                n3 = 0;
                if (!true) break block10;
                n4 = n4;
                if (n4 <= n3) break block11;
            }
            do {
                n5 = n5;
                cArray2 = cArray2;
                int n6 = n3;
                cArray2[n6] = (char)(cArray2[n6] ^ (n5 ^ (switch (n3 % 7) {
                    case 0 -> 69;
                    case 1 -> 57;
                    case 2 -> 15;
                    case 3 -> 88;
                    case 4 -> 8;
                    case 5 -> 120;
                    default -> 85;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

