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.EntityMutationStatus;
import com.l7tech.external.assertions.gatewaygraphql.server.data.GroupRefDTO;
import com.l7tech.external.assertions.gatewaygraphql.server.data.IdpDTO;
import com.l7tech.external.assertions.gatewaygraphql.server.data.RoleDTO;
import com.l7tech.external.assertions.gatewaygraphql.server.data.UserRefDTO;
import com.l7tech.external.assertions.gatewaygraphql.server.error.GatewayEntityError;
import com.l7tech.external.assertions.gatewaygraphql.server.error.NoMutationException;
import com.l7tech.external.assertions.gatewaygraphql.server.resolver.query.IdpResolverHelper;
import com.l7tech.external.assertions.gatewaygraphql.server.util.AssertionLocalBeanFactory;
import com.l7tech.gateway.common.security.rbac.Role;
import com.l7tech.gateway.common.security.rbac.RoleAssignment;
import com.l7tech.identity.Group;
import com.l7tech.identity.IdentityProvider;
import com.l7tech.identity.User;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.server.security.rbac.RoleManager;
import graphql.schema.DataFetchingEnvironment;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.transaction.PlatformTransactionManager;

public class RoleMutationResolver extends EntityManagerAwareGraphQLMutationResolver<Role, EntityHeader, RoleManager, RoleDTO, RoleDTO.RoleInput> {
   private final IdpResolverHelper b;
   private static final String[] c;

   public RoleMutationResolver(PlatformTransactionManager var1, BeanFactory var2, AssertionLocalBeanFactory var3) {
      super(EntityTypeInfo.ROLE, var1, (RoleManager)var2.getBean(c[18], RoleManager.class));
      this.b = var3.getRequired(IdpResolverHelper.class);
   }

   public RoleDTO.RolesPayload setRoles(List<RoleDTO.RoleInput> var1, DataFetchingEnvironment var2) {
      RoleDTO.RolesPayload var3 = new RoleDTO.RolesPayload();

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

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

   public RoleDTO.RolesPayload deleteRoles(List<String> var1, DataFetchingEnvironment var2) {
      RoleDTO.RolesPayload var3 = new RoleDTO.RolesPayload();

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

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

   public RoleDTO.RolePayload addUserToRole(String var1, UserRefDTO.UserRefInput var2, DataFetchingEnvironment var3) {
      RoleDTO.RolePayload var4 = new RoleDTO.RolePayload();
      return this.execute(var3, (var4x, var5) -> {
         try {
            Role var6 = this.b(var1);
            IdentityProvider var11 = this.a(var2.getProviderType(), var2.getProviderName());
            User var8 = this.b.findUser(var2, var11);

            try {
               if (!this.a(var6, var8)) {
                  var6.addAssignedUser(var8);
                  this.entityManager.update(var6);
                  var4.set(EntityMutationStatus.UPDATED, this.toRawEntity(this.toEntityInput(var1)), this.toEntityDTO(var6));
                  return var4;
               }
            } catch (Exception var9) {
               throw b(var9);
            }

            var4.set(EntityMutationStatus.NONE, c[3], this.toRawEntity(this.toEntityInput(var1)), this.toEntityDTO(var6));
            return var4;
         } catch (Exception var10) {
            String var7 = GatewayEntityError.getUpdateMutationErrorMessage(this.entityTypeInfo.getEntityType(), var10);
            this.handleMutationError(var5, var10, var7, var4, this.a(var1, var2));
            return var4;
         }
      });
   }

   public RoleDTO.RolePayload addGroupToRole(String var1, GroupRefDTO.GroupRefInput var2, DataFetchingEnvironment var3) {
      RoleDTO.RolePayload var4 = new RoleDTO.RolePayload();
      return this.execute(var3, (var4x, var5) -> {
         try {
            Role var6 = this.b(var1);
            IdentityProvider var11 = this.a(var2.getProviderType(), var2.getProviderName());
            Group var8 = this.b.findGroup(var2, var11);

            try {
               if (!this.a(var6, var8)) {
                  var6.addAssignedGroup(var8);
                  this.entityManager.update(var6);
                  var4.set(EntityMutationStatus.UPDATED, this.toRawEntity(this.toEntityInput(var1)), this.toEntityDTO(var6));
                  return var4;
               }
            } catch (Exception var9) {
               throw b(var9);
            }

            var4.set(EntityMutationStatus.NONE, c[16], this.toRawEntity(this.toEntityInput(var1)), this.toEntityDTO(var6));
            return var4;
         } catch (Exception var10) {
            String var7 = GatewayEntityError.getUpdateMutationErrorMessage(this.entityTypeInfo.getEntityType(), var10);
            this.handleMutationError(var5, var10, var7, var4, this.a(var1, var2));
            return var4;
         }
      });
   }

   public RoleDTO.RolePayload removeUserFromRole(String var1, UserRefDTO.UserRefInput var2, DataFetchingEnvironment var3) {
      RoleDTO.RolePayload var4 = new RoleDTO.RolePayload();
      return this.execute(var3, (var4x, var5) -> {
         try {
            Role var6 = this.b(var1);
            IdentityProvider var11 = this.a(var2.getProviderType(), var2.getProviderName());
            User var8 = this.b.findUser(var2, var11);

            try {
               if (this.a(var6, var8)) {
                  var6.removeAssignedUser(var8);
                  this.entityManager.update(var6);
                  var4.set(EntityMutationStatus.UPDATED, this.toRawEntity(this.toEntityInput(var1)), this.toEntityDTO(var6));
                  return var4;
               }
            } catch (Exception var9) {
               throw b(var9);
            }

            var4.set(EntityMutationStatus.NONE, c[8], this.toRawEntity(this.toEntityInput(var1)), this.toEntityDTO(var6));
            return var4;
         } catch (Exception var10) {
            String var7 = GatewayEntityError.getUpdateMutationErrorMessage(this.entityTypeInfo.getEntityType(), var10);
            this.handleMutationError(var5, var10, var7, var4, this.a(var1, var2));
            return var4;
         }
      });
   }

   public RoleDTO.RolePayload removeGroupFromRole(String var1, GroupRefDTO.GroupRefInput var2, DataFetchingEnvironment var3) {
      RoleDTO.RolePayload var4 = new RoleDTO.RolePayload();
      return this.execute(var3, (var4x, var5) -> {
         try {
            Role var6 = this.b(var1);
            IdentityProvider var11 = this.a(var2.getProviderType(), var2.getProviderName());
            Group var8 = this.b.findGroup(var2, var11);

            try {
               if (this.a(var6, var8)) {
                  var6.removeAssignedGroup(var8);
                  this.entityManager.update(var6);
                  var4.set(EntityMutationStatus.UPDATED, this.toRawEntity(this.toEntityInput(var1)), this.toEntityDTO(var6));
                  return var4;
               }
            } catch (Exception var9) {
               throw b(var9);
            }

            var4.set(EntityMutationStatus.NONE, c[4], this.toRawEntity(this.toEntityInput(var1)), this.toEntityDTO(var6));
            return var4;
         } catch (Exception var10) {
            String var7 = GatewayEntityError.getUpdateMutationErrorMessage(this.entityTypeInfo.getEntityType(), var10);
            this.handleMutationError(var5, var10, var7, var4, this.a(var1, var2));
            return var4;
         }
      });
   }

   protected RoleDTO doCreate(RoleDTO.RoleInput var1) throws ObjectModelException {
      throw new UnsupportedOperationException(c[21]);
   }

   protected RoleDTO doDelete(RoleDTO.RoleInput var1, Role var2) throws ObjectModelException {
      try {
         if (!var2.isUserCreated()) {
            throw new NoMutationException(c[10]);
         }
      } catch (ObjectModelException var3) {
         throw b(var3);
      }

      return (RoleDTO)super.doDelete(var1, var2);
   }

   protected Role findByInput(RoleDTO.RoleInput var1) throws FindException {
      return this.findByName(var1.getName());
   }

   protected Role toEntity(RoleDTO.RoleInput var1) {
      return new Role();
   }

   protected RoleDTO toEntityDTO(Role var1) {
      return new RoleDTO(var1, this.b);
   }

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

   protected void setEntity(RoleDTO.RoleInput param1, Role 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 1
      // 01: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/RoleDTO$RoleInput.isReplaceAssignees ()Z
      // 04: ifne 3a
      // 07: aload 1
      // 08: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/RoleDTO$RoleInput.getUserAssignees ()Ljava/util/List;
      // 0b: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/util/Util.isEmpty (Ljava/util/List;)Z
      // 0e: ifeq 3a
      // 11: goto 18
      // 14: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 17: athrow
      // 18: aload 1
      // 19: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/RoleDTO$RoleInput.getGroupAssignees ()Ljava/util/List;
      // 1c: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/util/Util.isEmpty (Ljava/util/List;)Z
      // 1f: ifeq 3a
      // 22: goto 29
      // 25: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 28: athrow
      // 29: new com/l7tech/external/assertions/gatewaygraphql/server/error/NoMutationException
      // 2c: dup
      // 2d: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.c [Ljava/lang/String;
      // 30: bipush 0
      // 31: aaload
      // 32: invokespecial com/l7tech/external/assertions/gatewaygraphql/server/error/NoMutationException.<init> (Ljava/lang/String;)V
      // 35: athrow
      // 36: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 39: athrow
      // 3a: new java/util/HashSet
      // 3d: dup
      // 3e: aload 2
      // 3f: invokevirtual com/l7tech/gateway/common/security/rbac/Role.getRoleAssignments ()Ljava/util/Set;
      // 42: invokespecial java/util/HashSet.<init> (Ljava/util/Collection;)V
      // 45: astore 3
      // 46: aload 0
      // 47: aload 1
      // 48: aload 2
      // 49: aload 3
      // 4a: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/RoleDTO$RoleInput;Lcom/l7tech/gateway/common/security/rbac/Role;Ljava/util/Set;)V
      // 4d: aload 0
      // 4e: aload 1
      // 4f: aload 2
      // 50: aload 3
      // 51: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.a (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/RoleDTO$RoleInput;Lcom/l7tech/gateway/common/security/rbac/Role;Ljava/util/Set;)V
      // 54: aload 1
      // 55: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/RoleDTO$RoleInput.isReplaceAssignees ()Z
      // 58: ifeq 73
      // 5b: aload 3
      // 5c: aload 2
      // 5d: dup
      // 5e: invokestatic java/util/Objects.requireNonNull (Ljava/lang/Object;)Ljava/lang/Object;
      // 61: pop
      // 62: invokedynamic accept (Lcom/l7tech/gateway/common/security/rbac/Role;)Ljava/util/function/Consumer; bsm=java/lang/invoke/LambdaMetafactory.metafactory (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; args=[ (Ljava/lang/Object;)V, com/l7tech/gateway/common/security/rbac/Role.removeRoleAssignment (Lcom/l7tech/gateway/common/security/rbac/RoleAssignment;)V, (Lcom/l7tech/gateway/common/security/rbac/RoleAssignment;)V ]
      // 67: invokeinterface java/util/Set.forEach (Ljava/util/function/Consumer;)V 2
      // 6c: goto 73
      // 6f: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 72: athrow
      // 73: return
      // try (0 -> 7): 8 java/lang/UnsupportedOperationException
      // try (3 -> 14): 15 java/lang/UnsupportedOperationException
      // try (10 -> 24): 24 java/lang/UnsupportedOperationException
      // try (32 -> 52): 53 java/lang/UnsupportedOperationException
   }

   private void a(RoleDTO.RoleInput var1, Role var2, Set<RoleAssignment> var3) {
      AtomicReference var4 = new AtomicReference();
      var1.getGroupAssignees().stream().map(var2x -> {
         IdentityProvider var3x = this.a(var2x.getProviderType(), var2x.getProviderName(), var4);
         return this.b.findGroup(var2x, var3x);
      }).forEach(var4x -> {
         try {
            var2.addAssignedGroup(var4x);
            if (var1.isReplaceAssignees()) {
               var3.removeIf(var2xx -> this.a(var2xx, var4x));
            }
         } catch (UnsupportedOperationException var5) {
            throw b(var5);
         }
      });
   }

   private void b(RoleDTO.RoleInput var1, Role var2, Set<RoleAssignment> var3) {
      AtomicReference var4 = new AtomicReference();
      var1.getUserAssignees().stream().map(var2x -> {
         IdentityProvider var3x = this.a(var2x.getProviderType(), var2x.getProviderName(), var4);
         return this.b.findUser(var2x, var3x);
      }).forEach(var4x -> {
         try {
            var2.addAssignedUser(var4x);
            if (var1.isReplaceAssignees()) {
               var3.removeIf(var2xx -> this.a(var2xx, var4x));
            }
         } catch (UnsupportedOperationException var5) {
            throw b(var5);
         }
      });
   }

   private Role b(String var1) {
      try {
         Role var2 = this.findByName(var1);

         try {
            if (var2 == null) {
               throw new IllegalArgumentException(c[1]);
            }
         } catch (FindException var3) {
            throw b(var3);
         }

         return var2;
      } catch (FindException var4) {
         throw new RuntimeException(var4);
      }
   }

   private IdentityProvider<?, ?, ?, ?> a(IdpDTO.IdpType param1, String param2, AtomicReference<IdentityProvider<?, ?, ?, ?>> param3) {
      // $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 3
      // 01: invokevirtual java/util/concurrent/atomic/AtomicReference.get ()Ljava/lang/Object;
      // 04: checkcast com/l7tech/identity/IdentityProvider
      // 07: astore 4
      // 09: aload 4
      // 0b: ifnull 48
      // 0e: aload 2
      // 0f: aload 4
      // 11: invokeinterface com/l7tech/identity/IdentityProvider.getConfig ()Lcom/l7tech/identity/IdentityProviderConfig; 1
      // 16: invokevirtual com/l7tech/identity/IdentityProviderConfig.getName ()Ljava/lang/String;
      // 19: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 1c: ifeq 48
      // 1f: goto 26
      // 22: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 25: athrow
      // 26: aload 1
      // 27: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/IdpDTO$IdpType.getIntervalValue ()Lcom/l7tech/identity/IdentityProviderType;
      // 2a: invokevirtual com/l7tech/identity/IdentityProviderType.toVal ()I
      // 2d: aload 4
      // 2f: invokeinterface com/l7tech/identity/IdentityProvider.getConfig ()Lcom/l7tech/identity/IdentityProviderConfig; 1
      // 34: invokevirtual com/l7tech/identity/IdentityProviderConfig.getTypeVal ()I
      // 37: if_icmpne 48
      // 3a: goto 41
      // 3d: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 40: athrow
      // 41: aload 4
      // 43: areturn
      // 44: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 47: athrow
      // 48: aload 3
      // 49: aload 0
      // 4a: aload 1
      // 4b: aload 2
      // 4c: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.a (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/IdpDTO$IdpType;Ljava/lang/String;)Lcom/l7tech/identity/IdentityProvider;
      // 4f: invokevirtual java/util/concurrent/atomic/AtomicReference.set (Ljava/lang/Object;)V
      // 52: aload 3
      // 53: invokevirtual java/util/concurrent/atomic/AtomicReference.get ()Ljava/lang/Object;
      // 56: checkcast com/l7tech/identity/IdentityProvider
      // 59: areturn
      // try (4 -> 12): 13 java/lang/UnsupportedOperationException
      // try (6 -> 22): 23 java/lang/UnsupportedOperationException
      // try (15 -> 27): 27 java/lang/UnsupportedOperationException
   }

   private IdentityProvider<?, ?, ?, ?> a(IdpDTO.IdpType 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/RoleMutationResolver.b Lcom/l7tech/external/assertions/gatewaygraphql/server/resolver/query/IdpResolverHelper;
      // 04: aload 1
      // 05: aload 2
      // 06: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/query/IdpResolverHelper.findIdp (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/IdpDTO$IdpType;Ljava/lang/String;)Lcom/l7tech/identity/IdentityProvider;
      // 09: astore 3
      // 0a: aload 3
      // 0b: getstatic com/l7tech/identity/IdentityProviderType.INTERNAL Lcom/l7tech/identity/IdentityProviderType;
      // 0e: invokestatic com/l7tech/identity/IdentityProviderType.is (Lcom/l7tech/identity/IdentityProvider;Lcom/l7tech/identity/IdentityProviderType;)Z
      // 11: ifne 25
      // 14: aload 3
      // 15: getstatic com/l7tech/identity/IdentityProviderType.LDAP Lcom/l7tech/identity/IdentityProviderType;
      // 18: invokestatic com/l7tech/identity/IdentityProviderType.is (Lcom/l7tech/identity/IdentityProvider;Lcom/l7tech/identity/IdentityProviderType;)Z
      // 1b: ifeq 53
      // 1e: goto 25
      // 21: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 24: athrow
      // 25: aload 3
      // 26: invokeinterface com/l7tech/identity/IdentityProvider.getConfig ()Lcom/l7tech/identity/IdentityProviderConfig; 1
      // 2b: invokevirtual com/l7tech/identity/IdentityProviderConfig.isAdminEnabled ()Z
      // 2e: ifne 51
      // 31: goto 38
      // 34: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 37: athrow
      // 38: new java/lang/IllegalArgumentException
      // 3b: dup
      // 3c: aload 2
      // 3d: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.c [Ljava/lang/String;
      // 40: bipush 19
      // 42: aaload
      // 43: swap
      // 44: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 49: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 4c: athrow
      // 4d: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 50: athrow
      // 51: aload 3
      // 52: areturn
      // 53: new java/lang/IllegalArgumentException
      // 56: dup
      // 57: aload 1
      // 58: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 5b: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.c [Ljava/lang/String;
      // 5e: astore 4
      // 60: aload 4
      // 62: bipush 11
      // 64: aaload
      // 65: swap
      // 66: aload 4
      // 68: bipush 2
      // 69: aaload
      // 6a: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 6f: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 72: athrow
      // try (6 -> 14): 15 java/lang/UnsupportedOperationException
      // try (10 -> 21): 22 java/lang/UnsupportedOperationException
      // try (17 -> 34): 34 java/lang/UnsupportedOperationException
   }

   protected RoleDTO.RoleInput toEntityInput(Object var1) {
      if (var1 instanceof String) {
         RoleDTO.RoleInput var2 = new RoleDTO.RoleInput();
         var2.setName(String.valueOf(var1));
         var2.setRoleType(RoleDTO.RoleType.CUSTOM);
         return var2;
      } else {
         return null;
      }
   }

   private Map<String, Object> a(String var1, UserRefDTO.UserRefInput var2) {
      Map var3 = this.toRawEntity(this.toEntityInput(var1));

      try {
         if (var3 != null) {
            var3.put(c[20], this.a(var2));
            return var3;
         } else {
            return null;
         }
      } catch (UnsupportedOperationException var4) {
         throw b(var4);
      }
   }

   private Map<String, Object> a(String var1, GroupRefDTO.GroupRefInput var2) {
      Map var3 = this.toRawEntity(this.toEntityInput(var1));

      try {
         if (var3 != null) {
            var3.put(c[15], this.a(var2));
            return var3;
         } else {
            return null;
         }
      } catch (UnsupportedOperationException var4) {
         throw b(var4);
      }
   }

   private Map<String, Object> a(UserRefDTO.UserRefInput var1) {
      if (var1 != null) {
         HashMap var2 = new HashMap();
         String[] var3 = c;
         var2.put(var3[9], var1.getName());
         var2.put(var3[13], var1.getLogin());
         var2.put(var3[6], var1.getSubjectDn());
         var2.put(var3[7], var1.getProviderName());
         var2.put(var3[12], var1.getProviderType());
         return var2;
      } else {
         return null;
      }
   }

   private Map<String, Object> a(GroupRefDTO.GroupRefInput var1) {
      if (var1 != null) {
         HashMap var2 = new HashMap();
         String[] var3 = c;
         var2.put(var3[5], var1.getName());
         var2.put(var3[17], var1.getProviderName());
         var2.put(var3[14], var1.getProviderType());
         return var2;
      } else {
         return null;
      }
   }

   private boolean a(Role var1, User var2) {
      return var1.getRoleAssignments().stream().anyMatch(var2x -> this.a(var2x, var2));
   }

   private boolean a(Role var1, Group var2) {
      return var1.getRoleAssignments().stream().anyMatch(var2x -> this.a(var2x, var2));
   }

   private boolean a(RoleAssignment param1, User 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 1
      // 01: invokevirtual com/l7tech/gateway/common/security/rbac/RoleAssignment.getIdentityId ()Ljava/lang/String;
      // 04: aload 2
      // 05: invokeinterface com/l7tech/identity/User.getId ()Ljava/lang/String; 1
      // 0a: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0d: ifeq 46
      // 10: aload 1
      // 11: invokevirtual com/l7tech/gateway/common/security/rbac/RoleAssignment.getProviderId ()Lcom/l7tech/objectmodel/Goid;
      // 14: aload 2
      // 15: invokeinterface com/l7tech/identity/User.getProviderId ()Lcom/l7tech/objectmodel/Goid; 1
      // 1a: invokevirtual com/l7tech/objectmodel/Goid.equals (Ljava/lang/Object;)Z
      // 1d: ifeq 46
      // 20: goto 27
      // 23: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 26: athrow
      // 27: aload 1
      // 28: invokevirtual com/l7tech/gateway/common/security/rbac/RoleAssignment.getEntityType ()Ljava/lang/String;
      // 2b: getstatic com/l7tech/objectmodel/EntityType.USER Lcom/l7tech/objectmodel/EntityType;
      // 2e: invokevirtual com/l7tech/objectmodel/EntityType.getName ()Ljava/lang/String;
      // 31: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 34: ifeq 46
      // 37: goto 3e
      // 3a: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3d: athrow
      // 3e: bipush 1
      // 3f: goto 47
      // 42: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 45: athrow
      // 46: bipush 0
      // 47: ireturn
      // try (0 -> 12): 13 java/lang/UnsupportedOperationException
      // try (6 -> 21): 22 java/lang/UnsupportedOperationException
      // try (15 -> 26): 26 java/lang/UnsupportedOperationException
   }

   private boolean a(RoleAssignment param1, Group 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 1
      // 01: invokevirtual com/l7tech/gateway/common/security/rbac/RoleAssignment.getIdentityId ()Ljava/lang/String;
      // 04: aload 2
      // 05: invokeinterface com/l7tech/identity/Group.getId ()Ljava/lang/String; 1
      // 0a: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0d: ifeq 46
      // 10: aload 1
      // 11: invokevirtual com/l7tech/gateway/common/security/rbac/RoleAssignment.getProviderId ()Lcom/l7tech/objectmodel/Goid;
      // 14: aload 2
      // 15: invokeinterface com/l7tech/identity/Group.getProviderId ()Lcom/l7tech/objectmodel/Goid; 1
      // 1a: invokevirtual com/l7tech/objectmodel/Goid.equals (Ljava/lang/Object;)Z
      // 1d: ifeq 46
      // 20: goto 27
      // 23: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 26: athrow
      // 27: aload 1
      // 28: invokevirtual com/l7tech/gateway/common/security/rbac/RoleAssignment.getEntityType ()Ljava/lang/String;
      // 2b: getstatic com/l7tech/objectmodel/EntityType.GROUP Lcom/l7tech/objectmodel/EntityType;
      // 2e: invokevirtual com/l7tech/objectmodel/EntityType.getName ()Ljava/lang/String;
      // 31: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 34: ifeq 46
      // 37: goto 3e
      // 3a: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3d: athrow
      // 3e: bipush 1
      // 3f: goto 47
      // 42: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/RoleMutationResolver.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 45: athrow
      // 46: bipush 0
      // 47: ireturn
      // try (0 -> 12): 13 java/lang/UnsupportedOperationException
      // try (6 -> 21): 22 java/lang/UnsupportedOperationException
      // try (15 -> 26): 26 java/lang/UnsupportedOperationException
   }

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

   static {
      String[] var5 = new String[22];
      int var3 = 0;
      String var2 = "oF\u0015(qOH^\u00157(>[V\u001aT\u0003)8IH_P\u0003z0\\C\u001aP\u001d*%W\u0013hZ\u001c?qJI_FP4>Z\u0006_M\u0019)%\r\u001a@\u0003?#]\t]G\u001f/!]<oF\u0015(qOJHP\u0011>(\u000eGIF\u001f98OR_QP-8ZN\u001aA\u0018?q\\IVP\\z8IHUG\u001946\u000eRRPP7$ZGN\\\u001f4<}G\u001f/!\u000eOI\u0015\u001e5%\u000eGIF\u001f98OR_QP-8ZN\u001aA\u0018?q\\IVP\\z8IHUG\u001946\u000eRRPP7$ZGN\\\u001f4\u0004TT\u001d?\tI@\u001204MR~{\fJG\u001f,8JCH{\u001174;oF\u0015(qGU\u001a[\u001f.qOUIZ\u001330ZC^\u0015\u00073%F\u0006N]\u0015z#AJ_\u0019P36@IH\\\u001e=qZN_\u0015\u001d/%ORSZ\u001e\u0004TT\u001d?\u001eiL\u0003.4C\u0006HZ\u001c?\"\u000eE[[\u001e5%\u000eD_\u0015\u0014?=KR_Q)hZ\u001c?qOUI\\\u00174<KHNFP;#K\u0006O[\u0003/!^IHA\u0015>qHIH\u0015\u000424\u000e\fJG\u001f,8JCHa\t*4\u0005VZ\u00173?\fJG\u001f,8JCHa\t*4\u0005]G\u001f/!=}G\u001f/!\u000eGVG\u0015;5W\u0006[F\u000352GGNP\u0014z&GRR\u0015\u000424\u000eTUY\u0015vqGATZ\u00023?I\u0006N]\u0015z<[R[A\u00195?\fJG\u001f,8JCH{\u001174\u000bHZ\u001c?\u001cOH[R\u0015(YoF\u0015(\"\u0001aHZ\u0005*\"\u000e@HZ\u001dz%FC\u001aF\u001564MR_QP*#APSQ\u0015(qOT_\u0015\u001e5%\u000eGVY\u001f-4J\u0006\\Z\u0002z%FC\u001aT\u001478@OIA\u0002;%GIT\u0019P*#APSQ\u0015(l";
      int var4 = "oF\u0015(qOH^\u00157(>[V\u001aT\u0003)8IH_P\u0003z0\\C\u001aP\u001d*%W\u0013hZ\u001c?qJI_FP4>Z\u0006_M\u0019)%\r\u001a@\u0003?#]\t]G\u001f/!]<oF\u0015(qOJHP\u0011>(\u000eGIF\u001f98OR_QP-8ZN\u001aA\u0018?q\\IVP\\z8IHUG\u001946\u000eRRPP7$ZGN\\\u001f4<}G\u001f/!\u000eOI\u0015\u001e5%\u000eGIF\u001f98OR_QP-8ZN\u001aA\u0018?q\\IVP\\z8IHUG\u001946\u000eRRPP7$ZGN\\\u001f4\u0004TT\u001d?\tI@\u001204MR~{\fJG\u001f,8JCH{\u001174;oF\u0015(qGU\u001a[\u001f.qOUIZ\u001330ZC^\u0015\u00073%F\u0006N]\u0015z#AJ_\u0019P36@IH\\\u001e=qZN_\u0015\u001d/%ORSZ\u001e\u0004TT\u001d?\u001eiL\u0003.4C\u0006HZ\u001c?\"\u000eE[[\u001e5%\u000eD_\u0015\u0014?=KR_Q)hZ\u001c?qOUI\\\u00174<KHNFP;#K\u0006O[\u0003/!^IHA\u0015>qHIH\u0015\u000424\u000e\fJG\u001f,8JCHa\t*4\u0005VZ\u00173?\fJG\u001f,8JCHa\t*4\u0005]G\u001f/!=}G\u001f/!\u000eGVG\u0015;5W\u0006[F\u000352GGNP\u0014z&GRR\u0015\u000424\u000eTUY\u0015vqGATZ\u00023?I\u0006N]\u0015z<[R[A\u00195?\fJG\u001f,8JCH{\u001174\u000bHZ\u001c?\u001cOH[R\u0015(YoF\u0015(\"\u0001aHZ\u0005*\"\u000e@HZ\u001dz%FC\u001aF\u001564MR_QP*#APSQ\u0015(qOT_\u0015\u001e5%\u000eGVY\u001f-4J\u0006\\Z\u0002z%FC\u001aT\u001478@OIA\u0002;%GIT\u0019P*#APSQ\u0015(l"
         .length();
      char var1 = '"';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 56;
         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) {
                     c = var5;
                     return;
                  }

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

                  var2 = "[R\u0001<\u001emS\u0001/1S\\I\u0001\u0005n7U^K\u0001\r=eO\\]T\u0014>*HFKE";
                  var4 = "[R\u0001<\u001emS\u0001/1S\\I\u0001\u0005n7U^K\u0001\r=eO\\]T\u0014>*HFKE".length();
                  var1 = 4;
                  var7 = -1;
            }

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

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

      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 -> 2;
            case 1 -> 13;
            case 2 -> 72;
            case 3 -> 98;
            case 4 -> 105;
            case 5 -> 22;
            default -> 30;
         });
      }

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