package com.l7tech.policy.assertion;

import com.l7tech.policy.wsp.Java5EnumTypeMapping;
import com.l7tech.policy.wsp.SimpleTypeMappingFinder;
import java.util.Collections;
import org.jetbrains.annotations.NotNull;

public class AddHeaderAssertion extends MessageTargetableAssertion implements UsesVariables {
   private AddHeaderAssertion.Operation operation = AddHeaderAssertion.Operation.ADD;
   private String headerName;
   private String headerValue;
   private String metadataType;
   private boolean removeExisting;
   private boolean evaluateNameAsExpression;
   private boolean evaluateValueExpression;
   private static final String META_INITIALIZED;
   private static final String baseName;
   private static final AssertionNodeNameFactory<AddHeaderAssertion> nodeNameFactory;
   static final long serialVersionUID = -5997470513119569294L;
   private static final String[] b;

   public AddHeaderAssertion() {
      this.metadataType = b[16];
   }

   public String getHeaderName() {
      return this.headerName;
   }

   public void setHeaderName(String var1) {
      this.headerName = var1;
   }

   public String getHeaderValue() {
      return this.headerValue;
   }

   public void setHeaderValue(String var1) {
      this.headerValue = var1;
   }

   public String getMetadataType() {
      return this.metadataType;
   }

   public void setMetadataType(String var1) {
      this.metadataType = var1;
   }

   public boolean isRemoveExisting() {
      return this.removeExisting;
   }

   public void setRemoveExisting(boolean var1) {
      this.removeExisting = var1;
   }

   @NotNull
   public AddHeaderAssertion.Operation getOperation() {
      try {
         return this.operation;
      } catch (IllegalStateException var1) {
         throw a(var1);
      }
   }

   public void setOperation(@NotNull AddHeaderAssertion.Operation var1) {
      try {
         if (var1 == null) {
            $$$reportNull$$$0(1);
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }

      this.operation = var1;
   }

   public boolean isEvaluateNameAsExpression() {
      return this.evaluateNameAsExpression;
   }

   public void setEvaluateNameAsExpression(boolean var1) {
      this.evaluateNameAsExpression = var1;
   }

   public boolean isEvaluateValueExpression() {
      return this.evaluateValueExpression;
   }

   public void setEvaluateValueExpression(boolean var1) {
      this.evaluateValueExpression = var1;
   }

   @Override
   protected MessageTargetableAssertion.VariablesUsed doGetVariablesUsed() {
      return super.doGetVariablesUsed().withExpressions(this.headerName, this.headerValue);
   }

   @Override
   public AssertionMetadata meta() {
      DefaultAssertionMetadata var1 = this.defaultMeta();

      try {
         if (Boolean.TRUE.equals(var1.get(META_INITIALIZED))) {
            return var1;
         }
      } catch (IllegalStateException var3) {
         throw a(var3);
      }

      String[] var2 = b;
      var1.put(var2[14], var2[18]);
      var1.put(var2[0], var2[11]);
      var1.put(var2[17], var2[4]);
      var1.put(var2[20], new String[]{var2[27]});
      var1.put(var2[6], var2[9]);
      var1.put(var2[13], var2[12]);
      var1.put(var2[2], var2[25]);
      var1.put(var2[5], nodeNameFactory);
      var1.put(var2[26], var2[19]);
      var1.put(var2[28], new SimpleTypeMappingFinder(Collections.singletonList(new Java5EnumTypeMapping(AddHeaderAssertion.Operation.class, var2[22]))));
      var1.put(META_INITIALIZED, Boolean.TRUE);
      return var1;
   }

   static {
      String[] var5 = new String[29];
      int var3 = 0;
      String var2 = "A\u000eH/&~BQ\u0002T\"#h\nU-3r\u0012q\u0019Z\"'g]W\u001f\u001b\u001c&xB@\u0019O%1d\u001dm\u000eZ(1eA\u0015U\u0004W%7nsA\u001dR/1T^D\u0018H\"5zW\u0014\u000b\u0006^85sSQ\nr\"=c[D\u0007R61s-F\u0004Vc8 F@\bSc7x\\V\u0004W){eWV\u0004N>7rA\n;I#$r@Q\u0002^?e!\u001cB\u0002]\u0015U\u0004W%7n|J\u000f^\u00025zWc\nX8;eK\u0019U\u0019T<1eFL\u000eH\t0~FJ\u0019x 5dAK\nV)\fV\u000eO\u0003$r@D\u001fR#:.F\u0004Vc8 F@\bSc$x^L\bBc5dA@\u0019O%;y\u001dd\u000f_\u00041vV@\u0019z?'r@Q\u0002T\"2F\u0004Vb8 F@\bSb7x\\V\u0004W)zgSK\u000eW?zVVA#^-0r@d\u0018H)&c[J\u0005\u007f%5{]B.F\u0004Vc8 F@\bSc$x^L\bBc5dA@\u0019O%;y\u001dd\u000f_\u00041vV@\u0019z?'r@Q\u0002T\"*d\u000f_`teWU\u0007Z/17]WKI)9xD@KK>;gWW\u001fR)'8Z@\n_)&d\u001c'q\u0019Z\"'g]W\u001f\u001b\u001c&xB@\u0019O%1d\u001dm\u000eZ(1eA\u0005;I#$r@Q\u0002^?\u0014U\u0019T<1eFL\u000eH\r7c[J\u0005u-9r\tV\u0003T> YSH\u000e\tJ\u001b^>5c[J\u0005\u000bm?o\u001ct_WD\u000f^>\u000fU\nW) cWk\u0004_)\u001dt]K#h\nU-3r\u0012q\u0019Z\"'g]W\u001f\u001b\u001c&xB@\u0019O%1d\u001dm\u000eZ(1eA7F\u0004Vb8 F@\bSb$x^L\bBb\"v^L\u000fZ8;e\u001cd\u000f_\u00041vV@\u0019z?'r@Q\u0002T\"\u0002v^L\u000fZ8;e\u000eU\nW) cWc\u0004W(1eA*e%T8\u001ab^IKV) \u007f]AK\u001e?z2A\u0005\u0006N? 7\\J\u001f\u001b>1cGW\u0005\u001b\"!{^\tJ\u001b^>5c[J\u0005>d\u0019\\99r\\QK]#&7rk\u0004O\u0002!{^\u0005\u001bZ>5zWQ\u000eIls2A\u0002KT*t2A\u000bNHl9bAQKU# 7P@KU98{\fB\u000eO\u0003$r@D\u001fR#:\u0004D\u001eO#\u0018U\u0004W%7ndD\u0007R(5c]W(W-'d\\D\u0006^";
      int var4 = "A\u000eH/&~BQ\u0002T\"#h\nU-3r\u0012q\u0019Z\"'g]W\u001f\u001b\u001c&xB@\u0019O%1d\u001dm\u000eZ(1eA\u0015U\u0004W%7nsA\u001dR/1T^D\u0018H\"5zW\u0014\u000b\u0006^85sSQ\nr\"=c[D\u0007R61s-F\u0004Vc8 F@\bSc7x\\V\u0004W){eWV\u0004N>7rA\n;I#$r@Q\u0002^?e!\u001cB\u0002]\u0015U\u0004W%7n|J\u000f^\u00025zWc\nX8;eK\u0019U\u0019T<1eFL\u000eH\t0~FJ\u0019x 5dAK\nV)\fV\u000eO\u0003$r@D\u001fR#:.F\u0004Vc8 F@\bSc$x^L\bBc5dA@\u0019O%;y\u001dd\u000f_\u00041vV@\u0019z?'r@Q\u0002T\"2F\u0004Vb8 F@\bSb7x\\V\u0004W)zgSK\u000eW?zVVA#^-0r@d\u0018H)&c[J\u0005\u007f%5{]B.F\u0004Vc8 F@\bSc$x^L\bBc5dA@\u0019O%;y\u001dd\u000f_\u00041vV@\u0019z?'r@Q\u0002T\"*d\u000f_`teWU\u0007Z/17]WKI)9xD@KK>;gWW\u001fR)'8Z@\n_)&d\u001c'q\u0019Z\"'g]W\u001f\u001b\u001c&xB@\u0019O%1d\u001dm\u000eZ(1eA\u0005;I#$r@Q\u0002^?\u0014U\u0019T<1eFL\u000eH\r7c[J\u0005u-9r\tV\u0003T> YSH\u000e\tJ\u001b^>5c[J\u0005\u000bm?o\u001ct_WD\u000f^>\u000fU\nW) cWk\u0004_)\u001dt]K#h\nU-3r\u0012q\u0019Z\"'g]W\u001f\u001b\u001c&xB@\u0019O%1d\u001dm\u000eZ(1eA7F\u0004Vb8 F@\bSb$x^L\bBb\"v^L\u000fZ8;e\u001cd\u000f_\u00041vV@\u0019z?'r@Q\u0002T\"\u0002v^L\u000fZ8;e\u000eU\nW) cWc\u0004W(1eA*e%T8\u001ab^IKV) \u007f]AK\u001e?z2A\u0005\u0006N? 7\\J\u001f\u001b>1cGW\u0005\u001b\"!{^\tJ\u001b^>5c[J\u0005>d\u0019\\99r\\QK]#&7rk\u0004O\u0002!{^\u0005\u001bZ>5zWQ\u000eIls2A\u0002KT*t2A\u000bNHl9bAQKU# 7P@KU98{\fB\u000eO\u0003$r@D\u001fR#:\u0004D\u001eO#\u0018U\u0004W%7ndD\u0007R(5c]W(W-'d\\D\u0006^"
         .length();
      char var1 = 11;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 57;
         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;
                     baseName = b[1];
                     META_INITIALIZED = AddHeaderAssertion.class.getName() + b[3];
                     nodeNameFactory = new b();
                     return;
                  }

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

                  var2 = "\u0004W\u001dkn*\u0006\u0010\u0001K\u0018Lr&\u0015\u000fH\rYn*\u0005\u0013J";
                  var4 = "\u0004W\u001dkn*\u0006\u0010\u0001K\u0018Lr&\u0015\u000fH\rYn*\u0005\u0013J".length();
                  var1 = 7;
                  var7 = -1;
            }

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

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

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

      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 -> 28;
            case 1 -> 82;
            case 2 -> 2;
            case 3 -> 117;
            case 4 -> 109;
            case 5 -> 46;
            default -> 11;
         });
      }

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

   public enum Operation {
      ADD,
      REMOVE;

      private final String name;
      private static final String[] a;

      Operation(@NotNull String var3) {
         this.name = var3;
      }

      @NotNull
      public String getName() {
         try {
            return this.name;
         } catch (IllegalArgumentException var1) {
            throw a(var1);
         }
      }

      // $VF: Failed to inline enum fields
      // 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!)
      static {
         String[] var5 = new String[11];
         int var3 = 0;
         String var2 = "ZKAW~\u0006*H@clf6\\d.a}\\+_l.)k\u0006fC(cyk\\c^gz,jM7Ez`,v]/\\8kaa7DtDmmd7X,\\amu7I0Cm|xqG-\u001fIjhPM\"Tm|Mk[&B|gcv\f\f@m|mlA,^8kaa7DtDmmd7X,\\amu7I0Cm|xqG-\u001fIjhPM\"Tm|Mk[&B|gcv\f\f@m|mlA,^\u0006Zkaw^&\u0007okxVI.U\u00064gbq\\}\u0004foa}\u0003IJH";
         int var4 = "ZKAW~\u0006*H@clf6\\d.a}\\+_l.)k\u0006fC(cyk\\c^gz,jM7Ez`,v]/\\8kaa7DtDmmd7X,\\amu7I0Cm|xqG-\u001fIjhPM\"Tm|Mk[&B|gcv\f\f@m|mlA,^8kaa7DtDmmd7X,\\amu7I0Cm|xqG-\u001fIjhPM\"Tm|Mk[&B|gcv\f\f@m|mlA,^\u0006Zkaw^&\u0007okxVI.U\u00064gbq\\}\u0004foa}\u0003IJH"
            .length();
         char var1 = 6;
         int var7 = -1;

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

            while (true) {
               String var9 = a(var10000, a(var10001));
               switch (var10002) {
                  case 0:
                     var5[var3++] = var9;
                     if ((var7 += var1) >= var4) {
                        a = var5;
                        String[] var8 = a;
                        ADD = new AddHeaderAssertion.Operation(var8[9]);
                        REMOVE = new AddHeaderAssertion.Operation(var8[4]);
                        return;
                     }

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

                     var2 = "Spr>Sfqw_<Df4pm@yj\\{bLG5F2dwpS4Ofqd\"\u0015|Y54yd\u0012|Y<1e\"_,Yf4xmFyHw4xw^5";
                     var4 = "Spr>Sfqw_<Df4pm@yj\\{bLG5F2dwpS4Ofqd\"\u0015|Y54yd\u0012|Y<1e\"_,Yf4xmFyHw4xw^5".length();
                     var1 = 3;
                     var7 = -1;
               }

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

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

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

         return var10000;
      }

      private static String a(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 -> 29;
               case 1 -> 27;
               case 2 -> 25;
               case 3 -> 13;
               case 4 -> 61;
               case 5 -> 86;
               default -> 37;
            });
         }

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