/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.service.ServiceDocumentWsdlStrategy$ServiceDocumentResources
 *  com.l7tech.util.Config
 *  com.l7tech.util.Functions
 *  com.l7tech.util.Functions$Nullary
 *  com.l7tech.util.Option
 *  org.hibernate.SessionFactory
 *  org.springframework.context.ApplicationContext
 *  org.springframework.orm.hibernate5.HibernateCallback
 *  org.springframework.orm.hibernate5.HibernateTemplate
 */
package com.l7tech.server.upgrade;

import com.l7tech.gateway.common.service.ServiceDocumentWsdlStrategy;
import com.l7tech.server.upgrade.NonfatalUpgradeException;
import com.l7tech.server.upgrade.UpgradeTask;
import com.l7tech.server.upgrade.b;
import com.l7tech.server.upgrade.c;
import com.l7tech.util.Config;
import com.l7tech.util.Functions;
import com.l7tech.util.Option;
import java.util.logging.Logger;
import org.hibernate.SessionFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.orm.hibernate5.HibernateTemplate;

abstract class a
implements UpgradeTask {
    private static final Logger a;
    private final String b;
    private final String c;
    private final String d;
    private final String e;
    private final String f;
    private final String g;
    private static final String[] h;

    @Override
    public void upgrade(ApplicationContext applicationContext) throws NonfatalUpgradeException {
        String[] stringArray = h;
        Config config = (Config)applicationContext.getBean(stringArray[0], Config.class);
        SessionFactory sessionFactory = (SessionFactory)applicationContext.getBean(stringArray[1]);
        Functions.Nullary<Option<ServiceDocumentWsdlStrategy.ServiceDocumentResources>> nullary = this.a(config);
        Option option = (Option)new HibernateTemplate(sessionFactory).execute((HibernateCallback)new b(this, nullary));
        try {
            if (option.isSome()) {
                throw new NonfatalUpgradeException((String)option.some());
            }
        }
        catch (NonfatalUpgradeException nonfatalUpgradeException) {
            throw com.l7tech.server.upgrade.a.a(nonfatalUpgradeException);
        }
    }

    a(String string, String string2, String string3, String string4, String string5, String string6) {
        this.b = string;
        this.c = string2;
        this.d = string3;
        this.e = string5;
        this.f = string6;
        this.g = string4;
    }

    private Functions.Nullary<Option<ServiceDocumentWsdlStrategy.ServiceDocumentResources>> a(Config config) {
        return Functions.memoize((Functions.Nullary)new c(this, config));
    }

    /*
     * Enabled aggressive block sorting
     */
    static {
        String[] stringArray = new String[2];
        int n2 = 0;
        String string = "4msf\u000f\u000ff(fgy\r\u000e4mrc\u0003\u0012K\u0001ibd\u0005\u000f\\";
        int n3 = "4msf\u000f\u000ff(fgy\r\u000e4mrc\u0003\u0012K\u0001ibd\u0005\u000f\\".length();
        int n4 = 12;
        int n5 = -1;
        while (true) {
            int n6 = ++n5;
            stringArray[n2++] = com.l7tech.server.upgrade.a.a(40, com.l7tech.server.upgrade.a.a(string.substring(n6, n6 + n4)));
            if ((n5 += n4) >= n3) {
                h = stringArray;
                a = Logger.getLogger(a.class.getName());
                return;
            }
            n4 = string.charAt(n5);
        }
    }

    private static NonfatalUpgradeException a(NonfatalUpgradeException nonfatalUpgradeException) {
        return nonfatalUpgradeException;
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0xD);
        }
        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 -> 111;
                    case 1 -> 32;
                    case 2 -> 41;
                    case 3 -> 56;
                    case 4 -> 66;
                    case 5 -> 85;
                    default -> 13;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

