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

import com.l7tech.external.assertions.gatewaygraphql.EntityTypeInfo;
import com.l7tech.external.assertions.gatewaygraphql.server.data.BackgroundTaskPolicyDTO;
import com.l7tech.external.assertions.gatewaygraphql.server.data.EntityMappingInstruction;
import com.l7tech.external.assertions.gatewaygraphql.server.data.IdentityProviderHelper;
import com.l7tech.external.assertions.gatewaygraphql.server.data.ScheduledTaskDTO;
import com.l7tech.external.assertions.gatewaygraphql.server.resolver.EntityResolver;
import com.l7tech.external.assertions.gatewaygraphql.server.util.Util;
import com.l7tech.gateway.common.task.ScheduledTask;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.policy.Policy;
import com.l7tech.server.identity.IdentityProviderFactory;
import com.l7tech.server.policy.PolicyManager;
import com.l7tech.server.task.ScheduledTaskManager;
import graphql.schema.DataFetchingEnvironment;
import java.util.List;
import java.util.logging.Logger;
import lombok.Generated;
import lombok.NonNull;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.transaction.PlatformTransactionManager;

public class ScheduledTaskMutationResolver
   extends EntityManagerAwareGraphQLMutationResolver<ScheduledTask, EntityHeader, ScheduledTaskManager, ScheduledTaskDTO, ScheduledTaskDTO.ScheduledTaskInput> {
   @Generated
   private static final Logger b;
   private final PolicyManager c;
   private final IdentityProviderHelper d;
   private final BackgroundTaskPolicyMutationResolver e;
   private static final String[] f;

   public ScheduledTaskMutationResolver(PlatformTransactionManager var1, BeanFactory var2) {
      String[] var3 = f;
      super(EntityTypeInfo.SCHEDULED_TASK, var1, (ScheduledTaskManager)var2.getBean(var3[2], ScheduledTaskManager.class));
      this.c = (PolicyManager)var2.getBean(var3[5], PolicyManager.class);
      this.d = new IdentityProviderHelper((IdentityProviderFactory)var2.getBean(var3[1], IdentityProviderFactory.class));
      this.e = new BackgroundTaskPolicyMutationResolver(var1, var2, this.c);
   }

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

   public ScheduledTaskDTO.ScheduledTasksPayload setScheduledTasks(@NonNull List<ScheduledTaskDTO.ScheduledTaskInput> var1, DataFetchingEnvironment var2) {
      try {
         if (var1 == null) {
            throw new NullPointerException(f[0]);
         }
      } catch (NullPointerException var5) {
         throw a(var5);
      }

      ScheduledTaskDTO.ScheduledTasksPayload var3 = new ScheduledTaskDTO.ScheduledTasksPayload();

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

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

   public ScheduledTaskDTO.ScheduledTasksPayload deleteScheduledTasks(List<String> var1, DataFetchingEnvironment var2) {
      ScheduledTaskDTO.ScheduledTasksPayload var3 = new ScheduledTaskDTO.ScheduledTasksPayload();

      try {
         if (var1.isEmpty()) {
            return var3;
         }
      } catch (NullPointerException var4) {
         throw a(var4);
      }

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

   public BackgroundTaskPolicyDTO.BackgroundTaskPoliciesPayload setBackgroundTaskPolicies(
      List<BackgroundTaskPolicyDTO.BackgroundTaskPolicyInput> var1, DataFetchingEnvironment var2
   ) {
      return this.e.setBackgroundTaskPolicies(var1, var2);
   }

   public BackgroundTaskPolicyDTO.BackgroundTaskPoliciesPayload deleteBackgroundTaskPolicies(List<String> var1, DataFetchingEnvironment var2) {
      return this.e.deleteBackgroundTaskPolicies(var1, var2);
   }

   private String[] a(String param1, 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 0
      // 01: getfield com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/ScheduledTaskMutationResolver.d Lcom/l7tech/external/assertions/gatewaygraphql/server/data/IdentityProviderHelper;
      // 04: aload 1
      // 05: aload 2
      // 06: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/IdentityProviderHelper.resolveUserByLogin (Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
      // 09: astore 3
      // 0a: aload 3
      // 0b: bipush 0
      // 0c: aaload
      // 0d: ifnull 1d
      // 10: aload 3
      // 11: bipush 1
      // 12: aaload
      // 13: ifnonnull 3d
      // 16: goto 1d
      // 19: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/ScheduledTaskMutationResolver.a (Ljava/lang/NullPointerException;)Ljava/lang/NullPointerException;
      // 1c: athrow
      // 1d: new java/lang/IllegalStateException
      // 20: dup
      // 21: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/ScheduledTaskMutationResolver.f [Ljava/lang/String;
      // 24: bipush 3
      // 25: aaload
      // 26: bipush 2
      // 27: anewarray 38
      // 2a: dup
      // 2b: bipush 0
      // 2c: aload 1
      // 2d: aastore
      // 2e: dup
      // 2f: bipush 1
      // 30: aload 2
      // 31: aastore
      // 32: invokestatic java/lang/String.format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
      // 35: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 38: athrow
      // 39: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/ScheduledTaskMutationResolver.a (Ljava/lang/NullPointerException;)Ljava/lang/NullPointerException;
      // 3c: athrow
      // 3d: aload 3
      // 3e: areturn
      // try (6 -> 14): 15 java/lang/NullPointerException
      // try (10 -> 35): 35 java/lang/NullPointerException
   }

   private Goid b(String var1) {
      Policy var2 = EntityResolver.toEntityByName(this.c, var1);

      try {
         if (Util.isBackgroundTaskPolicy(var2)) {
            return var2.getGoid();
         }
      } catch (NullPointerException var4) {
         throw a(var4);
      }

      String[] var3 = f;
      throw new IllegalStateException(var3[6] + var1 + var3[4]);
   }

   protected ScheduledTask toEntity(ScheduledTaskDTO.ScheduledTaskInput var1) {
      return new ScheduledTask();
   }

   protected ScheduledTaskDTO toEntityDTO(ScheduledTask var1) {
      return new ScheduledTaskDTO(var1, this.c, this.d);
   }

   protected ScheduledTaskDTO.ScheduledTaskInput toEntityInput(EntityMappingInstruction var1) {
      ScheduledTaskDTO.ScheduledTaskInput var2 = new ScheduledTaskDTO.ScheduledTaskInput();
      var2.setName(var1.getIdentityValue());
      return var2;
   }

   protected void setEntity(ScheduledTaskDTO.ScheduledTaskInput param1, ScheduledTask 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: aload 1
      // 02: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/ScheduledTaskDTO$ScheduledTaskInput.getName ()Ljava/lang/String;
      // 05: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.setName (Ljava/lang/String;)V
      // 08: aload 2
      // 09: aload 1
      // 0a: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/ScheduledTaskDTO$ScheduledTaskInput.getJobType ()Lcom/l7tech/gateway/common/task/JobType;
      // 0d: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.setJobType (Lcom/l7tech/gateway/common/task/JobType;)V
      // 10: aload 2
      // 11: aload 1
      // 12: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/ScheduledTaskDTO$ScheduledTaskInput.getCronExpression ()Ljava/lang/String;
      // 15: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.setCronExpression (Ljava/lang/String;)V
      // 18: aload 2
      // 19: aload 1
      // 1a: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/ScheduledTaskDTO$ScheduledTaskInput.getExecuteOnSingleNode ()Ljava/lang/Boolean;
      // 1d: invokevirtual java/lang/Boolean.booleanValue ()Z
      // 20: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.setUseOneNode (Z)V
      // 23: aload 2
      // 24: aload 1
      // 25: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/ScheduledTaskDTO$ScheduledTaskInput.getExecuteOnCreation ()Ljava/lang/Boolean;
      // 28: invokevirtual java/lang/Boolean.booleanValue ()Z
      // 2b: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.setExecuteOnCreate (Z)V
      // 2e: getstatic com/l7tech/gateway/common/task/JobType.ONE_TIME Lcom/l7tech/gateway/common/task/JobType;
      // 31: aload 2
      // 32: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.getJobType ()Lcom/l7tech/gateway/common/task/JobType;
      // 35: invokevirtual com/l7tech/gateway/common/task/JobType.equals (Ljava/lang/Object;)Z
      // 38: ifeq 7a
      // 3b: aload 2
      // 3c: aload 1
      // 3d: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/ScheduledTaskDTO$ScheduledTaskInput.getExecutionDate ()Ljava/time/ZonedDateTime;
      // 40: ifnull 5e
      // 43: goto 4a
      // 46: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/ScheduledTaskMutationResolver.a (Ljava/lang/NullPointerException;)Ljava/lang/NullPointerException;
      // 49: athrow
      // 4a: aload 1
      // 4b: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/ScheduledTaskDTO$ScheduledTaskInput.getExecutionDate ()Ljava/time/ZonedDateTime;
      // 4e: invokevirtual java/time/ZonedDateTime.toInstant ()Ljava/time/Instant;
      // 51: invokestatic java/util/Date.from (Ljava/time/Instant;)Ljava/util/Date;
      // 54: invokevirtual java/util/Date.getTime ()J
      // 57: goto 6d
      // 5a: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/ScheduledTaskMutationResolver.a (Ljava/lang/NullPointerException;)Ljava/lang/NullPointerException;
      // 5d: athrow
      // 5e: invokestatic java/time/Instant.now ()Ljava/time/Instant;
      // 61: ldc2_w 5
      // 64: invokevirtual java/time/Instant.plusSeconds (J)Ljava/time/Instant;
      // 67: invokestatic java/util/Date.from (Ljava/time/Instant;)Ljava/util/Date;
      // 6a: invokevirtual java/util/Date.getTime ()J
      // 6d: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.setExecutionDate (J)V
      // 70: aload 2
      // 71: getstatic com/l7tech/gateway/common/task/JobStatus.SCHEDULED Lcom/l7tech/gateway/common/task/JobStatus;
      // 74: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.setJobStatus (Lcom/l7tech/gateway/common/task/JobStatus;)V
      // 77: goto 87
      // 7a: aload 2
      // 7b: lconst_0
      // 7c: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.setExecutionDate (J)V
      // 7f: aload 2
      // 80: aload 1
      // 81: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/ScheduledTaskDTO$ScheduledTaskInput.getStatus ()Lcom/l7tech/gateway/common/task/JobStatus;
      // 84: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.setJobStatus (Lcom/l7tech/gateway/common/task/JobStatus;)V
      // 87: aload 2
      // 88: aload 0
      // 89: aload 1
      // 8a: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/ScheduledTaskDTO$ScheduledTaskInput.getPolicyName ()Ljava/lang/String;
      // 8d: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/ScheduledTaskMutationResolver.b (Ljava/lang/String;)Lcom/l7tech/objectmodel/Goid;
      // 90: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.setPolicyGoid (Lcom/l7tech/objectmodel/Goid;)V
      // 93: aload 1
      // 94: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/ScheduledTaskDTO$ScheduledTaskInput.getRunAsUser ()Ljava/lang/String;
      // 97: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/util/Util.isNotEmpty (Ljava/lang/String;)Z
      // 9a: ifeq bb
      // 9d: aload 0
      // 9e: aload 1
      // 9f: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/ScheduledTaskDTO$ScheduledTaskInput.getRunAsUserProviderName ()Ljava/lang/String;
      // a2: aload 1
      // a3: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/ScheduledTaskDTO$ScheduledTaskInput.getRunAsUser ()Ljava/lang/String;
      // a6: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/ScheduledTaskMutationResolver.a (Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
      // a9: astore 3
      // aa: aload 2
      // ab: aload 3
      // ac: bipush 0
      // ad: aaload
      // ae: invokestatic com/l7tech/objectmodel/Goid.parseGoid (Ljava/lang/String;)Lcom/l7tech/objectmodel/Goid;
      // b1: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.setIdProviderGoid (Lcom/l7tech/objectmodel/Goid;)V
      // b4: aload 2
      // b5: aload 3
      // b6: bipush 1
      // b7: aaload
      // b8: invokevirtual com/l7tech/gateway/common/task/ScheduledTask.setUserId (Ljava/lang/String;)V
      // bb: return
      // try (0 -> 31): 32 java/lang/NullPointerException
      // try (27 -> 40): 40 java/lang/NullPointerException
   }

   protected void resetEntitySelectively(ScheduledTaskDTO.ScheduledTaskInput var1, ScheduledTask var2) {
      var2.setIdProviderGoid(null);
      var2.setUserId(null);
   }

   protected ScheduledTask findByInput(ScheduledTaskDTO.ScheduledTaskInput var1) throws FindException {
      return this.findByName(var1.getName());
   }

   static {
      String[] var5 = new String[7];
      int var3 = 0;
      String var2 = "xwJL~\u001e~b9WXxUru9TVd\u0013yduV\u0019hKc1pI\u0019dK{}\u0017x}_W~WchIHV|Wstk|XiJxc`\u0014bzR\\nK{t}nXyUZpw[^oL)ClT\u0019kM7dj_K*\u00162b#\u001fJ#\u001estm[PfM7pk_\u0019cPt~kH\\iJ\r1pI\u0019dQc1\u007fULdZ";
      int var4 = "xwJL~\u001e~b9WXxUru9TVd\u0013yduV\u0019hKc1pI\u0019dK{}\u0017x}_W~WchIHV|Wstk|XiJxc`\u0014bzR\\nK{t}nXyUZpw[^oL)ClT\u0019kM7dj_K*\u00162b#\u001fJ#\u001estm[PfM7pk_\u0019cPt~kH\\iJ\r1pI\u0019dQc1\u007fULdZ"
         .length();
      char var1 = '$';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 42;
         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) {
                     f = var5;
                     b = Logger.getLogger(ScheduledTaskMutationResolver.class.getName());
                     return;
                  }

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

                  var2 = "^IioVxeOHdaPs\u0012lGfmRsG[Ha&EnDGE|&";
                  var4 = "^IioVxeOHdaPs\u0012lGfmRsG[Ha&EnDGE|&".length();
                  var1 = '\r';
                  var7 = -1;
            }

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

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

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

      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 -> 59;
            case 1 -> 51;
            case 2 -> 16;
            case 3 -> 19;
            case 4 -> 32;
            case 5 -> 20;
            default -> 61;
         });
      }

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