/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.service.PublishedService
 *  com.l7tech.objectmodel.EntityType
 *  com.l7tech.objectmodel.ExternalEntityHeader
 *  com.l7tech.util.ExceptionUtils
 *  com.l7tech.util.GoidUpgradeMapper
 *  com.l7tech.util.TextUtils
 *  com.l7tech.util.ValidationUtils
 *  com.l7tech.wsdl.Wsdl
 *  jakarta.inject.Inject
 *  javax.wsdl.BindingOperation
 *  javax.wsdl.WSDLException
 */
package com.l7tech.server.service;

import com.l7tech.gateway.common.service.PublishedService;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.ExternalEntityHeader;
import com.l7tech.server.cluster.ExternalEntityHeaderEnhancer;
import com.l7tech.server.service.ServiceCache;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.GoidUpgradeMapper;
import com.l7tech.util.TextUtils;
import com.l7tech.util.ValidationUtils;
import com.l7tech.wsdl.Wsdl;
import jakarta.inject.Inject;
import java.util.TreeSet;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.wsdl.BindingOperation;
import javax.wsdl.WSDLException;

public class ServiceExternalEntityHeaderEnhancer
implements ExternalEntityHeaderEnhancer {
    private static final Logger a;
    @Inject
    private ServiceCache serviceCache;
    private static final String[] b;

    public String[] getOperations(ExternalEntityHeader externalEntityHeader) {
        PublishedService publishedService;
        String[] stringArray;
        block14: {
            block13: {
                stringArray = null;
                if (externalEntityHeader.getType() == EntityType.SERVICE) {
                    publishedService = this.serviceCache.getCachedService(externalEntityHeader.getGoid());
                } else {
                    try {
                        if (externalEntityHeader.getType() != EntityType.SERVICE_ALIAS || !ValidationUtils.isValidLong((String)externalEntityHeader.getProperty(b[3]), (boolean)false, (long)Long.MIN_VALUE, (long)Long.MAX_VALUE)) break block13;
                    }
                    catch (WSDLException wSDLException) {
                        throw ServiceExternalEntityHeaderEnhancer.a(wSDLException);
                    }
                    String[] stringArray2 = b;
                    publishedService = this.serviceCache.getCachedService(GoidUpgradeMapper.mapId((EntityType)EntityType.SERVICE, (String)externalEntityHeader.getProperty(stringArray2[5])));
                }
                break block14;
            }
            publishedService = null;
        }
        if (publishedService != null) {
            try {
                Wsdl wsdl = publishedService.parsedWsdl();
                if (wsdl != null) {
                    TreeSet<String> treeSet = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
                    wsdl.setShowBindings(1);
                    for (BindingOperation bindingOperation : wsdl.getBindingOperations()) {
                        treeSet.add(bindingOperation.getName());
                    }
                    if (!treeSet.isEmpty()) {
                        stringArray = treeSet.toArray(new String[treeSet.size()]);
                    }
                }
            }
            catch (WSDLException wSDLException) {
                try {
                    if (a.isLoggable(Level.FINE)) {
                        a.log(Level.FINE, b[2] + publishedService.getId() + b[1] + ExceptionUtils.getMessage((Throwable)wSDLException) + b[0], ExceptionUtils.getDebugException((Throwable)wSDLException));
                    }
                }
                catch (WSDLException wSDLException2) {
                    throw ServiceExternalEntityHeaderEnhancer.a(wSDLException2);
                }
            }
        }
        return stringArray;
    }

    @Override
    public void enhance(ExternalEntityHeader externalEntityHeader) {
        CharSequence[] charSequenceArray = this.getOperations(externalEntityHeader);
        if (charSequenceArray != null) {
            externalEntityHeader.setProperty(b[4], TextUtils.join((String)",", (CharSequence[])charSequenceArray).toString());
        }
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[6];
                var3_1 = 0;
                var2_2 = ")\u000fA\u0004)\rO@#KS\u001d\b\u0004t0|N\f\u0002\u0005')`FO0%\u0010\f.G\u0000\u0015V'%|W\u0006\u0004\u0013tg\bOM\u0006\u0006\u0005t\u000fh";
                var4_3 = ")\u000fA\u0004)\rO@#KS\u001d\b\u0004t0|N\f\u0002\u0005')`FO0%\u0010\f.G\u0000\u0015V'%|W\u0006\u0004\u0013tg\bOM\u0006\u0006\u0005t\u000fh".length();
                var1_4 = 3;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = ServiceExternalEntityHeaderEnhancer.a(v0, ServiceExternalEntityHeaderEnhancer.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "&\rTT)dO\u0014,ql`DQ\u0002\b02yyz\u000bp\u0017";
                    var4_3 = "&\rTT)dO\u0014,ql`DQ\u0002\b02yyz\u000bp\u0017".length();
                    var1_4 = 15;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 119;
                        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++] = ServiceExternalEntityHeaderEnhancer.a(v0, ServiceExternalEntityHeaderEnhancer.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;
            }
        }
        ServiceExternalEntityHeaderEnhancer.b = var5;
        ServiceExternalEntityHeaderEnhancer.a = Logger.getLogger(ServiceExternalEntityHeaderEnhancer.class.getName());
    }

    private static WSDLException a(WSDLException wSDLException) {
        return wSDLException;
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x48);
        }
        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 -> 6;
                    case 1 -> 41;
                    case 2 -> 103;
                    case 3 -> 111;
                    case 4 -> 126;
                    case 5 -> 92;
                    default -> 72;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

