package com.l7tech.server;

import com.l7tech.objectmodel.EntityManager;
import com.l7tech.util.Option;
import java.util.Set;
import org.jetbrains.annotations.NotNull;

public class EntityManagementContext {
   private final Set<? extends EntityManagementContext.EntityManagerProvider> a;
   private static final String[] b;

   public EntityManagementContext(@NotNull Set<? extends EntityManagementContext.EntityManagerProvider> var1) {
      if (var1 == null) {
         a(0);
      }

      super();
      this.a = var1;
   }

   public <EM extends EntityManager> EM getEntityManager(@NotNull Class<EM> var1) throws EntityManagementContext.EntityManagerException {
      try {
         if (var1 == null) {
            a(1);
         }
      } catch (EntityManagementContext.EntityManagerException var6) {
         throw a(var6);
      }

      for (EntityManagementContext.EntityManagerProvider var3 : this.a) {
         Option var4 = var3.getEntityManager(var1);

         try {
            if (var4.isSome()) {
               return (EM)var4.some();
            }
         } catch (EntityManagementContext.EntityManagerException var5) {
            throw a(var5);
         }
      }

      throw new EntityManagementContext.EntityManagerNotFoundException(b[5] + var1.getName() + "'");
   }

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

   static {
      String[] var5 = new String[7];
      int var3 = 0;
      String var2 = "\u001fI}\\y72\u001bIhRh<)\u0019Hd\u001aay\u000b\u001fDa\u001a~+\r\fB{\u001aH \u000b\u0013Spxl \u001e\u001dBdPc:<\u0015I}Pu:>;Un@`+\u0011\u000e\u0007oZ\u007fn?4H}{x\"\u0013ZWhGl#\u001a\u000eB{\u0015*k\f]\u0007fS-k\fT\u0002z\u0015`;\f\u000e\u0007gZyn\u001d\u001f\u0007g@a\"\u0006FNg\\yp\u0010\u001dB}pc:\u0016\u000e^DTc/\u0018\u001fU";
      int var4 = "\u001fI}\\y72\u001bIhRh<)\u0019Hd\u001aay\u000b\u001fDa\u001a~+\r\fB{\u001aH \u000b\u0013Spxl \u001e\u001dBdPc:<\u0015I}Pu:>;Un@`+\u0011\u000e\u0007oZ\u007fn?4H}{x\"\u0013ZWhGl#\u001a\u000eB{\u0015*k\f]\u0007fS-k\fT\u0002z\u0015`;\f\u000e\u0007gZyn\u001d\u001f\u0007g@a\"\u0006FNg\\yp\u0010\u001dB}pc:\u0016\u000e^DTc/\u0018\u001fU"
         .length();
      char var1 = '\r';
      int var7 = -1;

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

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

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

                  var2 = "h\u001e*\u000b.`\b@\u00110\u0003=|Z\r\u001e1\u0016z\u007fGX\u001e:B<vZ\r\u0004'\u0012?9\u000f\u0016H\u001e*\u000b.`eL\u001e?\u0005?kx_\u001f(\u000b>|Z^";
                  var4 = "h\u001e*\u000b.`\b@\u00110\u0003=|Z\r\u001e1\u0016z\u007fGX\u001e:B<vZ\r\u0004'\u0012?9\u000f\u0016H\u001e*\u000b.`eL\u001e?\u0005?kx_\u001f(\u000b>|Z^"
                     .length();
                  var1 = '#';
                  var7 = -1;
            }

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

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

      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 -> 64;
            case 1 -> 29;
            case 2 -> 51;
            case 3 -> 15;
            case 4 -> 55;
            case 5 -> 116;
            default -> 69;
         });
      }

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

   public static class EntityManagerException extends Exception {
      static final long serialVersionUID = 1053574146979406892L;

      public EntityManagerException(String var1, Throwable var2) {
         super(var1, var2);
      }

      public EntityManagerException(String var1) {
         super(var1);
      }
   }

   public static class EntityManagerNotFoundException extends EntityManagementContext.EntityManagerException {
      static final long serialVersionUID = -421086471383408643L;

      public EntityManagerNotFoundException(String var1, Throwable var2) {
         super(var1, var2);
      }

      public EntityManagerNotFoundException(String var1) {
         super(var1);
      }
   }

   public interface EntityManagerProvider {
      @NotNull
      <EM extends EntityManager> Option<EM> getEntityManager(@NotNull Class<EM> var1) throws EntityManagementContext.EntityManagerException;
   }
}
