package com.l7tech.server.audit;

import com.l7tech.gateway.common.audit.AuditRecord;
import com.l7tech.gateway.common.audit.MessageSummaryAuditRecord;
import com.l7tech.message.Message;
import com.l7tech.policy.variable.NoSuchVariableException;
import com.l7tech.server.message.HasOriginalContext;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.message.PolicyEnforcementContextWrapper;

public class AuditSinkPolicyEnforcementContext extends PolicyEnforcementContextWrapper implements HasOriginalContext {
   private final AuditRecord b;
   private final PolicyEnforcementContext c;

   public AuditSinkPolicyEnforcementContext(AuditRecord var1, PolicyEnforcementContext var2, PolicyEnforcementContext var3) {
      super(var2);
      this.b = var1;
      this.c = var3;
   }

   public AuditRecord getAuditRecord() {
      return this.b;
   }

   @Override
   public Message getOriginalRequest() {
      return this.c == null ? null : this.c.getRequest();
   }

   @Override
   public Message getOriginalResponse() {
      return this.c == null ? null : this.c.getResponse();
   }

   @Override
   public Object getOriginalContextVariable(String var1) throws NoSuchVariableException {
      try {
         if (this.c == null) {
            return null;
         }
      } catch (NoSuchVariableException var2) {
         throw a(var2);
      }

      return this.c.getVariable(var1);
   }

   public String getAuditedRequest() {
      return this.b instanceof MessageSummaryAuditRecord var1 ? var1.getRequestXml() : null;
   }

   public String getAuditedResponse() {
      return this.b instanceof MessageSummaryAuditRecord var1 ? var1.getResponseXml() : null;
   }

   @Override
   public PolicyEnforcementContext getOriginalContext() {
      return this.c;
   }

   private static NoSuchVariableException a(NoSuchVariableException var0) {
      return var0;
   }
}
