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

import com.l7tech.gateway.api.GenericEntityMO;
import com.l7tech.gateway.api.ManagedObjectFactory;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.policy.GenericEntity;
import com.l7tech.policy.GenericEntityHeader;
import com.l7tech.server.entity.GenericEntityManager;
import com.l7tech.server.security.rbac.RbacServices;
import com.l7tech.server.security.rbac.SecurityFilter;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.springframework.transaction.PlatformTransactionManager;

@ResourceFactory.ResourceType(type = GenericEntityMO.class)
public class GenericEntityResourceFactory extends EntityManagerResourceFactory<GenericEntityMO, GenericEntity, GenericEntityHeader> {
   final GenericEntityManager o;
   private static final String p;
   private static final String[] q;

   public GenericEntityResourceFactory(RbacServices var1, SecurityFilter var2, PlatformTransactionManager var3, GenericEntityManager var4) {
      super(false, false, var1, var2, var3, var4);
      this.o = var4;
   }

   public GenericEntityMO asResource(GenericEntity var1) {
      GenericEntityMO var2 = ManagedObjectFactory.createGenericEntity();
      var2.setName(var1.getName());
      var2.setDescription(var1.getDescription());
      var2.setEnabled(var1.isEnabled());
      var2.setEntityClassName(var1.getEntityClassName());
      var2.setValueXml(var1.getValueXml());
      return var2;
   }

   public GenericEntity fromResource(Object var1, boolean var2) throws ResourceFactory.InvalidResourceException {
      try {
         if (!(var1 instanceof GenericEntityMO)) {
            throw new ResourceFactory.InvalidResourceException(ResourceFactory.InvalidResourceException.ExceptionType.UNEXPECTED_TYPE, q[6]);
         }
      } catch (ResourceFactory.InvalidResourceException var5) {
         throw a(var5);
      }

      GenericEntityMO var3 = (GenericEntityMO)var1;
      GenericEntity var4 = new GenericEntity();
      var4.setName(var3.getName());
      var4.setDescription(var3.getDescription());
      var4.setEnabled(var3.getEnabled());
      var4.setEntityClassName(var3.getEntityClassName());
      var4.setValueXml(var3.getValueXml());
      return var4;
   }

   protected void updateEntity(GenericEntity var1, GenericEntity var2) throws ResourceFactory.InvalidResourceException {
      var1.setName(var2.getName());
      var1.setDescription(var2.getDescription());
      var1.setEnabled(var2.isEnabled());
      var1.setValueXml(var2.getValueXml());
   }

   @Override
   protected Set<String> getCustomSelectors() {
      String[] var10002 = new String[2];
      String[] var1 = q;
      var10002[0] = var1[0];
      var10002[1] = var1[2];
      return new HashSet<>(Arrays.asList(var10002));
   }

   protected GenericEntity selectEntityCustom(Map<String, String> param1) throws ResourceFactory.ResourceAccessException, ResourceFactory.InvalidResourceSelectors {
      // $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 1
      // 01: getstatic com/l7tech/external/assertions/gatewaymanagement/server/GenericEntityResourceFactory.q [Ljava/lang/String;
      // 04: astore 7
      // 06: aload 7
      // 08: bipush 1
      // 09: aaload
      // 0a: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 0f: checkcast java/lang/String
      // 12: astore 2
      // 13: aload 1
      // 14: aload 7
      // 16: bipush 4
      // 17: aaload
      // 18: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 1d: checkcast java/lang/String
      // 20: astore 3
      // 21: aload 2
      // 22: ifnull 3c
      // 25: aload 3
      // 26: ifnonnull 3c
      // 29: goto 30
      // 2c: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/GenericEntityResourceFactory.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2f: athrow
      // 30: new com/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceSelectors
      // 33: dup
      // 34: invokespecial com/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceSelectors.<init> ()V
      // 37: athrow
      // 38: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/GenericEntityResourceFactory.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3b: athrow
      // 3c: aload 2
      // 3d: ifnonnull 4b
      // 40: aload 3
      // 41: ifnull 53
      // 44: goto 4b
      // 47: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/GenericEntityResourceFactory.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4a: athrow
      // 4b: bipush 1
      // 4c: goto 54
      // 4f: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/GenericEntityResourceFactory.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 52: athrow
      // 53: bipush 0
      // 54: istore 4
      // 56: aconst_null
      // 57: astore 5
      // 59: iload 4
      // 5b: ifeq 8a
      // 5e: aload 0
      // 5f: getfield com/l7tech/external/assertions/gatewaymanagement/server/GenericEntityResourceFactory.o Lcom/l7tech/server/entity/GenericEntityManager;
      // 62: aload 3
      // 63: invokeinterface com/l7tech/server/entity/GenericEntityManager.isRegistered (Ljava/lang/String;)Z 2
      // 68: ifeq 8a
      // 6b: goto 72
      // 6e: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/GenericEntityResourceFactory.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 71: athrow
      // 72: aload 0
      // 73: getfield com/l7tech/external/assertions/gatewaymanagement/server/GenericEntityResourceFactory.o Lcom/l7tech/server/entity/GenericEntityManager;
      // 76: aload 3
      // 77: aload 2
      // 78: invokeinterface com/l7tech/server/entity/GenericEntityManager.findByUniqueName (Ljava/lang/String;Ljava/lang/String;)Lcom/l7tech/policy/GenericEntity; 3
      // 7d: astore 5
      // 7f: goto 8a
      // 82: astore 6
      // 84: aload 0
      // 85: aload 6
      // 87: invokevirtual com/l7tech/external/assertions/gatewaymanagement/server/GenericEntityResourceFactory.handleObjectModelException (Lcom/l7tech/objectmodel/ObjectModelException;)V
      // 8a: aload 5
      // 8c: areturn
      // try (44 -> 51): 52 com/l7tech/objectmodel/FindException
      // try (31 -> 38): 38 com/l7tech/objectmodel/FindException
      // try (29 -> 33): 34 com/l7tech/objectmodel/FindException
      // try (18 -> 27): 27 com/l7tech/objectmodel/FindException
      // try (16 -> 20): 21 com/l7tech/objectmodel/FindException
      // try (54 -> 60): 61 com/l7tech/objectmodel/FindException
   }

   protected Goid doSaveEntity(GenericEntity var1) throws SaveException {
      try {
         if (!this.o.isRegistered(var1.getEntityClassName())) {
            throw new SaveException(q[5] + var1.getEntityClassName() + q[3]);
         }
      } catch (SaveException var2) {
         throw a(var2);
      }

      return this.o.save(var1);
   }

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

   static {
      String[] var5 = new String[7];
      int var3 = 0;
      String var2 = "*?cM\u0004*?cM\u0011#;`M\u0011q`\u00010zA\u0017aW=.k\u000ed7}\b\u0011}d--zM\u0011}g\u0011#;`M\u0011q`\u00010zA\u0017aW=.k";
      int var4 = "*?cM\u0004*?cM\u0011#;`M\u0011q`\u00010zA\u0017aW=.k\u000ed7}\b\u0011}d--zM\u0011}g\u0011#;`M\u0011q`\u00010zA\u0017aW=.k".length();
      char var1 = 4;
      int var7 = -1;

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

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

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

                  var2 = "\u0000;$E\f|l<=g\u0002\f|}' }\u0002\n~h='$L\b\u007fl*t\u0017+,tG\nfl*tcG\u0007w{'7$G\u0007f`:-";
                  var4 = "\u0000;$E\f|l<=g\u0002\f|}' }\u0002\n~h='$L\b\u007fl*t\u0017+,tG\nfl*tcG\u0007w{'7$G\u0007f`:-".length();
                  var1 = 30;
                  var7 = -1;
            }

            var10000 = 99;
            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] ^ 106);
      }

      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 -> 45;
            case 1 -> 55;
            case 2 -> 103;
            case 3 -> 65;
            case 4 -> 10;
            case 5 -> 113;
            default -> 106;
         });
      }

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