package com.l7tech.policy.assertion.composite;

import com.l7tech.objectmodel.ExternalEntityHeader;
import com.l7tech.objectmodel.migration.Migration;
import com.l7tech.objectmodel.migration.MigrationMappingSelection;
import com.l7tech.objectmodel.migration.PropertyResolver;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.AssertionMetadata;
import com.l7tech.policy.assertion.DefaultAssertionMetadata;
import com.l7tech.policy.assertion.UsesVariables;
import com.l7tech.policy.variable.Syntax;
import com.l7tech.search.Dependency;
import java.util.List;
import org.jetbrains.annotations.Nullable;

public class TransactionAssertion extends CompositeAssertion implements UsesVariables {
   private String connectionName = null;
   static final long serialVersionUID = 5921158519274371011L;
   private static final String[] c;

   public TransactionAssertion() {
   }

   public TransactionAssertion(List<? extends Assertion> var1) {
      super(var1);
   }

   public TransactionAssertion clone() {
      TransactionAssertion var1 = (TransactionAssertion)super.clone();
      var1.setConnectionName(this.connectionName);
      return var1;
   }

   @Migration(
      mapName = MigrationMappingSelection.NONE,
      mapValue = MigrationMappingSelection.REQUIRED,
      export = false,
      valueType = ExternalEntityHeader.ValueType.TEXT_ARRAY,
      resolver = PropertyResolver.Type.SERVER_VARIABLE
   )
   @Override
   public String[] getVariablesUsed() {
      return Syntax.getReferencedNames(this.connectionName);
   }

   @Override
   public boolean permitsEmpty() {
      return true;
   }

   @Override
   public AssertionMetadata meta() {
      DefaultAssertionMetadata var1 = this.defaultMeta();
      String[] var2 = c;
      var1.put(var2[15], var2[4]);
      var1.put(var2[1], var2[0]);
      var1.put(var2[12], var2[14]);
      var1.put(var2[13], var2[6]);
      var1.put(var2[11], var2[3]);
      var1.put(var2[9], var2[8]);
      var1.put(var2[7], var2[10]);
      var1.put(var2[2], var2[5]);
      return var1;
   }

   @Migration(mapName = MigrationMappingSelection.REQUIRED, export = false, resolver = PropertyResolver.Type.JDBC_CONNECTION)
   @Dependency(type = Dependency.DependencyType.JDBC_CONNECTION, methodReturnType = Dependency.MethodReturnType.NAME)
   @Nullable
   public String getConnectionName() {
      return this.connectionName;
   }

   public void setConnectionName(@Nullable String var1) {
      this.connectionName = var1;
   }

   static {
      String[] var5 = new String[16];
      int var3 = 0;
      String var2 = "4Z\u0000gQ7Y2V\u0005g^oC$Z\u0001-\u0012rH$Z\u0018:^e^xS\u0002$Ye_\u0018E\b&\u0013gD1\u0012'Z\u0001!^yc8Q\b\u0001^oC\u0018E\b&\u000e1P\f<HrH\u0004P\u0019\u0006\\mH84Z\u0000fQ7Y2V\u0005f^oC$Z\u0001-\u0013pL9P\u0001;\u0013T_6[\u001e)^tD8[,;Ne_#\\\u0002&moA>V\u0014\u0006RdH'4Z\u0000gQ7Y2V\u0005g^oC$Z\u0001-\u0012rH$Z\u0018:^e^xS\u0002$Ye_yR\u0004.\u001f6F\u001e-OtD8[W+Rm]8F\u0004<X.y%T\u0003;\\cY>Z\u0003Ą\u0016Y\u0001h^hD;QM)NsH%A\u0004'Ss\r:@\u001e<\u001de[6Y\u0018)Ie\r#ZM<OuHy\u0015M\tQl\r\u001dq/\u000b\u001dQX2G\u0014h\\s^2G\u0019!Rn^w@\u0003,Xr\r#]\u0004;\u001da^$P\u001f<ToCwA\u0005)I ^?T\u001f-\u001dtE2\u0015\u001e)Pe\r\u001dq/\u000b\u001dcB9[\b+IiB9\u0015\u0003)Pe\r \\\u0001$\u001dbHwG\u0018&\u001diCwA\u0005-\u001dsL:PM<OaC$T\u000e<ToCy\u0015M\u0006XsY2QM<OaC$T\u000e<ToC$\u0019M'O X$PM'[ @8G\bhIhL9\u0015\u0002&X N8[\u0003-^tD8[M&\\mHwT\u0019h\\ Y>X\bd\u001di^w[\u0002<\u001dsX'E\u0002:IeIy\u0017 F\u001d\u001cDpH\u001aT\u001d8TnJ\u0014Y\f;NnL:P'4Z\u0000gQ7Y2V\u0005g^oC$Z\u0001-\u0012rH$Z\u0018:^e^xS\u0002$Ye_yR\u0004.\u0014'G\u00028XrY>P\u001e\t^tD8[$+RnE4Z\u0000fQ7Y2V\u0005fMoA>V\u0014f\\s^2G\u0019!Rn\u00034Z\u00008RsD#PC\u001cOaC$T\u000e<ToC\u0016F\u001e-OtD8[91Me`6E\u001d!Sg\u0013'Z\u0001!^yc8Q\b\u000bQa^$[\f%X\t$]\u0002:INL:P\u000b3P\u001e+Oi]#\\\u0002&";
      int var4 = "4Z\u0000gQ7Y2V\u0005g^oC$Z\u0001-\u0012rH$Z\u0018:^e^xS\u0002$Ye_\u0018E\b&\u0013gD1\u0012'Z\u0001!^yc8Q\b\u0001^oC\u0018E\b&\u000e1P\f<HrH\u0004P\u0019\u0006\\mH84Z\u0000fQ7Y2V\u0005f^oC$Z\u0001-\u0013pL9P\u0001;\u0013T_6[\u001e)^tD8[,;Ne_#\\\u0002&moA>V\u0014\u0006RdH'4Z\u0000gQ7Y2V\u0005g^oC$Z\u0001-\u0012rH$Z\u0018:^e^xS\u0002$Ye_yR\u0004.\u001f6F\u001e-OtD8[W+Rm]8F\u0004<X.y%T\u0003;\\cY>Z\u0003Ą\u0016Y\u0001h^hD;QM)NsH%A\u0004'Ss\r:@\u001e<\u001de[6Y\u0018)Ie\r#ZM<OuHy\u0015M\tQl\r\u001dq/\u000b\u001dQX2G\u0014h\\s^2G\u0019!Rn^w@\u0003,Xr\r#]\u0004;\u001da^$P\u001f<ToCwA\u0005)I ^?T\u001f-\u001dtE2\u0015\u001e)Pe\r\u001dq/\u000b\u001dcB9[\b+IiB9\u0015\u0003)Pe\r \\\u0001$\u001dbHwG\u0018&\u001diCwA\u0005-\u001dsL:PM<OaC$T\u000e<ToCy\u0015M\u0006XsY2QM<OaC$T\u000e<ToC$\u0019M'O X$PM'[ @8G\bhIhL9\u0015\u0002&X N8[\u0003-^tD8[M&\\mHwT\u0019h\\ Y>X\bd\u001di^w[\u0002<\u001dsX'E\u0002:IeIy\u0017 F\u001d\u001cDpH\u001aT\u001d8TnJ\u0014Y\f;NnL:P'4Z\u0000gQ7Y2V\u0005g^oC$Z\u0001-\u0012rH$Z\u0018:^e^xS\u0002$Ye_yR\u0004.\u0014'G\u00028XrY>P\u001e\t^tD8[$+RnE4Z\u0000fQ7Y2V\u0005fMoA>V\u0014f\\s^2G\u0019!Rn\u00034Z\u00008RsD#PC\u001cOaC$T\u000e<ToC\u0016F\u001e-OtD8[91Me`6E\u001d!Sg\u0013'Z\u0001!^yc8Q\b\u000bQa^$[\f%X\t$]\u0002:INL:P\u000b3P\u001e+Oi]#\\\u0002&"
         .length();
      char var1 = '+';
      int var7 = -1;

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

         while (true) {
            String var8 = c(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     c = var5;
                     return;
                  }

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

                  var2 = "-A\u001f;-do\u0006k.\u0019nDt\bk}?\u007f_h\u0017?}9a\\=\u0006v.\u001d\u007fDt\bk.X`En\u0013%8\u000el\\h\u0006q8Xy_=\u0013w(\u001d-YsGd}\u000bd^z\u000b`}\f\u007fQs\u0014d>\fd_sG-;\u0017\u007f\u0010^&%4\u0016yUo\td1XxCxN\u000f\u0017d1\u001dyDx)j9\u001dDSr\t";
                  var4 = "-A\u001f;-do\u0006k.\u0019nDt\bk}?\u007f_h\u0017?}9a\\=\u0006v.\u001d\u007fDt\bk.X`En\u0013%8\u000el\\h\u0006q8Xy_=\u0013w(\u001d-YsGd}\u000bd^z\u000b`}\f\u007fQs\u0014d>\fd_sG-;\u0017\u007f\u0010^&%4\u0016yUo\td1XxCxN\u000f\u0017d1\u001dyDx)j9\u001dDSr\t"
                     .length();
                  var1 = 'j';
                  var7 = -1;
            }

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

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

      return var10000;
   }

   private static String c(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 -> 61;
            case 1 -> 95;
            case 2 -> 7;
            case 3 -> 34;
            case 4 -> 87;
            case 5 -> 106;
            default -> 71;
         });
      }

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