/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.util.GoidUpgradeMapper
 *  com.l7tech.util.ResourceUtils
 *  org.hibernate.Session
 *  org.hibernate.SessionFactory
 *  org.springframework.beans.BeansException
 *  org.springframework.beans.factory.InitializingBean
 *  org.springframework.context.ApplicationContext
 *  org.springframework.context.ApplicationContextAware
 */
package com.l7tech.server.util;

import com.l7tech.util.GoidUpgradeMapper;
import com.l7tech.util.ResourceUtils;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class ServerGoidUpgradeMapper
extends GoidUpgradeMapper
implements ApplicationContextAware,
InitializingBean {
    private static final Logger a;
    public static final String GOID_UPGRADE_MAP_TABLE;
    public static final String PREFIX_COLUMN;
    public static final String TABLE_NAME_COLUMN;
    public static final String GET_BY_ENTITY_TYPE_STMT;
    private ApplicationContext b;
    private static final String[] d;

    public void afterPropertiesSet() throws Exception {
        SessionFactory sessionFactory = (SessionFactory)this.b.getBean(d[5], SessionFactory.class);
        try (Session session = sessionFactory.openSession();){
            session.doWork(connection -> {
                String[] stringArray;
                Statement statement = null;
                ResultSet resultSet = null;
                statement = connection.createStatement();
                try {
                    stringArray = d;
                    resultSet = statement.executeQuery(stringArray[2]);
                    a.log(Level.FINE, stringArray[8]);
                }
                catch (SQLException sQLException) {
                    String[] stringArray2 = d;
                    a.log(Level.FINE, stringArray2[1]);
                    ResourceUtils.closeQuietly((ResultSet)resultSet);
                    ResourceUtils.closeQuietly((Statement)statement);
                    return;
                }
                try {
                    HashMap<String, Long> hashMap = new HashMap<String, Long>();
                    while (resultSet.next()) {
                        stringArray = d;
                        Long l2 = resultSet.getLong(stringArray[9]);
                        String string = resultSet.getString(stringArray[7]);
                        hashMap.put(string, l2);
                    }
                    this.setPrefixes(hashMap);
                }
                catch (Throwable throwable) {
                    ResourceUtils.closeQuietly(resultSet);
                    ResourceUtils.closeQuietly((Statement)statement);
                    throw throwable;
                }
                ResourceUtils.closeQuietly((ResultSet)resultSet);
                ResourceUtils.closeQuietly((Statement)statement);
            });
        }
    }

    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.b = applicationContext;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[10];
                var3_1 = 0;
                var2_2 = "6|r\u0015q\tT\u0015K[6[%XEM_2^8+\u000bXS5\u0012\u001b&*t\u001e7]4\u0010:LN7@<\u0010\u0000fS1B=!PZp\\2\u0000E_W>V}\u0015\u000b@\u001e\u0017]4\u0010EIL5T4\f\u0000J\u001e7W3\u0011\u0017XJ5V}\u0016\u001c\u0019_>\u0012eZU\u0017\u000epG-\u0013\u0017XZ5\u001c/6|r\u0015q\tT\u0015K[6[%XEM_2^8+\u000bXS5\u0012\u001b&*t\u001e7]4\u0010:LN7@<\u0010\u0000fS1B\u0010\u0002VW4m(\u0004\u0002K_4W\u0002\u0019\u0004I\u0006\u0015K[6[%\u000e\u0016\\M#[2\u001a#X]$]/\r\n\u0011X\\<W\u0002\u001a\u0004T[\n\u0011X\\<W\u0002\u001a\u0004T[";
                var4_3 = "6|r\u0015q\tT\u0015K[6[%XEM_2^8+\u000bXS5\u0012\u001b&*t\u001e7]4\u0010:LN7@<\u0010\u0000fS1B=!PZp\\2\u0000E_W>V}\u0015\u000b@\u001e\u0017]4\u0010EIL5T4\f\u0000J\u001e7W3\u0011\u0017XJ5V}\u0016\u001c\u0019_>\u0012eZU\u0017\u000epG-\u0013\u0017XZ5\u001c/6|r\u0015q\tT\u0015K[6[%XEM_2^8+\u000bXS5\u0012\u001b&*t\u001e7]4\u0010:LN7@<\u0010\u0000fS1B\u0010\u0002VW4m(\u0004\u0002K_4W\u0002\u0019\u0004I\u0006\u0015K[6[%\u000e\u0016\\M#[2\u001a#X]$]/\r\n\u0011X\\<W\u0002\u001a\u0004T[\n\u0011X\\<W\u0002\u001a\u0004T[".length();
                var1_4 = 47;
                var0_5 = -1;
lbl7:
                // 2 sources

                while (true) {
                    v0 = 124;
                    v1 = ++var0_5;
                    v2 = var2_2.substring(v1, v1 + var1_4);
                    v3 = -1;
                    break block9;
                    break;
                }
lbl13:
                // 1 sources

                while (true) {
                    var5[var3_1++] = ServerGoidUpgradeMapper.b(v0, ServerGoidUpgradeMapper.b(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "h\u001d\u0000u\u001d6xA\u001b\u0011;\tdZH\u001b\r~\n6XK\u001c\u0010i\u0018bZJR\u0017bYwQ\u000eJ[+W&\u001f[\u0002\u0012i\u0018rZ\u0002R\u0005t\tcSO\u0006\u001cu\u001e6KF\u0017U\\\u0016\u007f[{\u0002\u0012i\u0018rZc\u0013\u0005k\u001cd\u0011\u0006^\u0000\u0010}\u0010n";
                    var4_3 = "h\u001d\u0000u\u001d6xA\u001b\u0011;\tdZH\u001b\r~\n6XK\u001c\u0010i\u0018bZJR\u0017bYwQ\u000eJ[+W&\u001f[\u0002\u0012i\u0018rZ\u0002R\u0005t\tcSO\u0006\u001cu\u001e6KF\u0017U\\\u0016\u007f[{\u0002\u0012i\u0018rZc\u0013\u0005k\u001cd\u0011\u0006^\u0000\u0010}\u0010n".length();
                    var1_4 = 84;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 55;
                        v4 = ++var0_5;
                        v2 = var2_2.substring(v4, v4 + var1_4);
                        v3 = 0;
                        break block9;
                        break;
                    }
                    break;
                }
lbl28:
                // 1 sources

                while (true) {
                    var5[var3_1++] = ServerGoidUpgradeMapper.b(v0, ServerGoidUpgradeMapper.b(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    break block10;
                    break;
                }
            }
            switch (v3) {
                default: {
                    ** continue;
                }
                ** case 0:
lbl39:
                // 1 sources

                ** continue;
            }
        }
        ServerGoidUpgradeMapper.d = var5;
        ServerGoidUpgradeMapper.GET_BY_ENTITY_TYPE_STMT = ServerGoidUpgradeMapper.d[0];
        ServerGoidUpgradeMapper.TABLE_NAME_COLUMN = ServerGoidUpgradeMapper.d[6];
        ServerGoidUpgradeMapper.PREFIX_COLUMN = ServerGoidUpgradeMapper.d[4];
        ServerGoidUpgradeMapper.GOID_UPGRADE_MAP_TABLE = ServerGoidUpgradeMapper.d[3];
        ServerGoidUpgradeMapper.a = Logger.getLogger(GoidUpgradeMapper.class.getName());
    }

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

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String b(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 -> 25;
                    case 1 -> 69;
                    case 2 -> 66;
                    case 3 -> 44;
                    case 4 -> 78;
                    case 5 -> 33;
                    default -> 8;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

