package com.l7tech.policy.assertion.xml;

import com.l7tech.policy.AssertionResourceInfo;
import com.l7tech.policy.StaticResourceInfo;
import com.l7tech.policy.assertion.AssertionMetadata;
import com.l7tech.policy.assertion.AssertionNodeNameFactory;
import com.l7tech.policy.assertion.DefaultAssertionMetadata;
import com.l7tech.policy.assertion.MessageTargetableAssertion;
import com.l7tech.policy.assertion.SetsVariables;
import com.l7tech.policy.assertion.TargetMessageType;
import com.l7tech.policy.assertion.UsesResourceInfo;
import com.l7tech.policy.assertion.UsesVariables;
import com.l7tech.policy.assertion.annotation.RequiresXML;
import com.l7tech.policy.variable.DataType;
import com.l7tech.policy.variable.VariableMetadata;
import java.util.logging.Logger;

@RequiresXML
public class XslTransformation extends MessageTargetableAssertion implements UsesVariables, UsesResourceInfo, SetsVariables {
   public static final String DEFAULT_PREFIX;
   public static final String VARIABLE_NAME;
   private static final Logger logger;
   @Deprecated
   public static final int APPLY_TO_REQUEST = 1;
   @Deprecated
   public static final int APPLY_TO_RESPONSE = 2;
   @Deprecated
   public static final int APPLY_TO_OTHER = -1;
   private String transformName;
   private String msgVarPrefix;
   private AssertionResourceInfo resourceInfo = new StaticResourceInfo();
   private int whichMimePart = 0;
   private String xsltVersion;
   private static final String baseName;
   static final AssertionNodeNameFactory policyNameFactory;
   private transient volatile String[] varsUsed;
   static final long serialVersionUID = 2888741825115528834L;
   private static final String[] b;

   public XslTransformation() {
      super(true);
   }

   @Deprecated
   public int getDirection() {
      if (this.getTarget() == TargetMessageType.REQUEST) {
         return 1;
      } else {
         return this.getTarget() == TargetMessageType.RESPONSE ? 2 : -1;
      }
   }

   @Deprecated
   public void setDirection(int var1) {
      switch (var1) {
         case -1:
            this.setTarget(TargetMessageType.OTHER);
         case 0:
         default:
            break;
         case 1:
            this.setTarget(TargetMessageType.REQUEST);
            break;
         case 2:
            this.setTarget(TargetMessageType.RESPONSE);
      }
   }

   public String getTransformName() {
      return this.transformName;
   }

   public void setTransformName(String var1) {
      this.transformName = var1;
   }

   public String getMsgVarPrefix() {
      return this.msgVarPrefix != null && !this.msgVarPrefix.trim().isEmpty() ? this.msgVarPrefix : b[8];
   }

   public void setMsgVarPrefix(String var1) {
      this.msgVarPrefix = var1 != null && !var1.trim().isEmpty() ? var1 : b[20];
   }

   public int getWhichMimePart() {
      return this.whichMimePart;
   }

   public void setWhichMimePart(int var1) {
      this.whichMimePart = var1;
   }

   @Override
   public AssertionResourceInfo getResourceInfo() {
      return this.resourceInfo;
   }

   @Override
   public void setResourceInfo(AssertionResourceInfo var1) {
      this.resourceInfo = var1;
      this.varsUsed = null;
   }

   public String getXsltVersion() {
      return this.xsltVersion;
   }

   public void setXsltVersion(String var1) {
      this.xsltVersion = var1;
   }

   @Override
   public MessageTargetableAssertion.VariablesUsed doGetVariablesUsed() {
      // $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/policy/assertion/xml/XslTransformation.varsUsed [Ljava/lang/String;
      // 04: ifnull 1a
      // 07: aload 0
      // 08: invokespecial com/l7tech/policy/assertion/MessageTargetableAssertion.doGetVariablesUsed ()Lcom/l7tech/policy/assertion/MessageTargetableAssertion$VariablesUsed;
      // 0b: aload 0
      // 0c: getfield com/l7tech/policy/assertion/xml/XslTransformation.varsUsed [Ljava/lang/String;
      // 0f: invokevirtual com/l7tech/policy/assertion/MessageTargetableAssertion$VariablesUsed.withVariables ([Ljava/lang/String;)Lcom/l7tech/policy/assertion/VariableUseSupport$VariablesUsedSupport;
      // 12: checkcast com/l7tech/policy/assertion/MessageTargetableAssertion$VariablesUsed
      // 15: areturn
      // 16: invokestatic com/l7tech/policy/assertion/xml/XslTransformation.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 19: athrow
      // 1a: new java/util/ArrayList
      // 1d: dup
      // 1e: invokespecial java/util/ArrayList.<init> ()V
      // 21: astore 1
      // 22: aload 0
      // 23: getfield com/l7tech/policy/assertion/xml/XslTransformation.resourceInfo Lcom/l7tech/policy/AssertionResourceInfo;
      // 26: instanceof com/l7tech/policy/SingleUrlResourceInfo
      // 29: ifeq 48
      // 2c: aload 0
      // 2d: getfield com/l7tech/policy/assertion/xml/XslTransformation.resourceInfo Lcom/l7tech/policy/AssertionResourceInfo;
      // 30: checkcast com/l7tech/policy/SingleUrlResourceInfo
      // 33: astore 2
      // 34: aload 1
      // 35: aload 2
      // 36: invokevirtual com/l7tech/policy/SingleUrlResourceInfo.getUrl ()Ljava/lang/String;
      // 39: invokestatic com/l7tech/policy/variable/Syntax.getReferencedNames (Ljava/lang/String;)[Ljava/lang/String;
      // 3c: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // 3f: invokeinterface java/util/List.addAll (Ljava/util/Collection;)Z 2
      // 44: pop
      // 45: goto b0
      // 48: aload 0
      // 49: getfield com/l7tech/policy/assertion/xml/XslTransformation.resourceInfo Lcom/l7tech/policy/AssertionResourceInfo;
      // 4c: instanceof com/l7tech/policy/StaticResourceInfo
      // 4f: ifeq b0
      // 52: aload 0
      // 53: getfield com/l7tech/policy/assertion/xml/XslTransformation.resourceInfo Lcom/l7tech/policy/AssertionResourceInfo;
      // 56: checkcast com/l7tech/policy/StaticResourceInfo
      // 59: astore 2
      // 5a: aload 2
      // 5b: invokevirtual com/l7tech/policy/StaticResourceInfo.getDocument ()Ljava/lang/String;
      // 5e: astore 3
      // 5f: aload 3
      // 60: ifnull 71
      // 63: aload 3
      // 64: invokevirtual java/lang/String.length ()I
      // 67: ifne 7a
      // 6a: goto 71
      // 6d: invokestatic com/l7tech/policy/assertion/xml/XslTransformation.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 70: athrow
      // 71: aload 0
      // 72: invokespecial com/l7tech/policy/assertion/MessageTargetableAssertion.doGetVariablesUsed ()Lcom/l7tech/policy/assertion/MessageTargetableAssertion$VariablesUsed;
      // 75: areturn
      // 76: invokestatic com/l7tech/policy/assertion/xml/XslTransformation.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 79: athrow
      // 7a: aload 3
      // 7b: aload 0
      // 7c: getfield com/l7tech/policy/assertion/xml/XslTransformation.xsltVersion Ljava/lang/String;
      // 7f: invokestatic com/l7tech/xml/xslt/XsltUtil.getVariablesUsedByStylesheet (Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
      // 82: astore 4
      // 84: aload 1
      // 85: aload 4
      // 87: invokeinterface java/util/List.addAll (Ljava/util/Collection;)Z 2
      // 8c: pop
      // 8d: goto b0
      // 90: astore 4
      // 92: getstatic com/l7tech/policy/assertion/xml/XslTransformation.logger Ljava/util/logging/Logger;
      // 95: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 98: aload 4
      // 9a: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 9d: getstatic com/l7tech/policy/assertion/xml/XslTransformation.b [Ljava/lang/String;
      // a0: bipush 0
      // a1: aaload
      // a2: swap
      // a3: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // a8: aload 4
      // aa: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // ad: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // b0: aload 0
      // b1: aload 1
      // b2: aload 1
      // b3: invokeinterface java/util/List.size ()I 1
      // b8: anewarray 99
      // bb: invokeinterface java/util/List.toArray ([Ljava/lang/Object;)[Ljava/lang/Object; 2
      // c0: checkcast [Ljava/lang/String;
      // c3: putfield com/l7tech/policy/assertion/xml/XslTransformation.varsUsed [Ljava/lang/String;
      // c6: aload 0
      // c7: invokespecial com/l7tech/policy/assertion/MessageTargetableAssertion.doGetVariablesUsed ()Lcom/l7tech/policy/assertion/MessageTargetableAssertion$VariablesUsed;
      // ca: aload 0
      // cb: getfield com/l7tech/policy/assertion/xml/XslTransformation.varsUsed [Ljava/lang/String;
      // ce: invokevirtual com/l7tech/policy/assertion/MessageTargetableAssertion$VariablesUsed.withVariables ([Ljava/lang/String;)Lcom/l7tech/policy/assertion/VariableUseSupport$VariablesUsedSupport;
      // d1: checkcast com/l7tech/policy/assertion/MessageTargetableAssertion$VariablesUsed
      // d4: areturn
      // try (45 -> 54): 54 java/lang/Exception
      // try (43 -> 48): 49 java/lang/Exception
      // try (0 -> 10): 10 java/lang/Exception
      // try (56 -> 65): 66 java/lang/Exception
   }

   @Override
   public AssertionMetadata meta() {
      DefaultAssertionMetadata var1 = this.defaultMeta();
      String[] var2 = b;
      var1.put(var2[12], new String[]{var2[6]});
      var1.put(var2[3], var2[5]);
      var1.put(var2[7], var2[19]);
      var1.put(var2[15], var2[17]);
      var1.put(var2[4], policyNameFactory);
      var1.put(var2[2], var2[13]);
      var1.put(var2[1], var2[9]);
      return var1;
   }

   @Override
   public MessageTargetableAssertion.VariablesSet doGetVariablesSet() {
      MessageTargetableAssertion.VariablesSet var10000 = super.doGetVariablesSet();
      VariableMetadata[] var10001 = new VariableMetadata[3];
      String var10006 = this.getMsgVarPrefix();
      String[] var1 = b;
      var10001[0] = new VariableMetadata(var10006 + var1[14], false, false, null, false, DataType.STRING);
      var10001[1] = new VariableMetadata(this.getMsgVarPrefix() + var1[16], false, false, null, false, DataType.STRING);
      var10001[2] = new VariableMetadata(this.getMsgVarPrefix() + var1[18], false, false, null, false, DataType.STRING);
      return var10000.withVariables(var10001);
   }

   static {
      String[] var5 = new String[21];
      int var3 = 0;
      String var2 = "\u001b:W\u0010as9,uE\u0019q=z=6N\u001dwxzx#C\u000el||40Q\\coq5uQ\b|q{+=G\u0019q'>\u0014('M\f`oj10Q=fiw7;l\u001dhx\u0019('M\f`oj10Q=fiw7;a\u0010dnm64O\u0019\t+=M\u000eqS\u007f50\u0015(:N\u0015fdP71G2dp{\u001e4A\bjog\u0018\u0019%R\u0010|=F\u000b\u0019\u0002(w|p+3M\u000eh|j1:L\u0003 8N\u000b<0Q\u001fwtn,<M\u0012\u0004 &N\b\u001d\u0000\u0006n\\Qo\u007f6&D\u0013wp\u007f,<M\u0012%Ml7%G\u000eqt{+\b50Q\u000fdz{+\u0018\u0019%R\u0010|=F\u000b\u0019\u0002(w|p+3M\u000eh|j1:L\u000e(4N\u0019qi{\u001e:N\u0018`om;;:ORi*j=6JRfrp+:N\u0019+|},<M\u0012+Em4\u0001P\u001dknx7'O\u001dqtq6\u0005P\u0013uxl,<G\u000fD~j1:L\tv8G\u000fv|y=&\u000f(4N\u0019qi{\u0016:F\u0019L~q6\u000fv8G\u000fv|y=&\f\u001alom,-;:OSi*j=6JSfrp+:N\u0019*o{+:W\u000efxmw-O\u0010vty64V\twx0?<D\u000ev8G\u000fv|y=&\f\u0010dnj";
      int var4 = "\u001b:W\u0010as9,uE\u0019q=z=6N\u001dwxzx#C\u000el||40Q\\coq5uQ\b|q{+=G\u0019q'>\u0014('M\f`oj10Q=fiw7;l\u001dhx\u0019('M\f`oj10Q=fiw7;a\u0010dnm64O\u0019\t+=M\u000eqS\u007f50\u0015(:N\u0015fdP71G2dp{\u001e4A\bjog\u0018\u0019%R\u0010|=F\u000b\u0019\u0002(w|p+3M\u000eh|j1:L\u0003 8N\u000b<0Q\u001fwtn,<M\u0012\u0004 &N\b\u001d\u0000\u0006n\\Qo\u007f6&D\u0013wp\u007f,<M\u0012%Ml7%G\u000eqt{+\b50Q\u000fdz{+\u0018\u0019%R\u0010|=F\u000b\u0019\u0002(w|p+3M\u000eh|j1:L\u000e(4N\u0019qi{\u001e:N\u0018`om;;:ORi*j=6JRfrp+:N\u0019+|},<M\u0012+Em4\u0001P\u001dknx7'O\u001dqtq6\u0005P\u0013uxl,<G\u000fD~j1:L\tv8G\u000fv|y=&\u000f(4N\u0019qi{\u0016:F\u0019L~q6\u000fv8G\u000fv|y=&\f\u001alom,-;:OSi*j=6JSfrp+:N\u0019*o{+:W\u000efxmw-O\u0010vty64V\twx0?<D\u000ev8G\u000fv|y=&\f\u0010dnj"
         .length();
      char var1 = '1';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 123;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     b = var5;
                     String[] var9 = b;
                     VARIABLE_NAME = b[10];
                     DEFAULT_PREFIX = var9[8];
                     baseName = var9[11];
                     logger = Logger.getLogger(XslTransformation.class.getName());
                     policyNameFactory = new c();
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = ")/GuxFV\u001f\u000fm:^YV\u0005\u0015d;\f[QQ\u001d+\u0006cugQ\u0011n&_UP\u0014R\u0004\t\u000fg!";
                  var4 = ")/GuxFV\u001f\u000fm:^YV\u0005\u0015d;\f[QQ\u001d+\u0006cugQ\u0011n&_UP\u0014R\u0004\t\u000fg!".length();
                  var1 = '%';
                  var7 = -1;
            }

            var10000 = 82;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

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

   private static char[] b(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 101);
      }

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 35;
            case 1 -> 46;
            case 2 -> 89;
            case 3 -> 7;
            case 4 -> 126;
            case 5 -> 102;
            default -> 101;
         });
      }

      return new String(var10001).intern();
   }
}
