public class org.h2.command.ddl.GrantRevoke extends org.h2.command.ddl.DefineCommand
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.command.ddl.GrantRevoke
  super_class: org.h2.command.ddl.DefineCommand
{
  private java.util.ArrayList<java.lang.String> roleNames;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Ljava/lang/String;>;

  private int operationType;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int rightMask;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final java.util.ArrayList<org.h2.table.Table> tables;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lorg/h2/table/Table;>;

  private org.h2.schema.Schema schema;
    descriptor: Lorg/h2/schema/Schema;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.engine.RightOwner grantee;
    descriptor: Lorg/h2/engine/RightOwner;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.ddl.GrantRevoke this
        start local 1 // org.h2.engine.Session session
         0: .line 40
            aload 0 /* this */
            aload 1 /* session */
            invokespecial org.h2.command.ddl.DefineCommand.<init>:(Lorg/h2/engine/Session;)V
         1: .line 35
            aload 0 /* this */
            invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
            putfield org.h2.command.ddl.GrantRevoke.tables:Ljava/util/ArrayList;
         2: .line 41
            return
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/h2/command/ddl/GrantRevoke;
            0    3     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

  public void setOperationType(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.ddl.GrantRevoke this
        start local 1 // int operationType
         0: .line 44
            aload 0 /* this */
            iload 1 /* operationType */
            putfield org.h2.command.ddl.GrantRevoke.operationType:I
         1: .line 45
            return
        end local 1 // int operationType
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/h2/command/ddl/GrantRevoke;
            0    2     1  operationType  I
    MethodParameters:
               Name  Flags
      operationType  

  public void addRight(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.command.ddl.GrantRevoke this
        start local 1 // int right
         0: .line 53
            aload 0 /* this */
            dup
            getfield org.h2.command.ddl.GrantRevoke.rightMask:I
            iload 1 /* right */
            ior
            putfield org.h2.command.ddl.GrantRevoke.rightMask:I
         1: .line 54
            return
        end local 1 // int right
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/h2/command/ddl/GrantRevoke;
            0    2     1  right  I
    MethodParameters:
       Name  Flags
      right  

  public void addRoleName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.ddl.GrantRevoke this
        start local 1 // java.lang.String roleName
         0: .line 62
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.roleNames:Ljava/util/ArrayList;
            ifnonnull 2
         1: .line 63
            aload 0 /* this */
            invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
            putfield org.h2.command.ddl.GrantRevoke.roleNames:Ljava/util/ArrayList;
         2: .line 65
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.roleNames:Ljava/util/ArrayList;
            aload 1 /* roleName */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         3: .line 66
            return
        end local 1 // java.lang.String roleName
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/h2/command/ddl/GrantRevoke;
            0    4     1  roleName  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      roleName  

  public void setGranteeName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.command.ddl.GrantRevoke this
        start local 1 // java.lang.String granteeName
         0: .line 69
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            astore 2 /* db */
        start local 2 // org.h2.engine.Database db
         1: .line 70
            aload 0 /* this */
            aload 2 /* db */
            aload 1 /* granteeName */
            invokevirtual org.h2.engine.Database.findUser:(Ljava/lang/String;)Lorg/h2/engine/User;
            putfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
         2: .line 71
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            ifnonnull 6
         3: .line 72
            aload 0 /* this */
            aload 2 /* db */
            aload 1 /* granteeName */
            invokevirtual org.h2.engine.Database.findRole:(Ljava/lang/String;)Lorg/h2/engine/Role;
            putfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
         4: .line 73
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            ifnonnull 6
         5: .line 74
            ldc 90071
            aload 1 /* granteeName */
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
         6: .line 77
      StackMap locals: org.h2.engine.Database
      StackMap stack:
            return
        end local 2 // org.h2.engine.Database db
        end local 1 // java.lang.String granteeName
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/h2/command/ddl/GrantRevoke;
            0    7     1  granteeName  Ljava/lang/String;
            1    7     2           db  Lorg/h2/engine/Database;
    MethodParameters:
             Name  Flags
      granteeName  

  public int update();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.h2.command.ddl.GrantRevoke this
         0: .line 81
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getUser:()Lorg/h2/engine/User;
            invokevirtual org.h2.engine.User.checkAdmin:()V
         1: .line 82
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            iconst_1
            invokevirtual org.h2.engine.Session.commit:(Z)V
         2: .line 83
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            astore 1 /* db */
        start local 1 // org.h2.engine.Database db
         3: .line 84
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.roleNames:Ljava/util/ArrayList;
            ifnull 18
         4: .line 85
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.roleNames:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 16
      StackMap locals: org.h2.command.ddl.GrantRevoke org.h2.engine.Database top java.util.Iterator
      StackMap stack:
         5: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* name */
        start local 2 // java.lang.String name
         6: .line 86
            aload 1 /* db */
            aload 2 /* name */
            invokevirtual org.h2.engine.Database.findRole:(Ljava/lang/String;)Lorg/h2/engine/Role;
            astore 4 /* grantedRole */
        start local 4 // org.h2.engine.Role grantedRole
         7: .line 87
            aload 4 /* grantedRole */
            ifnonnull 9
         8: .line 88
            ldc 90070
            aload 2 /* name */
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
         9: .line 90
      StackMap locals: org.h2.command.ddl.GrantRevoke org.h2.engine.Database java.lang.String java.util.Iterator org.h2.engine.Role
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.operationType:I
            bipush 49
            if_icmpne 12
        10: .line 91
            aload 0 /* this */
            aload 4 /* grantedRole */
            invokevirtual org.h2.command.ddl.GrantRevoke.grantRole:(Lorg/h2/engine/Role;)V
        11: .line 92
            goto 16
      StackMap locals:
      StackMap stack:
        12: aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.operationType:I
            bipush 50
            if_icmpne 15
        13: .line 93
            aload 0 /* this */
            aload 4 /* grantedRole */
            invokevirtual org.h2.command.ddl.GrantRevoke.revokeRole:(Lorg/h2/engine/Role;)V
        14: .line 94
            goto 16
        15: .line 95
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "type="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.operationType:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
        end local 4 // org.h2.engine.Role grantedRole
        end local 2 // java.lang.String name
        16: .line 85
      StackMap locals: org.h2.command.ddl.GrantRevoke org.h2.engine.Database top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        17: .line 98
            goto 25
        18: .line 99
      StackMap locals: org.h2.command.ddl.GrantRevoke org.h2.engine.Database
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.operationType:I
            bipush 49
            if_icmpne 21
        19: .line 100
            aload 0 /* this */
            invokevirtual org.h2.command.ddl.GrantRevoke.grantRight:()V
        20: .line 101
            goto 25
      StackMap locals:
      StackMap stack:
        21: aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.operationType:I
            bipush 50
            if_icmpne 24
        22: .line 102
            aload 0 /* this */
            invokevirtual org.h2.command.ddl.GrantRevoke.revokeRight:()V
        23: .line 103
            goto 25
        24: .line 104
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "type="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.operationType:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
        25: .line 107
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // org.h2.engine.Database db
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0         this  Lorg/h2/command/ddl/GrantRevoke;
            3   26     1           db  Lorg/h2/engine/Database;
            6   16     2         name  Ljava/lang/String;
            7   16     4  grantedRole  Lorg/h2/engine/Role;

  private void grantRight();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.h2.command.ddl.GrantRevoke this
         0: .line 111
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.schema:Lorg/h2/schema/Schema;
            ifnull 2
         1: .line 112
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.schema:Lorg/h2/schema/Schema;
            invokevirtual org.h2.command.ddl.GrantRevoke.grantRight:(Lorg/h2/engine/DbObject;)V
         2: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.tables:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 2
            goto 5
      StackMap locals: org.h2.command.ddl.GrantRevoke top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.Table
            astore 1 /* table */
        start local 1 // org.h2.table.Table table
         4: .line 115
            aload 0 /* this */
            aload 1 /* table */
            invokevirtual org.h2.command.ddl.GrantRevoke.grantRight:(Lorg/h2/engine/DbObject;)V
        end local 1 // org.h2.table.Table table
         5: .line 114
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 117
            return
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/h2/command/ddl/GrantRevoke;
            4    5     1  table  Lorg/h2/table/Table;

  private void grantRight(org.h2.engine.DbObject);
    descriptor: (Lorg/h2/engine/DbObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // org.h2.command.ddl.GrantRevoke this
        start local 1 // org.h2.engine.DbObject object
         0: .line 120
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            astore 2 /* db */
        start local 2 // org.h2.engine.Database db
         1: .line 121
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            aload 1 /* object */
            invokevirtual org.h2.engine.RightOwner.getRightForObject:(Lorg/h2/engine/DbObject;)Lorg/h2/engine/Right;
            astore 3 /* right */
        start local 3 // org.h2.engine.Right right
         2: .line 122
            aload 3 /* right */
            ifnonnull 8
         3: .line 123
            aload 0 /* this */
            invokevirtual org.h2.command.ddl.GrantRevoke.getObjectId:()I
            istore 4 /* id */
        start local 4 // int id
         4: .line 124
            new org.h2.engine.Right
            dup
            aload 2 /* db */
            iload 4 /* id */
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.rightMask:I
            aload 1 /* object */
            invokespecial org.h2.engine.Right.<init>:(Lorg/h2/engine/Database;ILorg/h2/engine/RightOwner;ILorg/h2/engine/DbObject;)V
            astore 3 /* right */
         5: .line 125
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            aload 1 /* object */
            aload 3 /* right */
            invokevirtual org.h2.engine.RightOwner.grantRight:(Lorg/h2/engine/DbObject;Lorg/h2/engine/Right;)V
         6: .line 126
            aload 2 /* db */
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            aload 3 /* right */
            invokevirtual org.h2.engine.Database.addDatabaseObject:(Lorg/h2/engine/Session;Lorg/h2/engine/DbObject;)V
        end local 4 // int id
         7: .line 127
            goto 10
         8: .line 128
      StackMap locals: org.h2.engine.Database org.h2.engine.Right
      StackMap stack:
            aload 3 /* right */
            aload 3 /* right */
            invokevirtual org.h2.engine.Right.getRightMask:()I
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.rightMask:I
            ior
            invokevirtual org.h2.engine.Right.setRightMask:(I)V
         9: .line 129
            aload 2 /* db */
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            aload 3 /* right */
            invokevirtual org.h2.engine.Database.updateMeta:(Lorg/h2/engine/Session;Lorg/h2/engine/DbObject;)V
        10: .line 131
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.h2.engine.Right right
        end local 2 // org.h2.engine.Database db
        end local 1 // org.h2.engine.DbObject object
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/h2/command/ddl/GrantRevoke;
            0   11     1  object  Lorg/h2/engine/DbObject;
            1   11     2      db  Lorg/h2/engine/Database;
            2   11     3   right  Lorg/h2/engine/Right;
            4    7     4      id  I
    MethodParameters:
        Name  Flags
      object  

  private void grantRole(org.h2.engine.Role);
    descriptor: (Lorg/h2/engine/Role;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.h2.command.ddl.GrantRevoke this
        start local 1 // org.h2.engine.Role grantedRole
         0: .line 134
            aload 1 /* grantedRole */
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            if_acmpeq 2
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            aload 1 /* grantedRole */
            invokevirtual org.h2.engine.RightOwner.isRoleGranted:(Lorg/h2/engine/Role;)Z
            ifeq 2
         1: .line 135
            return
         2: .line 137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            instanceof org.h2.engine.Role
            ifeq 6
         3: .line 138
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            checkcast org.h2.engine.Role
            astore 2 /* granteeRole */
        start local 2 // org.h2.engine.Role granteeRole
         4: .line 139
            aload 1 /* grantedRole */
            aload 2 /* granteeRole */
            invokevirtual org.h2.engine.Role.isRoleGranted:(Lorg/h2/engine/Role;)Z
            ifeq 6
         5: .line 141
            ldc 90074
            aload 1 /* grantedRole */
            iconst_0
            invokevirtual org.h2.engine.Role.getSQL:(Z)Ljava/lang/String;
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 2 // org.h2.engine.Role granteeRole
         6: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            astore 2 /* db */
        start local 2 // org.h2.engine.Database db
         7: .line 145
            aload 0 /* this */
            invokevirtual org.h2.command.ddl.GrantRevoke.getObjectId:()I
            istore 3 /* id */
        start local 3 // int id
         8: .line 146
            new org.h2.engine.Right
            dup
            aload 2 /* db */
            iload 3 /* id */
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            aload 1 /* grantedRole */
            invokespecial org.h2.engine.Right.<init>:(Lorg/h2/engine/Database;ILorg/h2/engine/RightOwner;Lorg/h2/engine/Role;)V
            astore 4 /* right */
        start local 4 // org.h2.engine.Right right
         9: .line 147
            aload 2 /* db */
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            aload 4 /* right */
            invokevirtual org.h2.engine.Database.addDatabaseObject:(Lorg/h2/engine/Session;Lorg/h2/engine/DbObject;)V
        10: .line 148
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            aload 1 /* grantedRole */
            aload 4 /* right */
            invokevirtual org.h2.engine.RightOwner.grantRole:(Lorg/h2/engine/Role;Lorg/h2/engine/Right;)V
        11: .line 149
            return
        end local 4 // org.h2.engine.Right right
        end local 3 // int id
        end local 2 // org.h2.engine.Database db
        end local 1 // org.h2.engine.Role grantedRole
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lorg/h2/command/ddl/GrantRevoke;
            0   12     1  grantedRole  Lorg/h2/engine/Role;
            4    6     2  granteeRole  Lorg/h2/engine/Role;
            7   12     2           db  Lorg/h2/engine/Database;
            8   12     3           id  I
            9   12     4        right  Lorg/h2/engine/Right;
    MethodParameters:
             Name  Flags
      grantedRole  

  private void revokeRight();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.h2.command.ddl.GrantRevoke this
         0: .line 152
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.schema:Lorg/h2/schema/Schema;
            ifnull 2
         1: .line 153
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.schema:Lorg/h2/schema/Schema;
            invokevirtual org.h2.command.ddl.GrantRevoke.revokeRight:(Lorg/h2/engine/DbObject;)V
         2: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.tables:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 2
            goto 5
      StackMap locals: org.h2.command.ddl.GrantRevoke top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.Table
            astore 1 /* table */
        start local 1 // org.h2.table.Table table
         4: .line 156
            aload 0 /* this */
            aload 1 /* table */
            invokevirtual org.h2.command.ddl.GrantRevoke.revokeRight:(Lorg/h2/engine/DbObject;)V
        end local 1 // org.h2.table.Table table
         5: .line 155
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 158
            return
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/h2/command/ddl/GrantRevoke;
            4    5     1  table  Lorg/h2/table/Table;

  private void revokeRight(org.h2.engine.DbObject);
    descriptor: (Lorg/h2/engine/DbObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.h2.command.ddl.GrantRevoke this
        start local 1 // org.h2.engine.DbObject object
         0: .line 161
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            aload 1 /* object */
            invokevirtual org.h2.engine.RightOwner.getRightForObject:(Lorg/h2/engine/DbObject;)Lorg/h2/engine/Right;
            astore 2 /* right */
        start local 2 // org.h2.engine.Right right
         1: .line 162
            aload 2 /* right */
            ifnonnull 3
         2: .line 163
            return
         3: .line 165
      StackMap locals: org.h2.engine.Right
      StackMap stack:
            aload 2 /* right */
            invokevirtual org.h2.engine.Right.getRightMask:()I
            istore 3 /* mask */
        start local 3 // int mask
         4: .line 166
            iload 3 /* mask */
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.rightMask:I
            iconst_m1
            ixor
            iand
            istore 4 /* newRight */
        start local 4 // int newRight
         5: .line 167
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            astore 5 /* db */
        start local 5 // org.h2.engine.Database db
         6: .line 168
            iload 4 /* newRight */
            ifne 9
         7: .line 169
            aload 5 /* db */
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            aload 2 /* right */
            invokevirtual org.h2.engine.Database.removeDatabaseObject:(Lorg/h2/engine/Session;Lorg/h2/engine/DbObject;)V
         8: .line 170
            goto 11
         9: .line 171
      StackMap locals: int int org.h2.engine.Database
      StackMap stack:
            aload 2 /* right */
            iload 4 /* newRight */
            invokevirtual org.h2.engine.Right.setRightMask:(I)V
        10: .line 172
            aload 5 /* db */
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            aload 2 /* right */
            invokevirtual org.h2.engine.Database.updateMeta:(Lorg/h2/engine/Session;Lorg/h2/engine/DbObject;)V
        11: .line 174
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.h2.engine.Database db
        end local 4 // int newRight
        end local 3 // int mask
        end local 2 // org.h2.engine.Right right
        end local 1 // org.h2.engine.DbObject object
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lorg/h2/command/ddl/GrantRevoke;
            0   12     1    object  Lorg/h2/engine/DbObject;
            1   12     2     right  Lorg/h2/engine/Right;
            4   12     3      mask  I
            5   12     4  newRight  I
            6   12     5        db  Lorg/h2/engine/Database;
    MethodParameters:
        Name  Flags
      object  

  private void revokeRole(org.h2.engine.Role);
    descriptor: (Lorg/h2/engine/Role;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.h2.command.ddl.GrantRevoke this
        start local 1 // org.h2.engine.Role grantedRole
         0: .line 178
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.grantee:Lorg/h2/engine/RightOwner;
            aload 1 /* grantedRole */
            invokevirtual org.h2.engine.RightOwner.getRightForRole:(Lorg/h2/engine/Role;)Lorg/h2/engine/Right;
            astore 2 /* right */
        start local 2 // org.h2.engine.Right right
         1: .line 179
            aload 2 /* right */
            ifnonnull 3
         2: .line 180
            return
         3: .line 182
      StackMap locals: org.h2.engine.Right
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            astore 3 /* db */
        start local 3 // org.h2.engine.Database db
         4: .line 183
            aload 3 /* db */
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.session:Lorg/h2/engine/Session;
            aload 2 /* right */
            invokevirtual org.h2.engine.Database.removeDatabaseObject:(Lorg/h2/engine/Session;Lorg/h2/engine/DbObject;)V
         5: .line 184
            return
        end local 3 // org.h2.engine.Database db
        end local 2 // org.h2.engine.Right right
        end local 1 // org.h2.engine.Role grantedRole
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/h2/command/ddl/GrantRevoke;
            0    6     1  grantedRole  Lorg/h2/engine/Role;
            1    6     2        right  Lorg/h2/engine/Right;
            4    6     3           db  Lorg/h2/engine/Database;
    MethodParameters:
             Name  Flags
      grantedRole  

  public boolean isTransactional();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.ddl.GrantRevoke this
         0: .line 188
            iconst_0
            ireturn
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/ddl/GrantRevoke;

  public void addTable(org.h2.table.Table);
    descriptor: (Lorg/h2/table/Table;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.ddl.GrantRevoke this
        start local 1 // org.h2.table.Table table
         0: .line 197
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.tables:Ljava/util/ArrayList;
            aload 1 /* table */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         1: .line 198
            return
        end local 1 // org.h2.table.Table table
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/h2/command/ddl/GrantRevoke;
            0    2     1  table  Lorg/h2/table/Table;
    MethodParameters:
       Name  Flags
      table  

  public void setSchema(org.h2.schema.Schema);
    descriptor: (Lorg/h2/schema/Schema;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.ddl.GrantRevoke this
        start local 1 // org.h2.schema.Schema schema
         0: .line 206
            aload 0 /* this */
            aload 1 /* schema */
            putfield org.h2.command.ddl.GrantRevoke.schema:Lorg/h2/schema/Schema;
         1: .line 207
            return
        end local 1 // org.h2.schema.Schema schema
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/h2/command/ddl/GrantRevoke;
            0    2     1  schema  Lorg/h2/schema/Schema;
    MethodParameters:
        Name  Flags
      schema  

  public int getType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.ddl.GrantRevoke this
         0: .line 211
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.operationType:I
            ireturn
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/ddl/GrantRevoke;

  public boolean isRoleMode();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.ddl.GrantRevoke this
         0: .line 218
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.roleNames:Ljava/util/ArrayList;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/command/ddl/GrantRevoke;

  public boolean isRightMode();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.ddl.GrantRevoke this
         0: .line 225
            aload 0 /* this */
            getfield org.h2.command.ddl.GrantRevoke.rightMask:I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.h2.command.ddl.GrantRevoke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/command/ddl/GrantRevoke;
}
SourceFile: "GrantRevoke.java"