public abstract class java.security.BasicPermission extends java.security.Permission implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: java.security.BasicPermission
  super_class: java.security.Permission
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6279438298436773498

  private transient boolean wildcard;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.lang.String path;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean exitVM;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private void init(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.security.BasicPermission this
        start local 1 // java.lang.String name
         0: .line 87
            aload 1 /* name */
            ifnonnull 2
         1: .line 88
            new java.lang.NullPointerException
            dup
            ldc "name can't be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 90
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            istore 2 /* len */
        start local 2 // int len
         3: .line 92
            iload 2 /* len */
            ifne 5
         4: .line 93
            new java.lang.IllegalArgumentException
            dup
            ldc "name can't be empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 96
      StackMap locals: int
      StackMap stack:
            aload 1 /* name */
            iload 2 /* len */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* last */
        start local 3 // char last
         6: .line 99
            iload 3 /* last */
            bipush 42
            if_icmpne 13
            iload 2 /* len */
            iconst_1
            if_icmpeq 7
            aload 1 /* name */
            iload 2 /* len */
            iconst_2
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 46
            if_icmpne 13
         7: .line 100
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield java.security.BasicPermission.wildcard:Z
         8: .line 101
            iload 2 /* len */
            iconst_1
            if_icmpne 11
         9: .line 102
            aload 0 /* this */
            ldc ""
            putfield java.security.BasicPermission.path:Ljava/lang/String;
        10: .line 103
            goto 19
        11: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            iconst_0
            iload 2 /* len */
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield java.security.BasicPermission.path:Ljava/lang/String;
        12: .line 106
            goto 19
        13: .line 107
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "exitVM"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        14: .line 108
            aload 0 /* this */
            iconst_1
            putfield java.security.BasicPermission.wildcard:Z
        15: .line 109
            aload 0 /* this */
            ldc "exitVM."
            putfield java.security.BasicPermission.path:Ljava/lang/String;
        16: .line 110
            aload 0 /* this */
            iconst_1
            putfield java.security.BasicPermission.exitVM:Z
        17: .line 111
            goto 19
        18: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            putfield java.security.BasicPermission.path:Ljava/lang/String;
        19: .line 115
      StackMap locals:
      StackMap stack:
            return
        end local 3 // char last
        end local 2 // int len
        end local 1 // java.lang.String name
        end local 0 // java.security.BasicPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Ljava/security/BasicPermission;
            0   20     1  name  Ljava/lang/String;
            3   20     2   len  I
            6   20     3  last  C
    MethodParameters:
      Name  Flags
      name  

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.security.BasicPermission this
        start local 1 // java.lang.String name
         0: .line 129
            aload 0 /* this */
            aload 1 /* name */
            invokespecial java.security.Permission.<init>:(Ljava/lang/String;)V
         1: .line 130
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual java.security.BasicPermission.init:(Ljava/lang/String;)V
         2: .line 131
            return
        end local 1 // java.lang.String name
        end local 0 // java.security.BasicPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/security/BasicPermission;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void <init>(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.security.BasicPermission this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String actions
         0: .line 146
            aload 0 /* this */
            aload 1 /* name */
            invokespecial java.security.Permission.<init>:(Ljava/lang/String;)V
         1: .line 147
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual java.security.BasicPermission.init:(Ljava/lang/String;)V
         2: .line 148
            return
        end local 2 // java.lang.String actions
        end local 1 // java.lang.String name
        end local 0 // java.security.BasicPermission this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Ljava/security/BasicPermission;
            0    3     1     name  Ljava/lang/String;
            0    3     2  actions  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      name     
      actions  

  public boolean implies(java.security.Permission);
    descriptor: (Ljava/security/Permission;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.security.BasicPermission this
        start local 1 // java.security.Permission p
         0: .line 169
            aload 1 /* p */
            ifnull 1
            aload 1 /* p */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 2
         1: .line 170
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 172
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            checkcast java.security.BasicPermission
            astore 2 /* that */
        start local 2 // java.security.BasicPermission that
         3: .line 174
            aload 0 /* this */
            getfield java.security.BasicPermission.wildcard:Z
            ifeq 10
         4: .line 175
            aload 2 /* that */
            getfield java.security.BasicPermission.wildcard:Z
            ifeq 6
         5: .line 177
            aload 2 /* that */
            getfield java.security.BasicPermission.path:Ljava/lang/String;
            aload 0 /* this */
            getfield java.security.BasicPermission.path:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ireturn
         6: .line 180
      StackMap locals: java.security.BasicPermission
      StackMap stack:
            aload 2 /* that */
            getfield java.security.BasicPermission.path:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            aload 0 /* this */
            getfield java.security.BasicPermission.path:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmple 9
         7: .line 181
            aload 2 /* that */
            getfield java.security.BasicPermission.path:Ljava/lang/String;
            aload 0 /* this */
            getfield java.security.BasicPermission.path:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 180
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         9: iconst_0
            ireturn
        10: .line 184
      StackMap locals:
      StackMap stack:
            aload 2 /* that */
            getfield java.security.BasicPermission.wildcard:Z
            ifeq 12
        11: .line 186
            iconst_0
            ireturn
        12: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.BasicPermission.path:Ljava/lang/String;
            aload 2 /* that */
            getfield java.security.BasicPermission.path:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.security.BasicPermission that
        end local 1 // java.security.Permission p
        end local 0 // java.security.BasicPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Ljava/security/BasicPermission;
            0   13     1     p  Ljava/security/Permission;
            3   13     2  that  Ljava/security/BasicPermission;
    MethodParameters:
      Name  Flags
      p     

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.security.BasicPermission this
        start local 1 // java.lang.Object obj
         0: .line 205
            aload 1 /* obj */
            aload 0 /* this */
            if_acmpne 2
         1: .line 206
            iconst_1
            ireturn
         2: .line 208
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            ifnull 3
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 4
         3: .line 209
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 211
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast java.security.BasicPermission
            astore 2 /* bp */
        start local 2 // java.security.BasicPermission bp
         5: .line 213
            aload 0 /* this */
            invokevirtual java.security.BasicPermission.getName:()Ljava/lang/String;
            aload 2 /* bp */
            invokevirtual java.security.BasicPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.security.BasicPermission bp
        end local 1 // java.lang.Object obj
        end local 0 // java.security.BasicPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/security/BasicPermission;
            0    6     1   obj  Ljava/lang/Object;
            5    6     2    bp  Ljava/security/BasicPermission;
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.BasicPermission this
         0: .line 227
            aload 0 /* this */
            invokevirtual java.security.BasicPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
        end local 0 // java.security.BasicPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/security/BasicPermission;

  public java.lang.String getActions();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.BasicPermission this
         0: .line 239
            ldc ""
            areturn
        end local 0 // java.security.BasicPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/security/BasicPermission;

  public java.security.PermissionCollection newPermissionCollection();
    descriptor: ()Ljava/security/PermissionCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.security.BasicPermission this
         0: .line 256
            new java.security.BasicPermissionCollection
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokespecial java.security.BasicPermissionCollection.<init>:(Ljava/lang/Class;)V
            areturn
        end local 0 // java.security.BasicPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/security/BasicPermission;

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.security.BasicPermission this
        start local 1 // java.io.ObjectInputStream s
         0: .line 266
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 268
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.security.BasicPermission.getName:()Ljava/lang/String;
            invokevirtual java.security.BasicPermission.init:(Ljava/lang/String;)V
         2: .line 269
            return
        end local 1 // java.io.ObjectInputStream s
        end local 0 // java.security.BasicPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/security/BasicPermission;
            0    3     1     s  Ljava/io/ObjectInputStream;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      s     

  final java.lang.String getCanonicalName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.BasicPermission this
         0: .line 280
            aload 0 /* this */
            getfield java.security.BasicPermission.exitVM:Z
            ifeq 1
            ldc "exitVM.*"
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            invokevirtual java.security.BasicPermission.getName:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // java.security.BasicPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/security/BasicPermission;
}
SourceFile: "BasicPermission.java"