package com.l7tech.external.assertions.gatewaymanagement.server.rest.factories;

import com.l7tech.util.Either;
import com.l7tech.util.Option;
import com.l7tech.util.Functions.NullaryThrows;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallback;

class c implements TransactionCallback<Either<T, Option<R>>> {
   final NullaryThrows val$transactionalOperation;
   private static final String a;

   c(NullaryThrows var1) {
      this.val$transactionalOperation = var1;
   }

   public Either<T, Option<R>> doInTransaction(TransactionStatus var1) {
      try {
         return Either.right(Option.optional(this.val$transactionalOperation.call()));
      } catch (Throwable var6) {
         Throwable var2 = var6;
         var1.setRollbackOnly();

         try {
            return Either.left(var2);
         } catch (ClassCastException var5) {
            try {
               if (RuntimeException.class.isAssignableFrom(var2.getClass())) {
                  throw (RuntimeException)var2;
               }
            } catch (Throwable var4) {
               throw a(var4);
            }

            throw new IllegalStateException(a + var6.getClass(), var6);
         }
      }
   }

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

   static {
      String var10002 = a(
         5, a("\u0018y^()\u0012\b9r_p<\u000f\b(gO96\u0019K9\u007fI?.\u0019K+xI=y\u0011\u001e#tO96\u0019EmRC3<\u0007\u001f$xUp-\u001f\u0019\"`Ujy")
      );
      byte var10001 = -1;
      a = var10002;
   }

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

      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 -> 72;
            case 1 -> 18;
            case 2 -> 62;
            case 3 -> 85;
            case 4 -> 92;
            case 5 -> 114;
            default -> 110;
         });
      }

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