package com.l7tech.message;

import com.l7tech.policy.assertion.xmlsec.XmlSecurityRecipientContext;
import com.l7tech.security.token.SecurityToken;
import com.l7tech.security.xml.WsSecurityVersion;
import com.l7tech.security.xml.decorator.DecorationRequirements;
import com.l7tech.security.xml.decorator.WssDecorator;
import com.l7tech.security.xml.processor.ProcessorException;
import com.l7tech.security.xml.processor.ProcessorResult;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.xml.sax.SAXException;

public class SecurityFacet extends c implements SecurityKnob {
   private ProcessorResult c = null;
   private final List<SecurityToken> d = new ArrayList<>();
   private DecorationRequirements e = null;
   private Map<String, DecorationRequirements> f = new HashMap<>();
   private ProcessorResultFactory g = null;
   private WsSecurityVersion h;
   private Map<String, List<WssDecorator.DecorationResult>> i = new HashMap<>();
   private boolean j = false;
   private boolean k = false;

   SecurityFacet(Message var1, c var2) {
      super(var1, var2);
   }

   @Override
   public List<SecurityToken> getAllSecurityTokens() {
      return Collections.unmodifiableList(this.d);
   }

   @Override
   public void addSecurityToken(SecurityToken var1) {
      try {
         if (var1 == null) {
            throw new NullPointerException();
         }
      } catch (NullPointerException var2) {
         throw a(var2);
      }

      this.d.add(var1);
   }

   public ProcessorResultFactory getLazyProcessor() {
      return this.g;
   }

   public void setProcessorResultFactory(ProcessorResultFactory var1) {
      this.g = var1;
   }

   @Override
   public ProcessorResult getProcessorResult() {
      return this.c;
   }

   @Override
   public ProcessorResult getOrCreateProcessorResult() throws ProcessorException, SAXException, IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getfield com/l7tech/message/SecurityFacet.c Lcom/l7tech/security/xml/processor/ProcessorResult;
      // 04: ifnonnull 15
      // 07: aload 0
      // 08: getfield com/l7tech/message/SecurityFacet.g Lcom/l7tech/message/ProcessorResultFactory;
      // 0b: ifnonnull 1e
      // 0e: goto 15
      // 11: invokestatic com/l7tech/message/SecurityFacet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 14: athrow
      // 15: aload 0
      // 16: getfield com/l7tech/message/SecurityFacet.c Lcom/l7tech/security/xml/processor/ProcessorResult;
      // 19: areturn
      // 1a: invokestatic com/l7tech/message/SecurityFacet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1d: athrow
      // 1e: aload 0
      // 1f: aload 0
      // 20: getfield com/l7tech/message/SecurityFacet.g Lcom/l7tech/message/ProcessorResultFactory;
      // 23: invokeinterface com/l7tech/message/ProcessorResultFactory.createProcessorResult ()Lcom/l7tech/security/xml/processor/ProcessorResult; 1
      // 28: dup_x1
      // 29: putfield com/l7tech/message/SecurityFacet.c Lcom/l7tech/security/xml/processor/ProcessorResult;
      // 2c: areturn
      // try (0 -> 6): 7 com/l7tech/security/xml/processor/ProcessorException
      // try (3 -> 12): 12 com/l7tech/security/xml/processor/ProcessorException
   }

   @Override
   public void setProcessorResult(ProcessorResult var1) {
      this.c = var1;
   }

   @Override
   public DecorationRequirements[] getDecorationRequirements() {
      Set var1 = this.f.keySet();
      int var2 = var1.size();

      try {
         if (this.e != null) {
            var2++;
         }
      } catch (NullPointerException var8) {
         throw a(var8);
      }

      DecorationRequirements[] var3 = new DecorationRequirements[var2];
      int var4 = 0;

      for (String var6 : var1) {
         var3[var4] = this.f.get(var6);
         var4++;
      }

      try {
         if (this.e != null) {
            var3[var2 - 1] = this.e;
         }

         return var3;
      } catch (NullPointerException var7) {
         throw a(var7);
      }
   }

   @Override
   public boolean hasDecorationRequirements() {
      try {
         if (this.e != null) {
            return true;
         }
      } catch (NullPointerException var1) {
         throw a(var1);
      }

      return false;
   }

   @Override
   public DecorationRequirements getAlternateDecorationRequirements(XmlSecurityRecipientContext param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 1
      // 01: ifnull 12
      // 04: aload 1
      // 05: invokevirtual com/l7tech/policy/assertion/xmlsec/XmlSecurityRecipientContext.localRecipient ()Z
      // 08: ifeq 1b
      // 0b: goto 12
      // 0e: invokestatic com/l7tech/message/SecurityFacet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 11: athrow
      // 12: aload 0
      // 13: invokevirtual com/l7tech/message/SecurityFacet.getOrMakeDecorationRequirements ()Lcom/l7tech/security/xml/decorator/DecorationRequirements;
      // 16: areturn
      // 17: invokestatic com/l7tech/message/SecurityFacet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a: athrow
      // 1b: aload 1
      // 1c: invokevirtual com/l7tech/policy/assertion/xmlsec/XmlSecurityRecipientContext.getActor ()Ljava/lang/String;
      // 1f: astore 2
      // 20: aload 0
      // 21: getfield com/l7tech/message/SecurityFacet.f Ljava/util/Map;
      // 24: aload 2
      // 25: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 2a: checkcast com/l7tech/security/xml/decorator/DecorationRequirements
      // 2d: astore 3
      // 2e: aload 3
      // 2f: ifnonnull 57
      // 32: new com/l7tech/security/xml/decorator/DecorationRequirements
      // 35: dup
      // 36: invokespecial com/l7tech/security/xml/decorator/DecorationRequirements.<init> ()V
      // 39: astore 3
      // 3a: aload 1
      // 3b: invokevirtual com/l7tech/policy/assertion/xmlsec/XmlSecurityRecipientContext.getX509Certificate ()Ljava/security/cert/X509Certificate;
      // 3e: astore 4
      // 40: aload 3
      // 41: aload 4
      // 43: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.setRecipientCertificate (Ljava/security/cert/X509Certificate;)V
      // 46: aload 3
      // 47: aload 2
      // 48: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.setSecurityHeaderActor (Ljava/lang/String;)V
      // 4b: aload 0
      // 4c: getfield com/l7tech/message/SecurityFacet.f Ljava/util/Map;
      // 4f: aload 2
      // 50: aload 3
      // 51: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 56: pop
      // 57: aload 3
      // 58: areturn
      // try (0 -> 5): 6 java/lang/NullPointerException
      // try (2 -> 11): 11 java/lang/NullPointerException
   }

   @Override
   public boolean hasAlternateDecorationRequirements(XmlSecurityRecipientContext param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 1
      // 01: ifnull 12
      // 04: aload 1
      // 05: invokevirtual com/l7tech/policy/assertion/xmlsec/XmlSecurityRecipientContext.localRecipient ()Z
      // 08: ifeq 1b
      // 0b: goto 12
      // 0e: invokestatic com/l7tech/message/SecurityFacet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 11: athrow
      // 12: aload 0
      // 13: invokevirtual com/l7tech/message/SecurityFacet.hasDecorationRequirements ()Z
      // 16: ireturn
      // 17: invokestatic com/l7tech/message/SecurityFacet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a: athrow
      // 1b: bipush 0
      // 1c: istore 2
      // 1d: aload 1
      // 1e: invokevirtual com/l7tech/policy/assertion/xmlsec/XmlSecurityRecipientContext.getActor ()Ljava/lang/String;
      // 21: astore 3
      // 22: aload 0
      // 23: getfield com/l7tech/message/SecurityFacet.f Ljava/util/Map;
      // 26: aload 3
      // 27: invokeinterface java/util/Map.containsKey (Ljava/lang/Object;)Z 2
      // 2c: ifeq 4d
      // 2f: aload 0
      // 30: getfield com/l7tech/message/SecurityFacet.f Ljava/util/Map;
      // 33: aload 3
      // 34: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 39: checkcast com/l7tech/security/xml/decorator/DecorationRequirements
      // 3c: astore 4
      // 3e: aload 4
      // 40: ifnull 4b
      // 43: bipush 1
      // 44: goto 4c
      // 47: invokestatic com/l7tech/message/SecurityFacet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4a: athrow
      // 4b: bipush 0
      // 4c: istore 2
      // 4d: iload 2
      // 4e: ireturn
      // try (0 -> 5): 6 java/lang/NullPointerException
      // try (2 -> 11): 11 java/lang/NullPointerException
      // try (29 -> 33): 33 java/lang/NullPointerException
   }

   @Override
   public DecorationRequirements getOrMakeDecorationRequirements() {
      try {
         if (this.e == null) {
            this.e = new DecorationRequirements();
         }
      } catch (NullPointerException var1) {
         throw a(var1);
      }

      return this.e;
   }

   @Override
   public void removeAllDecorationRequirements() {
      this.e = null;
      this.f = new HashMap<>();
   }

   @Override
   public WsSecurityVersion getPolicyWssVersion() {
      return this.h;
   }

   @Override
   public void setPolicyWssVersion(WsSecurityVersion var1) {
      this.h = var1;
   }

   @Override
   public void addDecorationResult(WssDecorator.DecorationResult var1) {
      try {
         if (!this.i.containsKey(var1.getSecurityHeaderActor())) {
            this.i.put(var1.getSecurityHeaderActor(), new ArrayList<>());
         }
      } catch (NullPointerException var2) {
         throw a(var2);
      }

      this.i.get(var1.getSecurityHeaderActor()).add(var1);
   }

   @Override
   public List<WssDecorator.DecorationResult> getDecorationResults(String var1) {
      return this.i.get(var1);
   }

   @Override
   public List<WssDecorator.DecorationResult> getAllDecorationResults() {
      ArrayList var1 = new ArrayList();

      for (String var3 : this.i.keySet()) {
         var1.addAll(this.i.get(var3));
      }

      return var1;
   }

   @Override
   public void removeDecorationResults(String var1) {
      this.i.remove(var1);
   }

   @Override
   public void setSignatureConfirmationValidated(boolean var1) {
      this.j = var1;
   }

   @Override
   public boolean isSignatureConfirmationValidated() {
      return this.j;
   }

   @Override
   public boolean isNeedsSignatureConfirmations() {
      return this.k;
   }

   @Override
   public void setNeedsSignatureConfirmations(boolean var1) {
      this.k = var1;
   }

   @Override
   public boolean hasWss11Decorations() {
      for (DecorationRequirements var4 : this.getDecorationRequirements()) {
         try {
            if (var4.isWss11()) {
               return true;
            }
         } catch (NullPointerException var5) {
            throw a(var5);
         }
      }

      return false;
   }

   @Override
   public MessageKnob getKnob(Class var1) {
      try {
         if (var1 == SecurityKnob.class) {
            return this;
         }
      } catch (NullPointerException var2) {
         throw a(var2);
      }

      return super.getKnob(var1);
   }

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