package com.l7tech.external.assertions.gatewaygraphql.server.resolver.mutation;

import com.l7tech.external.assertions.gatewaygraphql.EntityTypeInfo;
import com.l7tech.external.assertions.gatewaygraphql.server.data.EntityMappingInstruction;
import com.l7tech.external.assertions.gatewaygraphql.server.data.L7PolicyAliasDTO;
import com.l7tech.external.assertions.gatewaygraphql.server.resolver.entityref.EntityRefResolver;
import com.l7tech.external.assertions.gatewaygraphql.server.resolver.entityref.EntityRefUtil;
import com.l7tech.objectmodel.AliasHeader;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.folder.Folder;
import com.l7tech.policy.Policy;
import com.l7tech.policy.PolicyAlias;
import com.l7tech.server.policy.PolicyAliasManager;
import graphql.schema.DataFetchingEnvironment;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Logger;
import lombok.Generated;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.transaction.PlatformTransactionManager;

public class L7PolicyAliasMutationResolver
   extends EntityManagerAwareGraphQLMutationResolver<PolicyAlias, AliasHeader<Policy>, PolicyAliasManager, L7PolicyAliasDTO, L7PolicyAliasDTO.L7PolicyAliasInput> {
   @Generated
   private static final Logger b;
   private final AtomicReference<Object> c = new AtomicReference<>();
   private static final String[] d;

   public L7PolicyAliasMutationResolver(PlatformTransactionManager var1, BeanFactory var2) {
      super(EntityTypeInfo.POLICY_ALIAS, var1, (PolicyAliasManager)var2.getBean(d[3], PolicyAliasManager.class));
   }

   @Override
   protected Logger getLogger() {
      return b;
   }

   public L7PolicyAliasDTO.L7PolicyAliasesPayload setPolicyAliases(List<L7PolicyAliasDTO.L7PolicyAliasInput> var1, DataFetchingEnvironment var2) {
      L7PolicyAliasDTO.L7PolicyAliasesPayload var3 = new L7PolicyAliasDTO.L7PolicyAliasesPayload();

      try {
         this.transformNoDefEntityMappings(var1, var2);
         if (var1.isEmpty()) {
            return var3;
         }
      } catch (IllegalStateException var4) {
         throw b(var4);
      }

      return this.execute(var2, (var3x, var4x) -> {
         var1.forEach(var4xx -> this.doUpsertSilently(var4xx, var3x, var3, var4x));
         return var3;
      });
   }

   public L7PolicyAliasDTO.L7PolicyAliasPayload updatePolicyAlias(
      L7PolicyAliasDTO.L7PolicyAliasRefInput var1, L7PolicyAliasDTO.L7PolicyAliasInput var2, DataFetchingEnvironment var3
   ) {
      return this.execute(var3, (var3x, var4) -> {
         L7PolicyAliasDTO.L7PolicyAliasPayload var5 = new L7PolicyAliasDTO.L7PolicyAliasPayload();
         var2.setRefInput(var1);
         this.doUpdateSilently(var2, var3x, var5, var4);
         return var5;
      });
   }

   @Deprecated
   public L7PolicyAliasDTO.L7PolicyAliasPayload deletePolicyAlias(L7PolicyAliasDTO.L7PolicyAliasRefInput var1, DataFetchingEnvironment var2) {
      return this.execute(var2, (var2x, var3) -> {
         L7PolicyAliasDTO.L7PolicyAliasPayload var4 = new L7PolicyAliasDTO.L7PolicyAliasPayload();
         L7PolicyAliasDTO.L7PolicyAliasInput var5 = this.a(var1);
         this.doDeleteSilently(var5, var2x, var4, var3);
         return var4;
      });
   }

   public L7PolicyAliasDTO.L7PolicyAliasesPayload deletePolicyAliases(List<L7PolicyAliasDTO.L7PolicyAliasRefInput> var1, DataFetchingEnvironment var2) {
      L7PolicyAliasDTO.L7PolicyAliasesPayload var3 = new L7PolicyAliasDTO.L7PolicyAliasesPayload();

      try {
         if (var1.isEmpty()) {
            return var3;
         }
      } catch (IllegalStateException var4) {
         throw b(var4);
      }

      return this.execute(var2, (var3x, var4x) -> {
         var1.forEach(var4xx -> this.doDeleteSilently(this.a(var4xx), var3x, var3, var4x));
         return var3;
      });
   }

   private L7PolicyAliasDTO.L7PolicyAliasInput a(L7PolicyAliasDTO.L7PolicyAliasRefInput var1) {
      L7PolicyAliasDTO.L7PolicyAliasInput var2 = new L7PolicyAliasDTO.L7PolicyAliasInput();
      var2.setName(var1.getName());
      var2.setFolderPath(var1.getFolderPath());
      return var2;
   }

   protected PolicyAlias toEntity(L7PolicyAliasDTO.L7PolicyAliasInput var1) {
      try {
         if (var1.getPolicy() == null) {
            throw new IllegalStateException(String.format(d[5], var1.getName()));
         }
      } catch (IllegalStateException var2) {
         throw b(var2);
      }

      return new PolicyAlias(var1.getPolicy(), this.getOrCreateFolderSafely(var1, var1.getFolderPath()));
   }

   protected L7PolicyAliasDTO toEntityDTO(PolicyAlias var1) {
      return new L7PolicyAliasDTO(var1, this.a());
   }

   protected L7PolicyAliasDTO.L7PolicyAliasInput toEntityInput(EntityMappingInstruction var1) {
      L7PolicyAliasDTO.L7PolicyAliasInput var2 = new L7PolicyAliasDTO.L7PolicyAliasInput();
      var2.setName(var1.getIdentityValue());
      var2.setFolderPath(var1.getSourceString(d[4]));
      return var2;
   }

   protected Map<String, Object> toRawEntity(@Nullable L7PolicyAliasDTO.L7PolicyAliasInput var1) {
      Map var2 = super.toRawEntity(var1);

      try {
         if (var1 != null) {
            var2.put(d[1], var1.getFolderPath());
         }

         return var2;
      } catch (IllegalStateException var3) {
         throw b(var3);
      }
   }

   protected void setEntity(L7PolicyAliasDTO.L7PolicyAliasInput param1, PolicyAlias param2) {
      // $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 0
      // 01: aload 2
      // 02: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/L7PolicyAliasMutationResolver.isNewEntity (Lcom/l7tech/objectmodel/PersistentEntity;)Z
      // 05: ifne 31
      // 08: aload 2
      // 09: invokevirtual com/l7tech/policy/PolicyAlias.getFolder ()Lcom/l7tech/objectmodel/folder/Folder;
      // 0c: invokevirtual com/l7tech/objectmodel/folder/Folder.getPath ()Ljava/lang/String;
      // 0f: aload 1
      // 10: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyAliasDTO$L7PolicyAliasInput.getFolderPath ()Ljava/lang/String;
      // 13: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 16: ifeq 31
      // 19: goto 20
      // 1c: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/L7PolicyAliasMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1f: athrow
      // 20: new com/l7tech/external/assertions/gatewaygraphql/server/error/NoMutationException
      // 23: dup
      // 24: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/L7PolicyAliasMutationResolver.d [Ljava/lang/String;
      // 27: bipush 2
      // 28: aaload
      // 29: invokespecial com/l7tech/external/assertions/gatewaygraphql/server/error/NoMutationException.<init> (Ljava/lang/String;)V
      // 2c: athrow
      // 2d: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/L7PolicyAliasMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 30: athrow
      // 31: return
      // try (0 -> 11): 12 java/lang/IllegalStateException
      // try (4 -> 21): 21 java/lang/IllegalStateException
   }

   protected void setEntityConditionally(L7PolicyAliasDTO.L7PolicyAliasInput var1, PolicyAlias var2) {
      var2.setFolder(this.getOrCreateFolderSafely(var1, var1.getFolderPath()));
   }

   protected void resetEntitySelectively(L7PolicyAliasDTO.L7PolicyAliasInput var1, PolicyAlias var2) {
   }

   protected PolicyAlias findByInput(L7PolicyAliasDTO.L7PolicyAliasInput var1) throws FindException {
      L7PolicyAliasDTO.L7PolicyAliasRefInput var2 = (L7PolicyAliasDTO.L7PolicyAliasRefInput)var1.getRefInput();

      Policy var10000;
      label50: {
         try {
            if (var2 != null) {
               var10000 = this.a(var2.getName(), var2.getAliasedPolicyName());
               break label50;
            }
         } catch (FindException var8) {
            throw b(var8);
         }

         var10000 = this.a(var1.getName(), var1.getAliasedPolicyName());
      }

      Policy var3 = var10000;

      try {
         var1.setPolicy(var3);
         if (var3 == null) {
            return null;
         }
      } catch (FindException var5) {
         throw b(var5);
      }

      label42: {
         try {
            if (var2 != null) {
               var9 = this.getFolderSafely(var1, var2.getFolderPath());
               break label42;
            }
         } catch (FindException var7) {
            throw b(var7);
         }

         var9 = this.getFolderSafely(var1, var1.getFolderPath());
      }

      Folder var4 = var9;

      try {
         if (var4 == null) {
            return null;
         }
      } catch (FindException var6) {
         throw b(var6);
      }

      return (PolicyAlias)this.entityManager.findAliasByEntityAndFolder(var3.getGoid(), var4.getGoid());
   }

   private Policy a(String param1, @Nullable String param2) {
      // $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 2
      // 01: ifnull 39
      // 04: aload 0
      // 05: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/L7PolicyAliasMutationResolver.a ()Lcom/l7tech/external/assertions/gatewaygraphql/server/resolver/entityref/EntityRefResolver;
      // 08: aload 2
      // 09: invokeinterface com/l7tech/external/assertions/gatewaygraphql/server/resolver/entityref/EntityRefResolver.toEntityQuietly (Ljava/lang/String;)Lcom/l7tech/objectmodel/Entity; 2
      // 0e: checkcast com/l7tech/policy/Policy
      // 11: astore 3
      // 12: aload 3
      // 13: ifnull 47
      // 16: aload 3
      // 17: invokevirtual com/l7tech/policy/Policy.getName ()Ljava/lang/String;
      // 1a: aload 1
      // 1b: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 1e: ifne 47
      // 21: goto 28
      // 24: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/L7PolicyAliasMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 27: athrow
      // 28: new java/lang/IllegalStateException
      // 2b: dup
      // 2c: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/L7PolicyAliasMutationResolver.d [Ljava/lang/String;
      // 2f: bipush 0
      // 30: aaload
      // 31: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 34: athrow
      // 35: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/L7PolicyAliasMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 38: athrow
      // 39: aload 0
      // 3a: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/L7PolicyAliasMutationResolver.a ()Lcom/l7tech/external/assertions/gatewaygraphql/server/resolver/entityref/EntityRefResolver;
      // 3d: aload 1
      // 3e: invokeinterface com/l7tech/external/assertions/gatewaygraphql/server/resolver/entityref/EntityRefResolver.toEntityQuietly (Ljava/lang/String;)Lcom/l7tech/objectmodel/Entity; 2
      // 43: checkcast com/l7tech/policy/Policy
      // 46: astore 3
      // 47: aload 3
      // 48: areturn
      // try (8 -> 15): 16 java/lang/IllegalStateException
      // try (10 -> 25): 25 java/lang/IllegalStateException
   }

   @Generated
   private EntityRefResolver a() {
      Object var1 = this.c.get();
      if (var1 == null) {
         synchronized (this.c) {
            var1 = this.c.get();
            if (var1 == null) {
               EntityRefResolver var3 = EntityRefUtil.getRefResolver(EntityTypeInfo.POLICY);

               Object var10000;
               label41: {
                  try {
                     if (var3 == null) {
                        var10000 = this.c;
                        break label41;
                     }
                  } catch (IllegalStateException var6) {
                     throw b(var6);
                  }

                  var10000 = var3;
               }

               var1 = var10000;
               this.c.set(var1);
            }
         }
      }

      try {
         if (var1 == this.c) {
            return (EntityRefResolver)null;
         }
      } catch (IllegalStateException var5) {
         throw b(var5);
      }

      return (EntityRefResolver)var1;
   }

   static {
      String[] var5 = new String[6];
      int var3 = 0;
      String var2 = "\r?r\u0000^WMl#t\rDQPl=z\fH\u0012D% v\u0000YQA\n*<w\u0005H@y-'s$\t+r\u0012Y[G+sz\rDSZl:hAL^[)2\u007f\u0018\rGYl'tAIS])\u0012<<w\bNKh :z\u0012`SG-4~\u0013";
      int var4 = "\r?r\u0000^WMl#t\rDQPl=z\fH\u0012D% v\u0000YQA\n*<w\u0005H@y-'s$\t+r\u0012Y[G+sz\rDSZl:hAL^[)2\u007f\u0018\rGYl'tAIS])\u0012<<w\bNKh :z\u0012`SG-4~\u0013"
         .length();
      char var1 = 28;
      int var7 = -1;

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

         while (true) {
            String var8 = c(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     d = var5;
                     b = Logger.getLogger(L7PolicyAliasMutationResolver.class.getName());
                     return;
                  }

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

                  var2 = "\t\u001fT&kcZ\u000e\u0004P\u0015?\u001fT+mh*GUKk.\u007fe\u001bP^-{\u007fn";
                  var4 = "\t\u001fT&kcZ\u000e\u0004P\u0015?\u001fT+mh*GUKk.\u007fe\u001bP^-{\u007fn".length();
                  var1 = '\n';
                  var7 = -1;
            }

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

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

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

      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 -> 124;
            case 1 -> 99;
            case 2 -> 43;
            case 3 -> 81;
            case 4 -> 29;
            case 5 -> 2;
            default -> 25;
         });
      }

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