package com.l7tech.server.policy;

import com.l7tech.gateway.common.security.rbac.PermissionDeniedException;
import com.l7tech.identity.User;
import com.l7tech.objectmodel.FindException;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.util.Functions.UnaryVoid;

class g implements UnaryVoid<Assertion> {
   final User val$user;
   final PermissionDeniedException[] val$permErr;
   final FindException[] val$findErr;
   final PolicyAssertionRbacCheckerImpl this$0;

   g(PolicyAssertionRbacCheckerImpl var1, User var2, PermissionDeniedException[] var3, FindException[] var4) {
      this.this$0 = var1;
      this.val$user = var2;
      this.val$permErr = var3;
      this.val$findErr = var4;
   }

   public void call(Assertion param1) {
      // $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/server/policy/g.this$0 Lcom/l7tech/server/policy/PolicyAssertionRbacCheckerImpl;
      // 04: getfield com/l7tech/server/policy/PolicyAssertionRbacCheckerImpl.assertionAccessManager Lcom/l7tech/server/policy/AssertionAccessManager;
      // 07: aload 1
      // 08: invokeinterface com/l7tech/server/policy/AssertionAccessManager.getAssertionAccessCached (Lcom/l7tech/policy/assertion/Assertion;)Lcom/l7tech/policy/AssertionAccess; 2
      // 0d: astore 2
      // 0e: aload 0
      // 0f: getfield com/l7tech/server/policy/g.this$0 Lcom/l7tech/server/policy/PolicyAssertionRbacCheckerImpl;
      // 12: getfield com/l7tech/server/policy/PolicyAssertionRbacCheckerImpl.rbacServices Lcom/l7tech/server/security/rbac/RbacServices;
      // 15: aload 0
      // 16: getfield com/l7tech/server/policy/g.val$user Lcom/l7tech/identity/User;
      // 19: aload 2
      // 1a: getstatic com/l7tech/gateway/common/security/rbac/OperationType.READ Lcom/l7tech/gateway/common/security/rbac/OperationType;
      // 1d: aconst_null
      // 1e: invokeinterface com/l7tech/server/security/rbac/RbacServices.isPermittedForEntity (Lcom/l7tech/identity/User;Lcom/l7tech/objectmodel/Entity;Lcom/l7tech/gateway/common/security/rbac/OperationType;Ljava/lang/String;)Z 5
      // 23: ifne 4f
      // 26: aload 0
      // 27: getfield com/l7tech/server/policy/g.val$permErr [Lcom/l7tech/gateway/common/security/rbac/PermissionDeniedException;
      // 2a: bipush 0
      // 2b: aaload
      // 2c: ifnonnull 4f
      // 2f: goto 36
      // 32: invokestatic com/l7tech/server/policy/g.a (Lcom/l7tech/objectmodel/FindException;)Lcom/l7tech/objectmodel/FindException;
      // 35: athrow
      // 36: aload 0
      // 37: getfield com/l7tech/server/policy/g.val$permErr [Lcom/l7tech/gateway/common/security/rbac/PermissionDeniedException;
      // 3a: bipush 0
      // 3b: new com/l7tech/gateway/common/security/rbac/PermissionDeniedException
      // 3e: dup
      // 3f: getstatic com/l7tech/gateway/common/security/rbac/OperationType.READ Lcom/l7tech/gateway/common/security/rbac/OperationType;
      // 42: aload 2
      // 43: aconst_null
      // 44: invokespecial com/l7tech/gateway/common/security/rbac/PermissionDeniedException.<init> (Lcom/l7tech/gateway/common/security/rbac/OperationType;Lcom/l7tech/objectmodel/Entity;Ljava/lang/String;)V
      // 47: aastore
      // 48: goto 4f
      // 4b: invokestatic com/l7tech/server/policy/g.a (Lcom/l7tech/objectmodel/FindException;)Lcom/l7tech/objectmodel/FindException;
      // 4e: athrow
      // 4f: goto 6a
      // 52: astore 3
      // 53: aload 0
      // 54: getfield com/l7tech/server/policy/g.val$findErr [Lcom/l7tech/objectmodel/FindException;
      // 57: bipush 0
      // 58: aaload
      // 59: ifnonnull 6a
      // 5c: aload 0
      // 5d: getfield com/l7tech/server/policy/g.val$findErr [Lcom/l7tech/objectmodel/FindException;
      // 60: bipush 0
      // 61: aload 3
      // 62: aastore
      // 63: goto 6a
      // 66: invokestatic com/l7tech/server/policy/g.a (Lcom/l7tech/objectmodel/FindException;)Lcom/l7tech/objectmodel/FindException;
      // 69: athrow
      // 6a: return
      // try (16 -> 34): 35 com/l7tech/objectmodel/FindException
      // try (6 -> 21): 22 com/l7tech/objectmodel/FindException
      // try (6 -> 37): 38 com/l7tech/objectmodel/FindException
      // try (39 -> 49): 50 com/l7tech/objectmodel/FindException
   }

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