/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.solutionkit.SolutionKit
 *  com.l7tech.objectmodel.DeleteException
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.objectmodel.PersistentEntity
 *  com.l7tech.objectmodel.SaveException
 *  com.l7tech.objectmodel.UpdateException
 *  org.apache.commons.lang3.StringUtils
 *  org.jetbrains.annotations.NotNull
 *  org.springframework.beans.BeansException
 *  org.springframework.context.ApplicationContext
 *  org.springframework.transaction.PlatformTransactionManager
 */
package com.l7tech.server.upgrade;

import com.l7tech.gateway.common.solutionkit.SolutionKit;
import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.PersistentEntity;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.server.solutionkit.SolutionKitManager;
import com.l7tech.server.upgrade.FatalUpgradeException;
import com.l7tech.server.upgrade.NonfatalUpgradeException;
import com.l7tech.server.upgrade.UpgradeTask;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.transaction.PlatformTransactionManager;

public class Upgrade9200To9300SolutionKits
implements UpgradeTask {
    private ApplicationContext a;
    private PlatformTransactionManager b;
    private static final Logger c;
    private int d = 0;
    private int e = 0;
    private static final String[] f;

    @Override
    public void upgrade(ApplicationContext applicationContext) throws NonfatalUpgradeException, FatalUpgradeException {
        this.a = applicationContext;
        String[] stringArray = f;
        SolutionKitManager solutionKitManager = this.a(stringArray[4], SolutionKitManager.class);
        this.b = this.a(stringArray[11], PlatformTransactionManager.class);
        c.log(Level.INFO, stringArray[2]);
        this.a(solutionKitManager);
        c.log(Level.INFO, stringArray[14], new Object[]{this.d, this.e});
    }

    private void a(SolutionKitManager solutionKitManager) throws NonfatalUpgradeException {
        Collection collection;
        HashSet<Goid> hashSet = new HashSet<Goid>();
        try {
            collection = solutionKitManager.findAll();
        }
        catch (FindException findException) {
            String[] stringArray = f;
            throw new NonfatalUpgradeException(stringArray[13]);
        }
        try {
            if (collection.isEmpty()) {
                return;
            }
        }
        catch (FindException findException) {
            throw Upgrade9200To9300SolutionKits.a((Exception)((Object)findException));
        }
        for (SolutionKit solutionKit : collection) {
            Object object;
            String string;
            Goid goid;
            block14: {
                goid = solutionKit.getParentGoid();
                string = solutionKit.getProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY);
                try {
                    if (goid != null) break block14;
                    if (!StringUtils.isBlank((CharSequence)string)) continue;
                }
                catch (FindException findException) {
                    throw Upgrade9200To9300SolutionKits.a((Exception)((Object)findException));
                }
                if (!Boolean.valueOf(solutionKit.getProperty(SolutionKit.SK_PROP_IS_COLLECTION_KEY)).booleanValue()) continue;
                hashSet.add(solutionKit.getGoid());
                continue;
            }
            try {
                SolutionKit solutionKit2 = (SolutionKit)solutionKitManager.findByPrimaryKey(goid);
                if (solutionKit2 == null) {
                    String[] stringArray = f;
                    c.log(Level.WARNING, stringArray[0], new Object[]{solutionKit.getName(), string});
                    solutionKit.setParentGoid(null);
                    this.b(this.b, solutionKitManager, solutionKit);
                    continue;
                }
                object = solutionKitManager.findBySolutionKitGuidAndIM(solutionKit2.getSolutionKitGuid(), string);
                if (object == null) {
                    SolutionKit solutionKit3 = this.a(solutionKit2);
                    solutionKit3.setProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY, string);
                    Goid goid2 = this.a(this.b, solutionKitManager, solutionKit3);
                    solutionKit.setParentGoid(goid2);
                    this.b(this.b, solutionKitManager, solutionKit);
                    continue;
                }
                try {
                    if (Goid.equals((Goid)goid, (Goid)object.getGoid())) continue;
                    solutionKit.setParentGoid(object.getGoid());
                    this.b(this.b, solutionKitManager, solutionKit);
                }
                catch (FindException findException) {
                    throw Upgrade9200To9300SolutionKits.a((Exception)((Object)findException));
                }
            }
            catch (FindException findException) {
                object = String.format(f[7], solutionKit.getName(), solutionKit.getProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY), findException.toString());
                throw new NonfatalUpgradeException((String)object);
            }
        }
        this.a(solutionKitManager, hashSet);
    }

    private void a(SolutionKitManager solutionKitManager, Set<Goid> set) throws NonfatalUpgradeException {
        for (Goid goid : set) {
            try {
                Collection<SolutionKit> collection = solutionKitManager.findAllChildrenByParentGoid(goid);
                try {
                    if (!collection.isEmpty()) continue;
                    solutionKitManager.delete(goid);
                    ++this.e;
                }
                catch (FindException findException) {
                    throw Upgrade9200To9300SolutionKits.a((Exception)((Object)findException));
                }
            }
            catch (DeleteException | FindException throwable) {
                String string = String.format(f[3], goid.toString());
                throw new NonfatalUpgradeException(string);
            }
        }
    }

    private <T> T a(String string, Class<T> clazz) throws FatalUpgradeException {
        try {
            if (this.a == null) {
                throw new FatalUpgradeException(f[8]);
            }
        }
        catch (BeansException beansException) {
            throw Upgrade9200To9300SolutionKits.a((Exception)((Object)beansException));
        }
        try {
            return (T)this.a.getBean(string, clazz);
        }
        catch (BeansException beansException) {
            String[] stringArray = f;
            throw new FatalUpgradeException(stringArray[12] + string + stringArray[15]);
        }
    }

    private SolutionKit a(SolutionKit solutionKit) {
        SolutionKit solutionKit2 = new SolutionKit();
        solutionKit2.setSolutionKitGuid(solutionKit.getSolutionKitGuid());
        solutionKit2.setName(solutionKit.getName());
        solutionKit2.setMappings(solutionKit.getMappings());
        solutionKit2.setInstallationXmlProperties(solutionKit.getInstallationXmlProperties());
        solutionKit2.setSolutionKitVersion(solutionKit.getSolutionKitVersion());
        solutionKit2.setUninstallBundle(solutionKit.getUninstallBundle());
        solutionKit2.setXmlProperties(solutionKit.getXmlProperties());
        return solutionKit2;
    }

    private Goid a(PlatformTransactionManager platformTransactionManager, SolutionKitManager solutionKitManager, @NotNull SolutionKit solutionKit) throws NonfatalUpgradeException {
        Goid goid;
        try {
            if (solutionKit == null) {
                Upgrade9200To9300SolutionKits.a(0);
            }
        }
        catch (SaveException saveException) {
            throw Upgrade9200To9300SolutionKits.a((Exception)((Object)saveException));
        }
        try {
            goid = solutionKitManager.save((PersistentEntity)solutionKit);
            platformTransactionManager.getTransaction(null).flush();
            ++this.d;
        }
        catch (SaveException saveException) {
            String string = String.format(f[9], solutionKit.getName(), solutionKit.getProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY));
            throw new NonfatalUpgradeException(string);
        }
        return goid;
    }

    private void b(PlatformTransactionManager platformTransactionManager, SolutionKitManager solutionKitManager, SolutionKit solutionKit) throws NonfatalUpgradeException {
        try {
            solutionKitManager.update((PersistentEntity)solutionKit);
            platformTransactionManager.getTransaction(null).flush();
        }
        catch (UpdateException updateException) {
            String string = String.format(f[16], solutionKit.getName(), solutionKit.getProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY));
            throw new NonfatalUpgradeException(string);
        }
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[17];
                var3_1 = 0;
                var2_2 = "M(6\n\u001a\"(a3c\u0000\u0017l\".7\"\u0014\u001bl2.\u0014,\n\u000bv/a)c-\u0017vfh(1F\u001dj/b#c5\u0011n3z.,\b^I/z}c\u001dN\u007fj.0*\u0012\u0016\"/`47\u0007\u0010a#4g8W\u0003,\u0012f\"c\u0016\u001fp#`3c!\u0011k\".0*\n\u0012\"$kg0\u0003\n\"2ag-\u0013\u0012nfo)'F\nj/}g\u0010\t\u0012w2g(-F5k2.0*\n\u0012\"$k$,\u000b\u001b\"'.47\u0007\u0010f'b(-\u0003P\u0017m5&\u0007\ng\u0016o5&\b\nQ)b27\u000f\u0011l\rg3*K?&\u0005\u000bv/` c5\u0011n3z.,\b^I/zg7\u0007\u001cn#.#\"\u0012\u001f\"3~ 1\u0007\u001aghIK? \u0003\u000ev/a)c\u0005\u001fw!f3c\u0011\u0016k*kg7\u0014\u0007k(ig7\t^f#b\"7\u0003^r'|\"-\u0012^Q)b27\u000f\u0011lfE.7F\tk2fg\u0004\t\u0017f|.b0\u0012}(/\u0013\nk)`\f*\u00123c(o &\u0014\u000b`\"46\u001fp#`3\u0010-7m(.I\u001252k$+I\rg4x\"1I\u000br!|&'\u0003QW6i5\"\u0002\u001b;t>w\u0017\tG1v>\u0014,\n\u000bv/a)\b\u000f\nqLK? \u0003\u000ev/a)c\u0005\u001fw!f3c\u0011\u0016k*kg3\u0014\u0011a#}4*\b\u0019\"\u0015a+6\u0012\u0017m(.\f*\u0012D\"c}kc/\u0010q2o) \u0003D\"c}g\u000e\u0003\rq'i\"yF[q\u001eO73\n\u0017a'z.,\b=m(z\";\u0012^k5.5&\u0017\u000bk4k#ZK? \u0003\u000ev/a)c\u0005\u001fw!f3c\u0011\u0016k*kg7\u0014\u0007k(ig0\u0007\bgf`\"4F\u000ec4k)7F-m*{3*\t\u0010\"\rg3yF[qj.0*\u0012\u0016\"/`47\u0007\u0010a#.*,\u0002\u0017d/k5yF[q>O5$\u0013\u0013g(zg%\t\f\"\u0006@(7(\u000bn*.7\"\u0014\u001fo#z\"1FY'5)g,\u0000^'5 b0F\u0013w5zg-\t\n\"$kg-\u0013\u0012n\u0012z5\"\b\rc%z.,\b3c(o &\u0014\u0017K51\t\f\"'m$&\u0015\rk(igc\u0004\u001bc(.`\u001eK51\t\f\"4k31\u000f\u001bt/` c5\u0011n3z.,\b^I/z4e](/\u0013\nk)`g\b\u000f\n\"2o%/\u0003^f'z&c\u0013\u000ee4o#&F\u001dm+~+&\u0012\u001bfh.<s\u001b^l#yg\u0013\u0007\fg(zg\u0010\t\u0012w2g(-F5k2.5&\u0005\u0011p\"}g \u0014\u001bc2k#mF^ywsg'\u0003\u0012g2k#m";
                var4_3 = "M(6\n\u001a\"(a3c\u0000\u0017l\".7\"\u0014\u001bl2.\u0014,\n\u000bv/a)c-\u0017vfh(1F\u001dj/b#c5\u0011n3z.,\b^I/z}c\u001dN\u007fj.0*\u0012\u0016\"/`47\u0007\u0010a#4g8W\u0003,\u0012f\"c\u0016\u001fp#`3c!\u0011k\".0*\n\u0012\"$kg0\u0003\n\"2ag-\u0013\u0012nfo)'F\nj/}g\u0010\t\u0012w2g(-F5k2.0*\n\u0012\"$k$,\u000b\u001b\"'.47\u0007\u0010f'b(-\u0003P\u0017m5&\u0007\ng\u0016o5&\b\nQ)b27\u000f\u0011l\rg3*K?&\u0005\u000bv/` c5\u0011n3z.,\b^I/zg7\u0007\u001cn#.#\"\u0012\u001f\"3~ 1\u0007\u001aghIK? \u0003\u000ev/a)c\u0005\u001fw!f3c\u0011\u0016k*kg7\u0014\u0007k(ig7\t^f#b\"7\u0003^r'|\"-\u0012^Q)b27\u000f\u0011lfE.7F\tk2fg\u0004\t\u0017f|.b0\u0012}(/\u0013\nk)`\f*\u00123c(o &\u0014\u000b`\"46\u001fp#`3\u0010-7m(.I\u001252k$+I\rg4x\"1I\u000br!|&'\u0003QW6i5\"\u0002\u001b;t>w\u0017\tG1v>\u0014,\n\u000bv/a)\b\u000f\nqLK? \u0003\u000ev/a)c\u0005\u001fw!f3c\u0011\u0016k*kg3\u0014\u0011a#}4*\b\u0019\"\u0015a+6\u0012\u0017m(.\f*\u0012D\"c}kc/\u0010q2o) \u0003D\"c}g\u000e\u0003\rq'i\"yF[q\u001eO73\n\u0017a'z.,\b=m(z\";\u0012^k5.5&\u0017\u000bk4k#ZK? \u0003\u000ev/a)c\u0005\u001fw!f3c\u0011\u0016k*kg7\u0014\u0007k(ig0\u0007\bgf`\"4F\u000ec4k)7F-m*{3*\t\u0010\"\rg3yF[qj.0*\u0012\u0016\"/`47\u0007\u0010a#.*,\u0002\u0017d/k5yF[q>O5$\u0013\u0013g(zg%\t\f\"\u0006@(7(\u000bn*.7\"\u0014\u001fo#z\"1FY'5)g,\u0000^'5 b0F\u0013w5zg-\t\n\"$kg-\u0013\u0012n\u0012z5\"\b\rc%z.,\b3c(o &\u0014\u0017K51\t\f\"'m$&\u0015\rk(igc\u0004\u001bc(.`\u001eK51\t\f\"4k31\u000f\u001bt/` c5\u0011n3z.,\b^I/z4e](/\u0013\nk)`g\b\u000f\n\"2o%/\u0003^f'z&c\u0013\u000ee4o#&F\u001dm+~+&\u0012\u001bfh.<s\u001b^l#yg\u0013\u0007\fg(zg\u0010\t\u0012w2g(-F5k2.5&\u0005\u0011p\"}g \u0014\u001bc2k#mF^ywsg'\u0003\u0012g2k#m".length();
                var1_4 = 166;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = Upgrade9200To9300SolutionKits.a(v0, Upgrade9200To9300SolutionKits.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "z4vGB<5\u001cd`YD2t)}\u007f[n>{)qhA\u0003T\u0018lsP]%|2z0VL$r5`0BE8y84dGT8{:4dZ\r$e9udP\r\u0002z1ad\\B?5\u0016}d\u000f\rtfq4g\\Y954zcAL?v84}ZI8s4qb\u000f\rtf";
                    var4_3 = "z4vGB<5\u001cd`YD2t)}\u007f[n>{)qhA\u0003T\u0018lsP]%|2z0VL$r5`0BE8y84dGT8{:4dZ\r$e9udP\r\u0002z1ad\\B?5\u0016}d\u000f\rtfq4g\\Y954zcAL?v84}ZI8s4qb\u000f\rtf".length();
                    var1_4 = 26;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 49;
                        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++] = Upgrade9200To9300SolutionKits.a(v0, Upgrade9200To9300SolutionKits.a(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;
            }
        }
        Upgrade9200To9300SolutionKits.f = var5;
        Upgrade9200To9300SolutionKits.c = Logger.getLogger(Upgrade9200To9300SolutionKits.class.getName());
    }

    private static /* synthetic */ void a(int n2) {
        String[] stringArray = f;
        throw new IllegalArgumentException(String.format(stringArray[10], stringArray[5], stringArray[6], stringArray[1]));
    }

    private static Exception a(Exception exception) {
        return exception;
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x24);
        }
        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 -> 108;
                    case 1 -> 37;
                    case 2 -> 33;
                    case 3 -> 4;
                    case 4 -> 28;
                    case 5 -> 96;
                    default -> 36;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

