/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.RequestId
 *  com.l7tech.gateway.common.audit.Audit
 *  com.l7tech.gateway.common.mapping.MessageContextMapping
 *  com.l7tech.gateway.common.service.PublishedService
 *  com.l7tech.message.Message
 *  com.l7tech.policy.assertion.AssertionStatus
 *  com.l7tech.policy.assertion.MessageTargetable
 *  com.l7tech.policy.assertion.RoutingStatus
 *  com.l7tech.policy.variable.NoSuchVariableException
 *  com.l7tech.policy.variable.VariableNotSettableException
 *  com.l7tech.util.InvalidDocumentFormatException
 *  com.l7tech.util.Pair
 *  com.l7tech.xml.SoapFaultLevel
 *  javax.wsdl.Binding
 *  javax.wsdl.Operation
 *  javax.wsdl.WSDLException
 *  org.jetbrains.annotations.NotNull
 *  org.jetbrains.annotations.Nullable
 */
package com.l7tech.server.message.metrics;

import com.l7tech.gateway.common.RequestId;
import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.gateway.common.mapping.MessageContextMapping;
import com.l7tech.gateway.common.service.PublishedService;
import com.l7tech.message.Message;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.MessageTargetable;
import com.l7tech.policy.assertion.RoutingStatus;
import com.l7tech.policy.variable.NoSuchVariableException;
import com.l7tech.policy.variable.VariableNotSettableException;
import com.l7tech.server.audit.AuditContext;
import com.l7tech.server.message.AssertionTraceListener;
import com.l7tech.server.message.AuthenticationContext;
import com.l7tech.server.message.PolicyContextCache;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.message.metrics.LatencyMetrics;
import com.l7tech.server.otel.OtelContext;
import com.l7tech.server.policy.PolicyMetadata;
import com.l7tech.server.policy.assertion.RoutingResultListener;
import com.l7tech.server.policy.assertion.ServerAssertion;
import com.l7tech.server.stepdebug.DebugContext;
import com.l7tech.util.InvalidDocumentFormatException;
import com.l7tech.util.Pair;
import com.l7tech.xml.SoapFaultLevel;
import java.io.IOException;
import java.net.URL;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.logging.Level;
import javax.wsdl.Binding;
import javax.wsdl.Operation;
import javax.wsdl.WSDLException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.xml.sax.SAXException;

class d
implements PolicyEnforcementContext {
    @NotNull
    private final PolicyEnforcementContext a;
    private static final String[] b;

    private d(@NotNull PolicyEnforcementContext policyEnforcementContext) {
        if (policyEnforcementContext == null) {
            d.a(0);
        }
        this.a = policyEnforcementContext;
    }

    private void a() throws IllegalStateException {
    }

    @Override
    public Message getRequest() {
        this.a();
        return this.a.getRequest();
    }

    @Override
    public Message getResponse() {
        this.a();
        return this.a.getResponse();
    }

    @Override
    public AuthenticationContext getDefaultAuthenticationContext() {
        this.a();
        return this.a.getDefaultAuthenticationContext();
    }

    @Override
    public AuthenticationContext getAuthenticationContext(Message message) {
        this.a();
        return this.a.getAuthenticationContext(message);
    }

    @Override
    public RoutingStatus getRoutingStatus() {
        this.a();
        return this.a.getRoutingStatus();
    }

    @Override
    public void setRoutingStatus(RoutingStatus routingStatus) {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean isPostRouting() {
        this.a();
        return this.a.isPostRouting();
    }

    @Override
    public boolean isReplyExpected() {
        this.a();
        return this.a.isReplyExpected();
    }

    @Override
    public Level getAuditLevel() {
        this.a();
        return this.a.getAuditLevel();
    }

    @Override
    public void setAuditLevel(Level level) {
        throw new UnsupportedOperationException();
    }

    @Override
    public RequestId getRequestId() {
        this.a();
        return this.a.getRequestId();
    }

    @Override
    public void addSeenAssertionStatus(AssertionStatus assertionStatus) {
        throw new UnsupportedOperationException();
    }

    @Override
    public Set<AssertionStatus> getSeenAssertionStatus() {
        this.a();
        return this.a.getSeenAssertionStatus();
    }

    @Override
    public boolean isAuditSaveRequest() {
        this.a();
        return this.a.isAuditSaveRequest();
    }

    @Override
    public void setAuditSaveRequest(boolean bl2) {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean isAuditSaveResponse() {
        this.a();
        return this.a.isAuditSaveResponse();
    }

    @Override
    public void setAuditSaveResponse(boolean bl2) {
        throw new UnsupportedOperationException();
    }

    @Override
    public Collection<ServerAssertion> getDeferredAssertions() {
        this.a();
        return Collections.unmodifiableCollection(this.a.getDeferredAssertions());
    }

    @Override
    public void addDeferredAssertion(ServerAssertion serverAssertion, ServerAssertion serverAssertion2) {
        throw new UnsupportedOperationException();
    }

    @Override
    public void removeDeferredAssertion(ServerAssertion serverAssertion) {
        throw new UnsupportedOperationException();
    }

    @Override
    public RoutingResultListener getRoutingResultListener() {
        this.a();
        return this.a.getRoutingResultListener();
    }

    @Override
    public void addRoutingResultListener(RoutingResultListener routingResultListener) {
        throw new UnsupportedOperationException();
    }

    @Override
    public void removeRoutingResultListener(RoutingResultListener routingResultListener) {
        throw new UnsupportedOperationException();
    }

    @Override
    public void setAuthenticationMissing() {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean isRequestPolicyViolated() {
        this.a();
        return this.a.isRequestPolicyViolated();
    }

    @Override
    public void setRequestPolicyViolated() {
        throw new UnsupportedOperationException();
    }

    @Override
    public void setRequestClaimingWrongPolicyVersion() {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean isRequestClaimingWrongPolicyVersion() {
        this.a();
        return this.a.isRequestClaimingWrongPolicyVersion();
    }

    @Override
    public PublishedService getService() {
        this.a();
        return this.a.getService();
    }

    @Override
    public void setService(PublishedService publishedService) {
        throw new UnsupportedOperationException();
    }

    @Override
    public PolicyMetadata getServicePolicyMetadata() {
        this.a();
        return this.a.getServicePolicyMetadata();
    }

    @Override
    public void setServicePolicyMetadata(PolicyMetadata policyMetadata) {
        throw new UnsupportedOperationException();
    }

    @Override
    public PolicyMetadata getCurrentPolicyMetadata() {
        this.a();
        return this.a.getCurrentPolicyMetadata();
    }

    @Override
    public void setCurrentPolicyMetadata(PolicyMetadata policyMetadata) {
        throw new UnsupportedOperationException();
    }

    @Override
    public PolicyContextCache getCache() {
        this.a();
        return this.a.getCache();
    }

    @Override
    public void setCache(PolicyContextCache policyContextCache) {
        throw new UnsupportedOperationException();
    }

    @Override
    public List<String> getIncrementedCounters() {
        this.a();
        return Collections.unmodifiableList(this.a.getIncrementedCounters());
    }

    @Override
    public void setVariable(@Nullable String string, @Nullable Object object) throws VariableNotSettableException {
        throw new UnsupportedOperationException();
    }

    @Override
    public Object getVariable(String string) throws NoSuchVariableException {
        this.a();
        return this.a.getVariable(string);
    }

    @Override
    public Map<String, Object> getAllVariables() {
        this.a();
        return Collections.unmodifiableMap(this.a.getAllVariables());
    }

    @Override
    public Map<String, Object> getVariableMap(String[] stringArray, Audit audit) {
        this.a();
        return Collections.unmodifiableMap(this.a.getVariableMap(stringArray, audit));
    }

    @Override
    public void routingStarted() {
        throw new UnsupportedOperationException();
    }

    @Override
    public void routingFinished() {
        throw new UnsupportedOperationException();
    }

    @Override
    public long getRoutingStartTime() {
        this.a();
        return this.a.getRoutingStartTime();
    }

    @Override
    public long getRoutingEndTime() {
        this.a();
        return this.a.getRoutingEndTime();
    }

    @Override
    public long getRoutingTotalTime() {
        this.a();
        return this.a.getRoutingTotalTime();
    }

    @Override
    public Pair<Binding, Operation> getBindingAndOperation() throws IOException, SAXException, WSDLException, InvalidDocumentFormatException {
        this.a();
        return this.a.getBindingAndOperation();
    }

    @Override
    public boolean isStealthResponseMode() {
        this.a();
        return this.a.isStealthResponseMode();
    }

    @Override
    public long getStartTime() {
        this.a();
        return this.a.getStartTime();
    }

    @Override
    public long getAssertionLatencyNanos() {
        this.a();
        return this.a.getAssertionLatencyNanos();
    }

    @Override
    public void setAssertionLatencyNanos(long l2) {
        throw new UnsupportedOperationException();
    }

    @Override
    public URL getRoutedServiceUrl() {
        this.a();
        return this.a.getRoutedServiceUrl();
    }

    @Override
    public void setRoutedServiceUrl(URL uRL) {
        throw new UnsupportedOperationException();
    }

    @Override
    public long getEndTime() {
        this.a();
        return this.a.getEndTime();
    }

    @Override
    public void setEndTime() {
        throw new UnsupportedOperationException();
    }

    @Override
    public SoapFaultLevel getFaultlevel() {
        this.a();
        return this.a.getFaultlevel();
    }

    @Override
    public void setFaultlevel(SoapFaultLevel soapFaultLevel) {
        throw new UnsupportedOperationException();
    }

    @Override
    public void assertionStarting(ServerAssertion serverAssertion) {
        throw new UnsupportedOperationException();
    }

    @Override
    public void assertionFinished(ServerAssertion serverAssertion, AssertionStatus assertionStatus, @Nullable LatencyMetrics latencyMetrics) {
        throw new UnsupportedOperationException();
    }

    @Override
    public List<PolicyEnforcementContext.AssertionResult> getAssertionResults() {
        this.a();
        return Collections.unmodifiableList(this.a.getAssertionResults());
    }

    @Override
    public Collection<Integer> getAssertionNumber() {
        this.a();
        return Collections.unmodifiableCollection(this.a.getAssertionNumber());
    }

    @Override
    public Message getTargetMessage(MessageTargetable messageTargetable) throws NoSuchVariableException {
        this.a();
        return this.a.getTargetMessage(messageTargetable);
    }

    @Override
    public Message getOrCreateTargetMessage(MessageTargetable messageTargetable, boolean bl2) throws NoSuchVariableException, VariableNotSettableException {
        this.a();
        return this.a.getOrCreateTargetMessage(messageTargetable, bl2);
    }

    @Override
    public Message getTargetMessage(MessageTargetable messageTargetable, boolean bl2) throws NoSuchVariableException {
        this.a();
        return this.a.getTargetMessage(messageTargetable, bl2);
    }

    @Override
    public boolean isResponseWss11() {
        this.a();
        return this.a.isResponseWss11();
    }

    @Override
    public void setResponseWss11(boolean bl2) {
        throw new UnsupportedOperationException();
    }

    @Override
    public void setMalformedRequest() {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean isMalformedRequest() {
        this.a();
        return this.a.isMalformedRequest();
    }

    @Override
    public void setSavedRequestL7aMessageId(String string) {
        throw new UnsupportedOperationException();
    }

    @Override
    public String getSavedRequestL7aMessageId() {
        this.a();
        return this.a.getSavedRequestL7aMessageId();
    }

    @Override
    @NotNull
    public List<MessageContextMapping> getMappings() {
        List<MessageContextMapping> list;
        try {
            this.a();
            list = Collections.unmodifiableList(this.a.getMappings());
            if (list == null) {
                d.a(1);
            }
        }
        catch (UnsupportedOperationException unsupportedOperationException) {
            throw d.a(unsupportedOperationException);
        }
        return list;
    }

    @Override
    public void setMappings(List<MessageContextMapping> list) {
        throw new UnsupportedOperationException();
    }

    @Override
    public Collection<Integer> getAssertionOrdinalPath() {
        this.a();
        return Collections.unmodifiableCollection(this.a.getAssertionOrdinalPath());
    }

    @Override
    public void pushAssertionOrdinal(int n2) {
        throw new UnsupportedOperationException();
    }

    @Override
    public int popAssertionOrdinal() throws NoSuchElementException {
        throw new UnsupportedOperationException();
    }

    @Override
    public void passDownAssertionOrdinal(@NotNull PolicyEnforcementContext policyEnforcementContext) {
        try {
            if (policyEnforcementContext == null) {
                d.a(2);
            }
        }
        catch (UnsupportedOperationException unsupportedOperationException) {
            throw d.a(unsupportedOperationException);
        }
        throw new UnsupportedOperationException();
    }

    @Override
    public void setTraceListener(AssertionTraceListener assertionTraceListener) {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean hasTraceListener() {
        this.a();
        return this.a.hasTraceListener();
    }

    @Override
    public AssertionTraceListener getTraceListener() {
        this.a();
        return this.a.getTraceListener();
    }

    @Override
    public boolean isRequestWasCompressed() {
        this.a();
        return this.a.isRequestWasCompressed();
    }

    @Override
    public void setRequestWasCompressed(boolean bl2) {
        throw new UnsupportedOperationException();
    }

    @Override
    public AssertionStatus getPolicyResult() {
        this.a();
        return this.a.getPolicyResult();
    }

    @Override
    public void setPolicyResult(AssertionStatus assertionStatus) {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean isPolicyExecutionAttempted() {
        this.a();
        return this.a.isPolicyExecutionAttempted();
    }

    @Override
    public void setPolicyExecutionAttempted(boolean bl2) {
        throw new UnsupportedOperationException();
    }

    @Override
    @Nullable
    public DebugContext getDebugContext() {
        this.a();
        return this.a.getDebugContext();
    }

    @Override
    public void setDebugContext(@Nullable DebugContext debugContext) {
        throw new UnsupportedOperationException();
    }

    @Override
    public OtelContext getOtelContext() {
        this.a();
        return this.a.getOtelContext();
    }

    @Override
    public void setOtelContext(OtelContext otelContext) {
        throw new UnsupportedOperationException();
    }

    @Override
    public void setAuditContext(@Nullable AuditContext auditContext) {
        throw new UnsupportedOperationException();
    }

    @Override
    @Nullable
    public AuditContext getAuditContext() {
        this.a();
        return this.a.getAuditContext();
    }

    @Override
    public void runOnClose(Runnable runnable) {
        throw new UnsupportedOperationException();
    }

    @Override
    public void runOnCloseFirst(Runnable runnable) {
        throw new UnsupportedOperationException();
    }

    @Override
    public void close() {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean isOverwriteResponseCookiePath() {
        this.a();
        return this.a.isOverwriteResponseCookiePath();
    }

    @Override
    public void setOverwriteResponseCookiePath(boolean bl2) {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean isOverwriteResponseCookieDomain() {
        this.a();
        return this.a.isOverwriteResponseCookieDomain();
    }

    @Override
    public void setOverwriteResponseCookieDomain(boolean bl2) {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean isAuthorizedRequest() {
        this.a();
        return this.a.isAuthorizedRequest();
    }

    @Override
    public boolean isCompletedRequest() {
        this.a();
        return this.a.isCompletedRequest();
    }

    /*
     * Exception decompiling
     */
    private static void a(int var0) {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Tried to end blocks [0[TRYBLOCK]], but top level block is 6[SWITCH]
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.processEndingBlocks(Op04StructuredStatement.java:435)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:484)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:736)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:850)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1055)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    private static UnsupportedOperationException a(UnsupportedOperationException unsupportedOperationException) {
        return unsupportedOperationException;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[9];
                var3_1 = 0;
                var2_2 = "\u0002H|0^s\u00157\u001a}*A6;\rUo\u000bFz\u0017cJz7R{\u001e7_ie\u00143\bd\u001at#\u00133\bm\u001fhe^c\b7\u001au*G6\u0019&\u001au0_z\u00183[h6wy\f-{h6Vd\u000f*Uu\nAr\u0012-[w*\u0003tt1}c\u0017/\u001av G~\u0014'\u001a>6\u001d3\bcWn6G6\u0015,N;7Vb\u000e1T;+Fz\u0017# Uvj_!\u000f&Ysj@s\t5_ij^s\b0[| \u001c{\u001e7Hr&@9\u001f\u0005 Rr)W# Uvj_!\u000f&Ysj@s\t5_ij^s\b0[| \u001c{\u001e7Hr&@9\u001f\u000b$_o\bRf\u000b*T|6";
                var4_3 = "\u0002H|0^s\u00157\u001a}*A6;\rUo\u000bFz\u0017cJz7R{\u001e7_ie\u00143\bd\u001at#\u00133\bm\u001fhe^c\b7\u001au*G6\u0019&\u001au0_z\u00183[h6wy\f-{h6Vd\u000f*Uu\nAr\u0012-[w*\u0003tt1}c\u0017/\u001av G~\u0014'\u001a>6\u001d3\bcWn6G6\u0015,N;7Vb\u000e1T;+Fz\u0017# Uvj_!\u000f&Ysj@s\t5_ij^s\b0[| \u001c{\u001e7Hr&@9\u001f\u0005 Rr)W# Uvj_!\u000f&Ysj@s\t5_ij^s\b0[| \u001c{\u001e7Hr&@9\u001f\u000b$_o\bRf\u000b*T|6".length();
                var1_4 = 62;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = d.a(v0, d.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "m\u0015=j\u001e=El\u00065\u0019?f\rb";
                    var4_3 = "m\u0015=j\u001e=El\u00065\u0019?f\rb".length();
                    var1_4 = 8;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 26;
                        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++] = d.a(v0, d.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;
            }
        }
        d.b = var5;
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x2B);
        }
        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 -> 19;
                    case 1 -> 106;
                    case 2 -> 75;
                    case 3 -> 21;
                    case 4 -> 99;
                    case 5 -> 70;
                    default -> 43;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

