public class org.hibernate.hql.internal.ast.tree.MethodNode extends org.hibernate.hql.internal.ast.tree.AbstractSelectExpression implements org.hibernate.hql.internal.ast.tree.FunctionNode
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.hql.internal.ast.tree.MethodNode
  super_class: org.hibernate.hql.internal.ast.tree.AbstractSelectExpression
{
  private static final org.jboss.logging.Logger LOG;
    descriptor: Lorg/jboss/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.lang.String methodName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.hql.internal.ast.tree.FromElement fromElement;
    descriptor: Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] selectColumns;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.dialect.function.SQLFunction function;
    descriptor: Lorg/hibernate/dialect/function/SQLFunction;
    flags: (0x0002) ACC_PRIVATE

  private boolean inSelect;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 34
            ldc Lorg/hibernate/hql/internal/ast/tree/MethodNode;
            invokestatic org.hibernate.internal.CoreLogging.logger:(Ljava/lang/Class;)Lorg/jboss/logging/Logger;
            putstatic org.hibernate.hql.internal.ast.tree.MethodNode.LOG:Lorg/jboss/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
         0: .line 33
            aload 0 /* this */
            invokespecial org.hibernate.hql.internal.ast.tree.AbstractSelectExpression.<init>:()V
            return
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;

  public boolean isScalar();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
         0: .line 45
            iconst_1
            ireturn
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
    Exceptions:
      throws antlr.SemanticException

  public org.hibernate.dialect.function.SQLFunction getSQLFunction();
    descriptor: ()Lorg/hibernate/dialect/function/SQLFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
         0: .line 50
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.function:Lorg/hibernate/dialect/function/SQLFunction;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;

  public org.hibernate.type.Type getFirstArgumentType();
    descriptor: ()Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
         0: .line 55
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.getFirstChild:()Lantlr/collections/AST;
            astore 1 /* argument */
        start local 1 // antlr.collections.AST argument
         1: .line 56
            goto 7
         2: .line 57
      StackMap locals: antlr.collections.AST
      StackMap stack:
            aload 1 /* argument */
            instanceof org.hibernate.hql.internal.ast.tree.SqlNode
            ifeq 7
         3: .line 58
            aload 1 /* argument */
            checkcast org.hibernate.hql.internal.ast.tree.SqlNode
            invokevirtual org.hibernate.hql.internal.ast.tree.SqlNode.getDataType:()Lorg/hibernate/type/Type;
            astore 2 /* type */
        start local 2 // org.hibernate.type.Type type
         4: .line 59
            aload 2 /* type */
            ifnull 6
         5: .line 60
            aload 2 /* type */
            areturn
         6: .line 62
      StackMap locals: org.hibernate.type.Type
      StackMap stack:
            aload 1 /* argument */
            invokeinterface antlr.collections.AST.getNextSibling:()Lantlr/collections/AST;
            astore 1 /* argument */
        end local 2 // org.hibernate.type.Type type
         7: .line 56
      StackMap locals:
      StackMap stack:
            aload 1 /* argument */
            ifnonnull 2
         8: .line 65
            aconst_null
            areturn
        end local 1 // antlr.collections.AST argument
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
            1    9     1  argument  Lantlr/collections/AST;
            4    7     2      type  Lorg/hibernate/type/Type;

  public void resolve(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
        start local 1 // boolean inSelect
         0: .line 70
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.getFirstChild:()Lantlr/collections/AST;
            astore 2 /* nameNode */
        start local 2 // antlr.collections.AST nameNode
         1: .line 71
            aload 2 /* nameNode */
            invokeinterface antlr.collections.AST.getNextSibling:()Lantlr/collections/AST;
            astore 3 /* exprListNode */
        start local 3 // antlr.collections.AST exprListNode
         2: .line 73
            aload 0 /* this */
            aload 2 /* nameNode */
            iload 1 /* inSelect */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.initializeMethodNode:(Lantlr/collections/AST;Z)V
         3: .line 77
            aload 3 /* exprListNode */
            invokestatic org.hibernate.hql.internal.ast.util.ASTUtil.hasExactlyOneChild:(Lantlr/collections/AST;)Z
            ifeq 10
         4: .line 78
            ldc "type"
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.methodName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 79
            aload 0 /* this */
            aload 3 /* exprListNode */
            invokeinterface antlr.collections.AST.getFirstChild:()Lantlr/collections/AST;
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.typeDiscriminator:(Lantlr/collections/AST;)V
         6: .line 80
            return
         7: .line 82
      StackMap locals: antlr.collections.AST antlr.collections.AST
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.isCollectionPropertyMethod:()Z
            ifeq 10
         8: .line 83
            aload 0 /* this */
            aload 3 /* exprListNode */
            invokeinterface antlr.collections.AST.getFirstChild:()Lantlr/collections/AST;
            aload 2 /* nameNode */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.collectionProperty:(Lantlr/collections/AST;Lantlr/collections/AST;)V
         9: .line 84
            return
        10: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* exprListNode */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.dialectFunction:(Lantlr/collections/AST;)V
        11: .line 89
            return
        end local 3 // antlr.collections.AST exprListNode
        end local 2 // antlr.collections.AST nameNode
        end local 1 // boolean inSelect
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
            0   12     1      inSelect  Z
            1   12     2      nameNode  Lantlr/collections/AST;
            2   12     3  exprListNode  Lantlr/collections/AST;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
          Name  Flags
      inSelect  

  public void initializeMethodNode(antlr.collections.AST, boolean);
    descriptor: (Lantlr/collections/AST;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
        start local 1 // antlr.collections.AST name
        start local 2 // boolean inSelect
         0: .line 92
            aload 1 /* name */
            sipush 151
            invokeinterface antlr.collections.AST.setType:(I)V
         1: .line 93
            aload 1 /* name */
            invokeinterface antlr.collections.AST.getText:()Ljava/lang/String;
            astore 3 /* text */
        start local 3 // java.lang.String text
         2: .line 95
            aload 0 /* this */
            aload 3 /* text */
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            putfield org.hibernate.hql.internal.ast.tree.MethodNode.methodName:Ljava/lang/String;
         3: .line 97
            aload 0 /* this */
            iload 2 /* inSelect */
            putfield org.hibernate.hql.internal.ast.tree.MethodNode.inSelect:Z
         4: .line 98
            return
        end local 3 // java.lang.String text
        end local 2 // boolean inSelect
        end local 1 // antlr.collections.AST name
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
            0    5     1      name  Lantlr/collections/AST;
            0    5     2  inSelect  Z
            2    5     3      text  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      name      
      inSelect  

  private void typeDiscriminator(antlr.collections.AST);
    descriptor: (Lantlr/collections/AST;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
        start local 1 // antlr.collections.AST path
         0: .line 101
            aload 1 /* path */
            ifnonnull 2
         1: .line 102
            new antlr.SemanticException
            dup
            ldc "type() discriminator reference has no path!"
            invokespecial antlr.SemanticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 105
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            checkcast org.hibernate.hql.internal.ast.tree.FromReferenceNode
            astore 2 /* pathAsFromReferenceNode */
        start local 2 // org.hibernate.hql.internal.ast.tree.FromReferenceNode pathAsFromReferenceNode
         3: .line 106
            aload 2 /* pathAsFromReferenceNode */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromReferenceNode.getFromElement:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 3 /* fromElement */
        start local 3 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
         4: .line 107
            aload 3 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getTypeDiscriminatorMetadata:()Lorg/hibernate/hql/internal/ast/TypeDiscriminatorMetadata;
            astore 4 /* typeDiscriminatorMetadata */
        start local 4 // org.hibernate.hql.internal.ast.TypeDiscriminatorMetadata typeDiscriminatorMetadata
         5: .line 109
            aload 0 /* this */
            aload 4 /* typeDiscriminatorMetadata */
            invokeinterface org.hibernate.hql.internal.ast.TypeDiscriminatorMetadata.getResolutionType:()Lorg/hibernate/type/Type;
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.setDataType:(Lorg/hibernate/type/Type;)V
         6: .line 110
            aload 0 /* this */
            aload 4 /* typeDiscriminatorMetadata */
            invokeinterface org.hibernate.hql.internal.ast.TypeDiscriminatorMetadata.getSqlFragment:()Ljava/lang/String;
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.setText:(Ljava/lang/String;)V
         7: .line 111
            aload 0 /* this */
            sipush 146
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.setType:(I)V
         8: .line 112
            return
        end local 4 // org.hibernate.hql.internal.ast.TypeDiscriminatorMetadata typeDiscriminatorMetadata
        end local 3 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
        end local 2 // org.hibernate.hql.internal.ast.tree.FromReferenceNode pathAsFromReferenceNode
        end local 1 // antlr.collections.AST path
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    9     0                       this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
            0    9     1                       path  Lantlr/collections/AST;
            3    9     2    pathAsFromReferenceNode  Lorg/hibernate/hql/internal/ast/tree/FromReferenceNode;
            4    9     3                fromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            5    9     4  typeDiscriminatorMetadata  Lorg/hibernate/hql/internal/ast/TypeDiscriminatorMetadata;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
      Name  Flags
      path  

  private void dialectFunction(antlr.collections.AST);
    descriptor: (Lantlr/collections/AST;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
        start local 1 // antlr.collections.AST exprList
         0: .line 115
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.methodName:Ljava/lang/String;
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.findSQLFunction:(Ljava/lang/String;)Lorg/hibernate/dialect/function/SQLFunction;
            putfield org.hibernate.hql.internal.ast.tree.MethodNode.function:Lorg/hibernate/dialect/function/SQLFunction;
         1: .line 116
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.function:Lorg/hibernate/dialect/function/SQLFunction;
            ifnull 9
         2: .line 117
            aload 1 /* exprList */
            ifnull 3
            aload 1 /* exprList */
            invokeinterface antlr.collections.AST.getFirstChild:()Lantlr/collections/AST;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aconst_null
      StackMap locals:
      StackMap stack: antlr.collections.AST
         4: astore 2 /* firstChild */
        start local 2 // antlr.collections.AST firstChild
         5: .line 118
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
         6: .line 119
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.methodName:Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.function:Lorg/hibernate/dialect/function/SQLFunction;
            aload 2 /* firstChild */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.findFunctionReturnType:(Ljava/lang/String;Lorg/hibernate/dialect/function/SQLFunction;Lantlr/collections/AST;)Lorg/hibernate/type/Type;
         7: .line 118
            astore 3 /* functionReturnType */
        start local 3 // org.hibernate.type.Type functionReturnType
         8: .line 120
            aload 0 /* this */
            aload 3 /* functionReturnType */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.setDataType:(Lorg/hibernate/type/Type;)V
        end local 3 // org.hibernate.type.Type functionReturnType
        end local 2 // antlr.collections.AST firstChild
         9: .line 122
      StackMap locals:
      StackMap stack:
            return
        end local 1 // antlr.collections.AST exprList
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   10     0                this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
            0   10     1            exprList  Lantlr/collections/AST;
            5    9     2          firstChild  Lantlr/collections/AST;
            8    9     3  functionReturnType  Lorg/hibernate/type/Type;
    MethodParameters:
          Name  Flags
      exprList  

  public boolean isCollectionPropertyMethod();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
         0: .line 125
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.methodName:Ljava/lang/String;
            invokestatic org.hibernate.hql.internal.CollectionProperties.isAnyCollectionProperty:(Ljava/lang/String;)Z
            ireturn
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;

  private void collectionProperty(antlr.collections.AST, antlr.collections.AST);
    descriptor: (Lantlr/collections/AST;Lantlr/collections/AST;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
        start local 1 // antlr.collections.AST path
        start local 2 // antlr.collections.AST name
         0: .line 129
            aload 1 /* path */
            ifnonnull 2
         1: .line 130
            new antlr.SemanticException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Collection function "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokeinterface antlr.collections.AST.getText:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " has no path!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial antlr.SemanticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 133
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            checkcast org.hibernate.hql.internal.ast.tree.SqlNode
            astore 3 /* expr */
        start local 3 // org.hibernate.hql.internal.ast.tree.SqlNode expr
         3: .line 134
            aload 3 /* expr */
            invokevirtual org.hibernate.hql.internal.ast.tree.SqlNode.getDataType:()Lorg/hibernate/type/Type;
            astore 4 /* type */
        start local 4 // org.hibernate.type.Type type
         4: .line 135
            getstatic org.hibernate.hql.internal.ast.tree.MethodNode.LOG:Lorg/jboss/logging/Logger;
            ldc "collectionProperty() :  name=%s type=%s"
            aload 2 /* name */
            aload 4 /* type */
            invokevirtual org.jboss.logging.Logger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 137
            aload 0 /* this */
            aload 3 /* expr */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.resolveCollectionProperty:(Lantlr/collections/AST;)V
         6: .line 138
            return
        end local 4 // org.hibernate.type.Type type
        end local 3 // org.hibernate.hql.internal.ast.tree.SqlNode expr
        end local 2 // antlr.collections.AST name
        end local 1 // antlr.collections.AST path
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
            0    7     1  path  Lantlr/collections/AST;
            0    7     2  name  Lantlr/collections/AST;
            3    7     3  expr  Lorg/hibernate/hql/internal/ast/tree/SqlNode;
            4    7     4  type  Lorg/hibernate/type/Type;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
      Name  Flags
      path  
      name  

  protected void resolveCollectionProperty(antlr.collections.AST);
    descriptor: (Lantlr/collections/AST;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
        start local 1 // antlr.collections.AST expr
         0: .line 141
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.methodName:Ljava/lang/String;
            invokestatic org.hibernate.hql.internal.CollectionProperties.getNormalizedPropertyName:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* propertyName */
        start local 2 // java.lang.String propertyName
         1: .line 142
            aload 1 /* expr */
            instanceof org.hibernate.hql.internal.ast.tree.FromReferenceNode
            ifeq 20
         2: .line 143
            aload 1 /* expr */
            checkcast org.hibernate.hql.internal.ast.tree.FromReferenceNode
            astore 3 /* collectionNode */
        start local 3 // org.hibernate.hql.internal.ast.tree.FromReferenceNode collectionNode
         3: .line 145
            ldc "elements"
            aload 2 /* propertyName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 146
            aload 0 /* this */
            aload 3 /* collectionNode */
            aload 2 /* propertyName */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.handleElements:(Lorg/hibernate/hql/internal/ast/tree/FromReferenceNode;Ljava/lang/String;)V
         5: .line 147
            goto 11
         6: .line 150
      StackMap locals: java.lang.String org.hibernate.hql.internal.ast.tree.FromReferenceNode
      StackMap stack:
            aload 0 /* this */
            aload 3 /* collectionNode */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromReferenceNode.getFromElement:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            putfield org.hibernate.hql.internal.ast.tree.MethodNode.fromElement:Lorg/hibernate/hql/internal/ast/tree/FromElement;
         7: .line 152
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.fromElement:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            aload 2 /* propertyName */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getCollectionPropertyReference:(Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/CollectionPropertyReference;
            astore 4 /* cpr */
        start local 4 // org.hibernate.hql.internal.ast.tree.CollectionPropertyReference cpr
         8: .line 153
            aload 0 /* this */
            aload 4 /* cpr */
            invokeinterface org.hibernate.hql.internal.ast.tree.CollectionPropertyReference.getType:()Lorg/hibernate/type/Type;
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.setDataType:(Lorg/hibernate/type/Type;)V
         9: .line 154
            aload 0 /* this */
            aload 4 /* cpr */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.fromElement:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getTableAlias:()Ljava/lang/String;
            invokeinterface org.hibernate.hql.internal.ast.tree.CollectionPropertyReference.toColumns:(Ljava/lang/String;)[Ljava/lang/String;
            putfield org.hibernate.hql.internal.ast.tree.MethodNode.selectColumns:[Ljava/lang/String;
        10: .line 157
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.fromElement:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.fromElement:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getTableAlias:()Ljava/lang/String;
            aload 2 /* propertyName */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.inSelect:Z
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.toColumns:(Ljava/lang/String;Ljava/lang/String;Z)[Ljava/lang/String;
            putfield org.hibernate.hql.internal.ast.tree.MethodNode.selectColumns:[Ljava/lang/String;
        end local 4 // org.hibernate.hql.internal.ast.tree.CollectionPropertyReference cpr
        11: .line 159
      StackMap locals:
      StackMap stack:
            aload 3 /* collectionNode */
            instanceof org.hibernate.hql.internal.ast.tree.DotNode
            ifeq 13
        12: .line 160
            aload 0 /* this */
            aload 3 /* collectionNode */
            checkcast org.hibernate.hql.internal.ast.tree.DotNode
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.prepareAnyImplicitJoins:(Lorg/hibernate/hql/internal/ast/tree/DotNode;)V
        13: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.inSelect:Z
            ifne 16
        14: .line 163
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.fromElement:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            ldc ""
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setText:(Ljava/lang/String;)V
        15: .line 164
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.fromElement:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            iconst_0
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setUseWhereFragment:(Z)V
        16: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.selectColumns:[Ljava/lang/String;
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.prepareSelectColumns:([Ljava/lang/String;)V
        17: .line 167
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.selectColumns:[Ljava/lang/String;
            iconst_0
            aaload
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.setText:(Ljava/lang/String;)V
        18: .line 168
            aload 0 /* this */
            sipush 146
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.setType:(I)V
        end local 3 // org.hibernate.hql.internal.ast.tree.FromReferenceNode collectionNode
        19: .line 169
            goto 25
        20: .line 171
      StackMap locals:
      StackMap stack:
            new antlr.SemanticException
            dup
        21: .line 172
            new java.lang.StringBuilder
            dup
            ldc "Unexpected expression "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* expr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        22: .line 173
            ldc " found for collection function "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* propertyName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        23: .line 172
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        24: .line 171
            invokespecial antlr.SemanticException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 176
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String propertyName
        end local 1 // antlr.collections.AST expr
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   26     0            this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
            0   26     1            expr  Lantlr/collections/AST;
            1   26     2    propertyName  Ljava/lang/String;
            3   19     3  collectionNode  Lorg/hibernate/hql/internal/ast/tree/FromReferenceNode;
            8   11     4             cpr  Lorg/hibernate/hql/internal/ast/tree/CollectionPropertyReference;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
      Name  Flags
      expr  

  private void prepareAnyImplicitJoins(org.hibernate.hql.internal.ast.tree.DotNode);
    descriptor: (Lorg/hibernate/hql/internal/ast/tree/DotNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
        start local 1 // org.hibernate.hql.internal.ast.tree.DotNode dotNode
         0: .line 179
            aload 1 /* dotNode */
            invokevirtual org.hibernate.hql.internal.ast.tree.DotNode.getLhs:()Lorg/hibernate/hql/internal/ast/tree/FromReferenceNode;
            instanceof org.hibernate.hql.internal.ast.tree.DotNode
            ifeq 9
         1: .line 180
            aload 1 /* dotNode */
            invokevirtual org.hibernate.hql.internal.ast.tree.DotNode.getLhs:()Lorg/hibernate/hql/internal/ast/tree/FromReferenceNode;
            checkcast org.hibernate.hql.internal.ast.tree.DotNode
            astore 2 /* lhs */
        start local 2 // org.hibernate.hql.internal.ast.tree.DotNode lhs
         2: .line 181
            aload 2 /* lhs */
            invokevirtual org.hibernate.hql.internal.ast.tree.DotNode.getFromElement:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 3 /* lhsOrigin */
        start local 3 // org.hibernate.hql.internal.ast.tree.FromElement lhsOrigin
         3: .line 182
            aload 3 /* lhsOrigin */
            ifnull 8
            ldc ""
            aload 3 /* lhsOrigin */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getText:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         4: .line 183
            new java.lang.StringBuilder
            dup
            aload 3 /* lhsOrigin */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getQueryable:()Lorg/hibernate/persister/entity/Queryable;
            invokeinterface org.hibernate.persister.entity.Queryable.getTableName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 184
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* lhsOrigin */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getTableAlias:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 183
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* lhsOriginText */
        start local 4 // java.lang.String lhsOriginText
         7: .line 185
            aload 3 /* lhsOrigin */
            aload 4 /* lhsOriginText */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setText:(Ljava/lang/String;)V
        end local 4 // java.lang.String lhsOriginText
         8: .line 187
      StackMap locals: org.hibernate.hql.internal.ast.tree.DotNode org.hibernate.hql.internal.ast.tree.FromElement
      StackMap stack:
            aload 0 /* this */
            aload 2 /* lhs */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.prepareAnyImplicitJoins:(Lorg/hibernate/hql/internal/ast/tree/DotNode;)V
        end local 3 // org.hibernate.hql.internal.ast.tree.FromElement lhsOrigin
        end local 2 // org.hibernate.hql.internal.ast.tree.DotNode lhs
         9: .line 189
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.hql.internal.ast.tree.DotNode dotNode
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
            0   10     1        dotNode  Lorg/hibernate/hql/internal/ast/tree/DotNode;
            2    9     2            lhs  Lorg/hibernate/hql/internal/ast/tree/DotNode;
            3    9     3      lhsOrigin  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            7    8     4  lhsOriginText  Ljava/lang/String;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
         Name  Flags
      dotNode  

  private void handleElements(org.hibernate.hql.internal.ast.tree.FromReferenceNode, java.lang.String);
    descriptor: (Lorg/hibernate/hql/internal/ast/tree/FromReferenceNode;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
        start local 1 // org.hibernate.hql.internal.ast.tree.FromReferenceNode collectionNode
        start local 2 // java.lang.String propertyName
         0: .line 192
            aload 1 /* collectionNode */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromReferenceNode.getFromElement:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 3 /* collectionFromElement */
        start local 3 // org.hibernate.hql.internal.ast.tree.FromElement collectionFromElement
         1: .line 193
            aload 3 /* collectionFromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getQueryableCollection:()Lorg/hibernate/persister/collection/QueryableCollection;
            astore 4 /* queryableCollection */
        start local 4 // org.hibernate.persister.collection.QueryableCollection queryableCollection
         2: .line 195
            new java.lang.StringBuilder
            dup
            aload 1 /* collectionNode */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromReferenceNode.getPath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "[]."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* propertyName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* path */
        start local 5 // java.lang.String path
         3: .line 196
            getstatic org.hibernate.hql.internal.ast.tree.MethodNode.LOG:Lorg/jboss/logging/Logger;
            ldc "Creating elements for %s"
            aload 5 /* path */
            invokevirtual org.jboss.logging.Logger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 198
            aload 0 /* this */
            aload 3 /* collectionFromElement */
            putfield org.hibernate.hql.internal.ast.tree.MethodNode.fromElement:Lorg/hibernate/hql/internal/ast/tree/FromElement;
         5: .line 199
            aload 3 /* collectionFromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.isCollectionOfValuesOrComponents:()Z
            ifne 7
         6: .line 200
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.getWalker:()Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            aload 4 /* queryableCollection */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getQuerySpaces:()[Ljava/io/Serializable;
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.addQuerySpaces:([Ljava/io/Serializable;)V
         7: .line 203
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElement org.hibernate.persister.collection.QueryableCollection java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 4 /* queryableCollection */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementType:()Lorg/hibernate/type/Type;
            invokevirtual org.hibernate.hql.internal.ast.tree.MethodNode.setDataType:(Lorg/hibernate/type/Type;)V
         8: .line 204
            aload 0 /* this */
            aload 3 /* collectionFromElement */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.fromElement:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getTableAlias:()Ljava/lang/String;
            aload 2 /* propertyName */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.inSelect:Z
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.toColumns:(Ljava/lang/String;Ljava/lang/String;Z)[Ljava/lang/String;
            putfield org.hibernate.hql.internal.ast.tree.MethodNode.selectColumns:[Ljava/lang/String;
         9: .line 205
            return
        end local 5 // java.lang.String path
        end local 4 // org.hibernate.persister.collection.QueryableCollection queryableCollection
        end local 3 // org.hibernate.hql.internal.ast.tree.FromElement collectionFromElement
        end local 2 // java.lang.String propertyName
        end local 1 // org.hibernate.hql.internal.ast.tree.FromReferenceNode collectionNode
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   10     0                   this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
            0   10     1         collectionNode  Lorg/hibernate/hql/internal/ast/tree/FromReferenceNode;
            0   10     2           propertyName  Ljava/lang/String;
            1   10     3  collectionFromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            2   10     4    queryableCollection  Lorg/hibernate/persister/collection/QueryableCollection;
            3   10     5                   path  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      collectionNode  
      propertyName    

  public void setScalarColumnText(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
        start local 1 // int i
         0: .line 209
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.selectColumns:[Ljava/lang/String;
            ifnonnull 3
         1: .line 210
            aload 0 /* this */
            iload 1 /* i */
            invokestatic org.hibernate.hql.internal.ast.util.ColumnHelper.generateSingleScalarColumn:(Lorg/hibernate/hql/internal/ast/tree/HqlSqlWalkerNode;I)V
         2: .line 211
            goto 4
         3: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.selectColumns:[Ljava/lang/String;
            iload 1 /* i */
            invokestatic org.hibernate.hql.internal.ast.util.ColumnHelper.generateScalarColumns:(Lorg/hibernate/hql/internal/ast/tree/HqlSqlWalkerNode;[Ljava/lang/String;I)V
         4: .line 215
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int i
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
            0    5     1     i  I
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
      Name  Flags
      i     

  protected void prepareSelectColumns(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
        start local 1 // java.lang.String[] columns
         0: .line 218
            return
        end local 1 // java.lang.String[] columns
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
            0    1     1  columns  [Ljava/lang/String;
    MethodParameters:
         Name  Flags
      columns  

  public org.hibernate.hql.internal.ast.tree.FromElement getFromElement();
    descriptor: ()Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
         0: .line 222
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.fromElement:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;

  public java.lang.String getDisplayText();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
         0: .line 226
            new java.lang.StringBuilder
            dup
            ldc "{method="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 227
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.methodName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 228
            ldc ",selectColumns="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.selectColumns:[Ljava/lang/String;
            ifnonnull 4
         3: .line 229
            aconst_null
            goto 5
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         4: aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.selectColumns:[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
      StackMap locals: org.hibernate.hql.internal.ast.tree.MethodNode
      StackMap stack: java.lang.StringBuilder java.util.List
         5: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         6: .line 230
            ldc ",fromElement="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.MethodNode.fromElement:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getTableAlias:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 231
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 226
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.tree.MethodNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/hibernate/hql/internal/ast/tree/MethodNode;
}
SourceFile: "MethodNode.java"