public class org.h2.engine.UserAggregate extends org.h2.engine.DbObjectBase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.engine.UserAggregate
  super_class: org.h2.engine.DbObjectBase
{
  private java.lang.String className;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Class<?> javaClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/lang/Class<*>;

  public void <init>(org.h2.engine.Database, int, java.lang.String, java.lang.String, boolean);
    descriptor: (Lorg/h2/engine/Database;ILjava/lang/String;Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // org.h2.engine.UserAggregate this
        start local 1 // org.h2.engine.Database db
        start local 2 // int id
        start local 3 // java.lang.String name
        start local 4 // java.lang.String className
        start local 5 // boolean force
         0: .line 29
            aload 0 /* this */
            aload 1 /* db */
            iload 2 /* id */
            aload 3 /* name */
            iconst_3
            invokespecial org.h2.engine.DbObjectBase.<init>:(Lorg/h2/engine/Database;ILjava/lang/String;I)V
         1: .line 30
            aload 0 /* this */
            aload 4 /* className */
            putfield org.h2.engine.UserAggregate.className:Ljava/lang/String;
         2: .line 31
            iload 5 /* force */
            ifne 4
         3: .line 32
            aload 0 /* this */
            invokevirtual org.h2.engine.UserAggregate.getInstance:()Lorg/h2/api/Aggregate;
            pop
         4: .line 34
      StackMap locals: org.h2.engine.UserAggregate org.h2.engine.Database int java.lang.String java.lang.String int
      StackMap stack:
            return
        end local 5 // boolean force
        end local 4 // java.lang.String className
        end local 3 // java.lang.String name
        end local 2 // int id
        end local 1 // org.h2.engine.Database db
        end local 0 // org.h2.engine.UserAggregate this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/h2/engine/UserAggregate;
            0    5     1         db  Lorg/h2/engine/Database;
            0    5     2         id  I
            0    5     3       name  Ljava/lang/String;
            0    5     4  className  Ljava/lang/String;
            0    5     5      force  Z
    MethodParameters:
           Name  Flags
      db         
      id         
      name       
      className  
      force      

  public org.h2.api.Aggregate getInstance();
    descriptor: ()Lorg/h2/api/Aggregate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.h2.engine.UserAggregate this
         0: .line 37
            aload 0 /* this */
            getfield org.h2.engine.UserAggregate.javaClass:Ljava/lang/Class;
            ifnonnull 2
         1: .line 38
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.engine.UserAggregate.className:Ljava/lang/String;
            invokestatic org.h2.util.JdbcUtils.loadUserClass:(Ljava/lang/String;)Ljava/lang/Class;
            putfield org.h2.engine.UserAggregate.javaClass:Ljava/lang/Class;
         2: .line 42
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.UserAggregate.javaClass:Ljava/lang/Class;
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* obj */
        start local 1 // java.lang.Object obj
         3: .line 44
            aload 1 /* obj */
            instanceof org.h2.api.Aggregate
            ifeq 6
         4: .line 45
            aload 1 /* obj */
            checkcast org.h2.api.Aggregate
            astore 2 /* agg */
        start local 2 // org.h2.api.Aggregate agg
         5: .line 46
            goto 7
        end local 2 // org.h2.api.Aggregate agg
         6: .line 47
      StackMap locals: java.lang.Object
      StackMap stack:
            new org.h2.engine.UserAggregate$AggregateWrapper
            dup
            aload 1 /* obj */
            checkcast org.h2.api.AggregateFunction
            invokespecial org.h2.engine.UserAggregate$AggregateWrapper.<init>:(Lorg/h2/api/AggregateFunction;)V
            astore 2 /* agg */
        start local 2 // org.h2.api.Aggregate agg
         7: .line 49
      StackMap locals: org.h2.api.Aggregate
      StackMap stack:
            aload 2 /* agg */
         8: areturn
        end local 2 // org.h2.api.Aggregate agg
        end local 1 // java.lang.Object obj
         9: .line 50
      StackMap locals: org.h2.engine.UserAggregate
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        10: .line 51
            aload 2 /* e */
            invokestatic org.h2.message.DbException.convert:(Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            athrow
        end local 2 // java.lang.Exception e
        end local 0 // org.h2.engine.UserAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/h2/engine/UserAggregate;
            3    9     1   obj  Ljava/lang/Object;
            5    6     2   agg  Lorg/h2/api/Aggregate;
            7    9     2   agg  Lorg/h2/api/Aggregate;
           10   11     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.Exception

  public java.lang.String getCreateSQLForCopy(org.h2.table.Table, java.lang.String);
    descriptor: (Lorg/h2/table/Table;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.h2.engine.UserAggregate this
        start local 1 // org.h2.table.Table table
        start local 2 // java.lang.String quotedName
         0: .line 57
            aload 0 /* this */
            invokevirtual org.h2.engine.UserAggregate.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.String quotedName
        end local 1 // org.h2.table.Table table
        end local 0 // org.h2.engine.UserAggregate this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/h2/engine/UserAggregate;
            0    1     1       table  Lorg/h2/table/Table;
            0    1     2  quotedName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      table       
      quotedName  

  public java.lang.String getDropSQL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.h2.engine.UserAggregate this
         0: .line 62
            new java.lang.StringBuilder
            dup
            ldc "DROP AGGREGATE IF EXISTS "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* builder */
        start local 1 // java.lang.StringBuilder builder
         1: .line 63
            aload 0 /* this */
            aload 1 /* builder */
            iconst_1
            invokevirtual org.h2.engine.UserAggregate.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder builder
        end local 0 // org.h2.engine.UserAggregate this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/h2/engine/UserAggregate;
            1    2     1  builder  Ljava/lang/StringBuilder;

  public java.lang.String getCreateSQL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.h2.engine.UserAggregate this
         0: .line 68
            new java.lang.StringBuilder
            dup
            ldc "CREATE FORCE AGGREGATE "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* builder */
        start local 1 // java.lang.StringBuilder builder
         1: .line 69
            aload 0 /* this */
            aload 1 /* builder */
            iconst_1
            invokevirtual org.h2.engine.UserAggregate.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            ldc " FOR "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 70
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.h2.engine.UserAggregate.className:Ljava/lang/String;
            iconst_1
            invokestatic org.h2.command.Parser.quoteIdentifier:(Ljava/lang/StringBuilder;Ljava/lang/String;Z)Ljava/lang/StringBuilder;
            pop
         3: .line 71
            aload 1 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder builder
        end local 0 // org.h2.engine.UserAggregate this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/h2/engine/UserAggregate;
            1    4     1  builder  Ljava/lang/StringBuilder;

  public int getType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.UserAggregate this
         0: .line 76
            bipush 14
            ireturn
        end local 0 // org.h2.engine.UserAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/UserAggregate;

  public synchronized void removeChildrenAndResources(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.engine.UserAggregate this
        start local 1 // org.h2.engine.Session session
         0: .line 81
            aload 0 /* this */
            getfield org.h2.engine.UserAggregate.database:Lorg/h2/engine/Database;
            aload 1 /* session */
            aload 0 /* this */
            invokevirtual org.h2.engine.UserAggregate.getId:()I
            invokevirtual org.h2.engine.Database.removeMeta:(Lorg/h2/engine/Session;I)V
         1: .line 82
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.UserAggregate.className:Ljava/lang/String;
         2: .line 83
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.UserAggregate.javaClass:Ljava/lang/Class;
         3: .line 84
            aload 0 /* this */
            invokevirtual org.h2.engine.UserAggregate.invalidate:()V
         4: .line 85
            return
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.engine.UserAggregate this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/h2/engine/UserAggregate;
            0    5     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

  public void checkRename();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.UserAggregate this
         0: .line 89
            ldc "AGGREGATE"
            invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 0 // org.h2.engine.UserAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/UserAggregate;

  public java.lang.String getJavaClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.UserAggregate this
         0: .line 93
            aload 0 /* this */
            getfield org.h2.engine.UserAggregate.className:Ljava/lang/String;
            areturn
        end local 0 // org.h2.engine.UserAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/UserAggregate;
}
SourceFile: "UserAggregate.java"
NestMembers:
  org.h2.engine.UserAggregate$AggregateWrapper
InnerClasses:
  private AggregateWrapper = org.h2.engine.UserAggregate$AggregateWrapper of org.h2.engine.UserAggregate