public class org.apache.cassandra.auth.PermissionsCache extends org.apache.cassandra.auth.AuthCache<org.apache.cassandra.utils.Pair<org.apache.cassandra.auth.AuthenticatedUser, org.apache.cassandra.auth.IResource>, java.util.Set<org.apache.cassandra.auth.Permission>> implements org.apache.cassandra.auth.PermissionsCacheMBean
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.auth.PermissionsCache
  super_class: org.apache.cassandra.auth.AuthCache
{
  public void <init>(org.apache.cassandra.auth.IAuthorizer);
    descriptor: (Lorg/apache/cassandra/auth/IAuthorizer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // org.apache.cassandra.auth.PermissionsCache this
        start local 1 // org.apache.cassandra.auth.IAuthorizer authorizer
         0: .line 29
            aload 0 /* this */
            ldc "PermissionsCache"
         1: .line 30
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/apache/cassandra/config/DatabaseDescriptor.setPermissionsValidity(I)V (6)
                  (Ljava/lang/Integer;)V
         2: .line 31
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic 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;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/apache/cassandra/config/DatabaseDescriptor.getPermissionsValidity()I (6)
                  ()Ljava/lang/Integer;
         3: .line 32
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/apache/cassandra/config/DatabaseDescriptor.setPermissionsUpdateInterval(I)V (6)
                  (Ljava/lang/Integer;)V
         4: .line 33
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic 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;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/apache/cassandra/config/DatabaseDescriptor.getPermissionsUpdateInterval()I (6)
                  ()Ljava/lang/Integer;
         5: .line 34
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/apache/cassandra/config/DatabaseDescriptor.setPermissionsCacheMaxEntries(I)I (6)
                  (Ljava/lang/Integer;)V
         6: .line 35
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic 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;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/apache/cassandra/config/DatabaseDescriptor.getPermissionsCacheMaxEntries()I (6)
                  ()Ljava/lang/Integer;
         7: .line 36
            aload 1 /* authorizer */
            invokedynamic apply(Lorg/apache/cassandra/auth/IAuthorizer;)Ljava/util/function/Function;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/cassandra/auth/PermissionsCache.lambda$6(Lorg/apache/cassandra/auth/IAuthorizer;Lorg/apache/cassandra/utils/Pair;)Ljava/util/Set; (6)
                  (Lorg/apache/cassandra/utils/Pair;)Ljava/util/Set;
         8: .line 37
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic 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;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/apache/cassandra/auth/PermissionsCache.lambda$7()Ljava/lang/Boolean; (6)
                  ()Ljava/lang/Boolean;
            invokespecial org.apache.cassandra.auth.AuthCache.<init>:(Ljava/lang/String;Ljava/util/function/Consumer;Ljava/util/function/Supplier;Ljava/util/function/Consumer;Ljava/util/function/Supplier;Ljava/util/function/Consumer;Ljava/util/function/Supplier;Ljava/util/function/Function;Ljava/util/function/Supplier;)V
         9: .line 38
            return
        end local 1 // org.apache.cassandra.auth.IAuthorizer authorizer
        end local 0 // org.apache.cassandra.auth.PermissionsCache this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/apache/cassandra/auth/PermissionsCache;
            0   10     1  authorizer  Lorg/apache/cassandra/auth/IAuthorizer;
    MethodParameters:
            Name  Flags
      authorizer  

  public java.util.Set<org.apache.cassandra.auth.Permission> getPermissions(org.apache.cassandra.auth.AuthenticatedUser, org.apache.cassandra.auth.IResource);
    descriptor: (Lorg/apache/cassandra/auth/AuthenticatedUser;Lorg/apache/cassandra/auth/IResource;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.auth.PermissionsCache this
        start local 1 // org.apache.cassandra.auth.AuthenticatedUser user
        start local 2 // org.apache.cassandra.auth.IResource resource
         0: .line 42
            aload 0 /* this */
            aload 1 /* user */
            aload 2 /* resource */
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            invokevirtual org.apache.cassandra.auth.PermissionsCache.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            areturn
        end local 2 // org.apache.cassandra.auth.IResource resource
        end local 1 // org.apache.cassandra.auth.AuthenticatedUser user
        end local 0 // org.apache.cassandra.auth.PermissionsCache this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/auth/PermissionsCache;
            0    1     1      user  Lorg/apache/cassandra/auth/AuthenticatedUser;
            0    1     2  resource  Lorg/apache/cassandra/auth/IResource;
    Signature: (Lorg/apache/cassandra/auth/AuthenticatedUser;Lorg/apache/cassandra/auth/IResource;)Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
    MethodParameters:
          Name  Flags
      user      
      resource  

  private static java.util.Set lambda$6(org.apache.cassandra.auth.IAuthorizer, org.apache.cassandra.utils.Pair);
    descriptor: (Lorg/apache/cassandra/auth/IAuthorizer;Lorg/apache/cassandra/utils/Pair;)Ljava/util/Set;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // org.apache.cassandra.utils.Pair p
         0: .line 36
            aload 0
            aload 1 /* p */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast org.apache.cassandra.auth.AuthenticatedUser
            aload 1 /* p */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast org.apache.cassandra.auth.IResource
            invokeinterface org.apache.cassandra.auth.IAuthorizer.authorize:(Lorg/apache/cassandra/auth/AuthenticatedUser;Lorg/apache/cassandra/auth/IResource;)Ljava/util/Set;
            areturn
        end local 1 // org.apache.cassandra.utils.Pair p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     p  Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/auth/AuthenticatedUser;Lorg/apache/cassandra/auth/IResource;>;

  private static java.lang.Boolean lambda$7();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 37
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getAuthorizer:()Lorg/apache/cassandra/auth/IAuthorizer;
            invokeinterface org.apache.cassandra.auth.IAuthorizer.requireAuthorization:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/apache/cassandra/auth/AuthCache<Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/auth/AuthenticatedUser;Lorg/apache/cassandra/auth/IResource;>;Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;>;Lorg/apache/cassandra/auth/PermissionsCacheMBean;
SourceFile: "PermissionsCache.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles