/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.ca.apim.gateway.extension.event.Event
 *  com.l7tech.gateway.common.service.PublishedService
 *  com.l7tech.policy.variable.BuiltinVariables
 *  com.l7tech.policy.variable.NoSuchVariableException
 *  com.l7tech.util.ExceptionUtils
 *  org.jetbrains.annotations.NotNull
 */
package com.l7tech.server.extension.event.metrics;

import com.ca.apim.gateway.extension.event.Event;
import com.l7tech.gateway.common.service.PublishedService;
import com.l7tech.policy.variable.BuiltinVariables;
import com.l7tech.policy.variable.NoSuchVariableException;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.util.ExceptionUtils;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;

public class ServiceMetricsEvent
implements Event {
    private static final Logger a;
    private final long b;
    private final String c;
    private final String d;
    private final String e;
    private final String f;
    private final String g;
    private final String h;
    private final int i;
    private final int j;
    private final boolean k;
    private final boolean l;
    private final boolean m;
    private static final String[] n;

    ServiceMetricsEvent(@NotNull PolicyEnforcementContext policyEnforcementContext) {
        boolean bl2;
        block20: {
            block19: {
                boolean bl3;
                block18: {
                    block17: {
                        boolean bl4;
                        block16: {
                            block15: {
                                if (policyEnforcementContext == null) {
                                    ServiceMetricsEvent.a(0);
                                }
                                this.b = policyEnforcementContext.getStartTime();
                                this.c = ServiceMetricsEvent.a(policyEnforcementContext, BuiltinVariables.SSGNODE_ID);
                                this.d = ServiceMetricsEvent.a(policyEnforcementContext, BuiltinVariables.SSGNODE_NAME);
                                this.e = ServiceMetricsEvent.a(policyEnforcementContext, BuiltinVariables.SSGNODE_IP);
                                if (policyEnforcementContext.getService() != null) {
                                    this.f = policyEnforcementContext.getService().getGoid().toString();
                                    this.g = policyEnforcementContext.getService().getName();
                                    this.h = policyEnforcementContext.getService().getRoutingUri();
                                } else {
                                    this.f = PublishedService.DEFAULT_GOID.toString();
                                    this.g = "";
                                    this.h = "";
                                }
                                try {
                                    try {
                                        this.i = Math.toIntExact(Math.subtractExact(policyEnforcementContext.getEndTime(), policyEnforcementContext.getStartTime()));
                                        this.j = Math.toIntExact(policyEnforcementContext.getRoutingTotalTime());
                                        ServiceMetricsEvent serviceMetricsEvent = this;
                                        if (!policyEnforcementContext.isAuthorizedRequest() || !policyEnforcementContext.isCompletedRequest()) break block15;
                                    }
                                    catch (IllegalArgumentException illegalArgumentException) {
                                        throw ServiceMetricsEvent.a(illegalArgumentException);
                                    }
                                    bl4 = true;
                                    break block16;
                                }
                                catch (IllegalArgumentException illegalArgumentException) {
                                    throw ServiceMetricsEvent.a(illegalArgumentException);
                                }
                            }
                            bl4 = false;
                        }
                        try {
                            try {
                                serviceMetricsEvent.k = bl4;
                                ServiceMetricsEvent serviceMetricsEvent = this;
                                if (policyEnforcementContext.isAuthorizedRequest() || policyEnforcementContext.isCompletedRequest()) break block17;
                            }
                            catch (IllegalArgumentException illegalArgumentException) {
                                throw ServiceMetricsEvent.a(illegalArgumentException);
                            }
                            bl3 = true;
                            break block18;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw ServiceMetricsEvent.a(illegalArgumentException);
                        }
                    }
                    bl3 = false;
                }
                try {
                    try {
                        serviceMetricsEvent.l = bl3;
                        ServiceMetricsEvent serviceMetricsEvent = this;
                        if (!policyEnforcementContext.isAuthorizedRequest() || policyEnforcementContext.isCompletedRequest()) break block19;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw ServiceMetricsEvent.a(illegalArgumentException);
                    }
                    bl2 = true;
                    break block20;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw ServiceMetricsEvent.a(illegalArgumentException);
                }
            }
            bl2 = false;
        }
        serviceMetricsEvent.m = bl2;
    }

    public long getTime() {
        return this.b;
    }

    public String getNodeId() {
        return this.c;
    }

    public String getNodeName() {
        return this.d;
    }

    public String getNodeIp() {
        return this.e;
    }

    public String getServiceId() {
        return this.f;
    }

    public String getServiceName() {
        return this.g;
    }

    public String getServiceUri() {
        return this.h;
    }

    public int getTotalFrontendLatency() {
        return this.i;
    }

    public int getTotalBackendLatency() {
        return this.j;
    }

    public boolean isPolicySuccessful() {
        return this.k;
    }

    public boolean isPolicyViolation() {
        return this.l;
    }

    public boolean isRoutingFailure() {
        return this.m;
    }

    private static String a(PolicyEnforcementContext policyEnforcementContext, String string) {
        try {
            return policyEnforcementContext.getVariable(string).toString();
        }
        catch (NoSuchVariableException noSuchVariableException) {
            a.log(Level.FINE, ExceptionUtils.getDebugException((Throwable)noSuchVariableException), () -> n[0] + noSuchVariableException.getMessage());
            return "";
        }
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[5];
                var3_1 = 0;
                var2_2 = "I(@ZC%,i.F\\_bkz;@\\Pg'izTG^hk\\5^\\R|\u000eb<]GR`&i4Fv^k?i\"F\u000f\u0011\u0003|?Q=o5_\u001a]2?i9Z\u001aB`9z?@\u001aT}?i4A\\^kdi,W[E*&i.@\\Rvd_?@CXf.A?FGXf8I,W[E";
                var4_3 = "I(@ZC%,i.F\\_bkz;@\\Pg'izTG^hk\\5^\\R|\u000eb<]GR`&i4Fv^k?i\"F\u000f\u0011\u0003|?Q=o5_\u001a]2?i9Z\u001aB`9z?@\u001aT}?i4A\\^kdi,W[E*&i.@\\Rvd_?@CXf.A?FGXf8I,W[E".length();
                var1_4 = 54;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = ServiceMetricsEvent.a(v0, ServiceMetricsEvent.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "65ZZC=>K.SFZf#~|R\\E#\rD3@}Bo!*,UAVn(~9F\u0013\u0010&>-|[U\u0017&>$yG\u0013Zv>~|Z\\C#/o|ZF[o";
                    var4_3 = "65ZZC=>K.SFZf#~|R\\E#\rD3@}Bo!*,UAVn(~9F\u0013\u0010&>-|[U\u0017&>$yG\u0013Zv>~|Z\\C#/o|ZF[o".length();
                    var1_4 = 6;
                    var0_5 = -1;
lbl22:
                    // 2 sources

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

    private static /* synthetic */ void a(int n2) {
        String[] stringArray = n;
        throw new IllegalArgumentException(String.format(stringArray[4], stringArray[1], stringArray[2], stringArray[3]));
    }

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

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x32);
        }
        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 -> 117;
                    case 1 -> 35;
                    case 2 -> 75;
                    case 3 -> 76;
                    case 4 -> 72;
                    case 5 -> 124;
                    default -> 50;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

