public class org.apache.commons.configuration.tree.MergeCombiner extends org.apache.commons.configuration.tree.NodeCombiner
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.configuration.tree.MergeCombiner
  super_class: org.apache.commons.configuration.tree.NodeCombiner
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration.tree.MergeCombiner this
         0: .line 45
            aload 0 /* this */
            invokespecial org.apache.commons.configuration.tree.NodeCombiner.<init>:()V
            return
        end local 0 // org.apache.commons.configuration.tree.MergeCombiner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration/tree/MergeCombiner;

  public org.apache.commons.configuration.tree.ConfigurationNode combine(org.apache.commons.configuration.tree.ConfigurationNode, org.apache.commons.configuration.tree.ConfigurationNode);
    descriptor: (Lorg/apache/commons/configuration/tree/ConfigurationNode;Lorg/apache/commons/configuration/tree/ConfigurationNode;)Lorg/apache/commons/configuration/tree/ConfigurationNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.apache.commons.configuration.tree.MergeCombiner this
        start local 1 // org.apache.commons.configuration.tree.ConfigurationNode node1
        start local 2 // org.apache.commons.configuration.tree.ConfigurationNode node2
         0: .line 58
            aload 0 /* this */
            invokevirtual org.apache.commons.configuration.tree.MergeCombiner.createViewNode:()Lorg/apache/commons/configuration/tree/ViewNode;
            astore 3 /* result */
        start local 3 // org.apache.commons.configuration.tree.ViewNode result
         1: .line 59
            aload 3 /* result */
            aload 1 /* node1 */
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getName:()Ljava/lang/String;
            invokevirtual org.apache.commons.configuration.tree.ViewNode.setName:(Ljava/lang/String;)V
         2: .line 60
            aload 3 /* result */
            aload 1 /* node1 */
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getValue:()Ljava/lang/Object;
            invokevirtual org.apache.commons.configuration.tree.ViewNode.setValue:(Ljava/lang/Object;)V
         3: .line 61
            aload 0 /* this */
            aload 3 /* result */
            aload 1 /* node1 */
            aload 2 /* node2 */
            invokevirtual org.apache.commons.configuration.tree.MergeCombiner.addAttributes:(Lorg/apache/commons/configuration/tree/ViewNode;Lorg/apache/commons/configuration/tree/ConfigurationNode;Lorg/apache/commons/configuration/tree/ConfigurationNode;)V
         4: .line 64
            new java.util.LinkedList
            dup
            aload 2 /* node2 */
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getChildren:()Ljava/util/List;
            invokespecial java.util.LinkedList.<init>:(Ljava/util/Collection;)V
            astore 4 /* children2 */
        start local 4 // java.util.List children2
         5: .line 65
            aload 1 /* node1 */
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 13
      StackMap locals: org.apache.commons.configuration.tree.MergeCombiner org.apache.commons.configuration.tree.ConfigurationNode org.apache.commons.configuration.tree.ConfigurationNode org.apache.commons.configuration.tree.ViewNode java.util.List top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.configuration.tree.ConfigurationNode
            astore 5 /* child1 */
        start local 5 // org.apache.commons.configuration.tree.ConfigurationNode child1
         7: .line 67
            aload 0 /* this */
            aload 1 /* node1 */
            aload 2 /* node2 */
            aload 5 /* child1 */
            aload 4 /* children2 */
            invokevirtual org.apache.commons.configuration.tree.MergeCombiner.canCombine:(Lorg/apache/commons/configuration/tree/ConfigurationNode;Lorg/apache/commons/configuration/tree/ConfigurationNode;Lorg/apache/commons/configuration/tree/ConfigurationNode;Ljava/util/List;)Lorg/apache/commons/configuration/tree/ConfigurationNode;
            astore 7 /* child2 */
        start local 7 // org.apache.commons.configuration.tree.ConfigurationNode child2
         8: .line 68
            aload 7 /* child2 */
            ifnull 12
         9: .line 70
            aload 3 /* result */
            aload 0 /* this */
            aload 5 /* child1 */
            aload 7 /* child2 */
            invokevirtual org.apache.commons.configuration.tree.MergeCombiner.combine:(Lorg/apache/commons/configuration/tree/ConfigurationNode;Lorg/apache/commons/configuration/tree/ConfigurationNode;)Lorg/apache/commons/configuration/tree/ConfigurationNode;
            invokevirtual org.apache.commons.configuration.tree.ViewNode.addChild:(Lorg/apache/commons/configuration/tree/ConfigurationNode;)V
        10: .line 71
            aload 4 /* children2 */
            aload 7 /* child2 */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        11: .line 72
            goto 13
        12: .line 75
      StackMap locals: org.apache.commons.configuration.tree.MergeCombiner org.apache.commons.configuration.tree.ConfigurationNode org.apache.commons.configuration.tree.ConfigurationNode org.apache.commons.configuration.tree.ViewNode java.util.List org.apache.commons.configuration.tree.ConfigurationNode java.util.Iterator org.apache.commons.configuration.tree.ConfigurationNode
      StackMap stack:
            aload 3 /* result */
            aload 5 /* child1 */
            invokevirtual org.apache.commons.configuration.tree.ViewNode.addChild:(Lorg/apache/commons/configuration/tree/ConfigurationNode;)V
        end local 7 // org.apache.commons.configuration.tree.ConfigurationNode child2
        end local 5 // org.apache.commons.configuration.tree.ConfigurationNode child1
        13: .line 65
      StackMap locals: org.apache.commons.configuration.tree.MergeCombiner org.apache.commons.configuration.tree.ConfigurationNode org.apache.commons.configuration.tree.ConfigurationNode org.apache.commons.configuration.tree.ViewNode java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        14: .line 80
            aload 4 /* children2 */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 17
      StackMap locals:
      StackMap stack:
        15: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.configuration.tree.ConfigurationNode
            astore 5 /* c */
        start local 5 // org.apache.commons.configuration.tree.ConfigurationNode c
        16: .line 82
            aload 3 /* result */
            aload 5 /* c */
            invokevirtual org.apache.commons.configuration.tree.ViewNode.addChild:(Lorg/apache/commons/configuration/tree/ConfigurationNode;)V
        end local 5 // org.apache.commons.configuration.tree.ConfigurationNode c
        17: .line 80
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 84
            aload 3 /* result */
            areturn
        end local 4 // java.util.List children2
        end local 3 // org.apache.commons.configuration.tree.ViewNode result
        end local 2 // org.apache.commons.configuration.tree.ConfigurationNode node2
        end local 1 // org.apache.commons.configuration.tree.ConfigurationNode node1
        end local 0 // org.apache.commons.configuration.tree.MergeCombiner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Lorg/apache/commons/configuration/tree/MergeCombiner;
            0   19     1      node1  Lorg/apache/commons/configuration/tree/ConfigurationNode;
            0   19     2      node2  Lorg/apache/commons/configuration/tree/ConfigurationNode;
            1   19     3     result  Lorg/apache/commons/configuration/tree/ViewNode;
            5   19     4  children2  Ljava/util/List<Lorg/apache/commons/configuration/tree/ConfigurationNode;>;
            7   13     5     child1  Lorg/apache/commons/configuration/tree/ConfigurationNode;
            8   13     7     child2  Lorg/apache/commons/configuration/tree/ConfigurationNode;
           16   17     5          c  Lorg/apache/commons/configuration/tree/ConfigurationNode;
    MethodParameters:
       Name  Flags
      node1  
      node2  

  protected void addAttributes(org.apache.commons.configuration.tree.ViewNode, org.apache.commons.configuration.tree.ConfigurationNode, org.apache.commons.configuration.tree.ConfigurationNode);
    descriptor: (Lorg/apache/commons/configuration/tree/ViewNode;Lorg/apache/commons/configuration/tree/ConfigurationNode;Lorg/apache/commons/configuration/tree/ConfigurationNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // org.apache.commons.configuration.tree.MergeCombiner this
        start local 1 // org.apache.commons.configuration.tree.ViewNode result
        start local 2 // org.apache.commons.configuration.tree.ConfigurationNode node1
        start local 3 // org.apache.commons.configuration.tree.ConfigurationNode node2
         0: .line 100
            aload 1 /* result */
            aload 2 /* node1 */
            invokevirtual org.apache.commons.configuration.tree.ViewNode.appendAttributes:(Lorg/apache/commons/configuration/tree/ConfigurationNode;)V
         1: .line 101
            aload 3 /* node2 */
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getAttributes:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: org.apache.commons.configuration.tree.MergeCombiner org.apache.commons.configuration.tree.ViewNode org.apache.commons.configuration.tree.ConfigurationNode org.apache.commons.configuration.tree.ConfigurationNode top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.configuration.tree.ConfigurationNode
            astore 4 /* attr */
        start local 4 // org.apache.commons.configuration.tree.ConfigurationNode attr
         3: .line 103
            aload 2 /* node1 */
            aload 4 /* attr */
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getName:()Ljava/lang/String;
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getAttributeCount:(Ljava/lang/String;)I
            ifne 5
         4: .line 105
            aload 1 /* result */
            aload 4 /* attr */
            invokevirtual org.apache.commons.configuration.tree.ViewNode.addAttribute:(Lorg/apache/commons/configuration/tree/ConfigurationNode;)V
        end local 4 // org.apache.commons.configuration.tree.ConfigurationNode attr
         5: .line 101
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 108
            return
        end local 3 // org.apache.commons.configuration.tree.ConfigurationNode node2
        end local 2 // org.apache.commons.configuration.tree.ConfigurationNode node1
        end local 1 // org.apache.commons.configuration.tree.ViewNode result
        end local 0 // org.apache.commons.configuration.tree.MergeCombiner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/apache/commons/configuration/tree/MergeCombiner;
            0    7     1  result  Lorg/apache/commons/configuration/tree/ViewNode;
            0    7     2   node1  Lorg/apache/commons/configuration/tree/ConfigurationNode;
            0    7     3   node2  Lorg/apache/commons/configuration/tree/ConfigurationNode;
            3    5     4    attr  Lorg/apache/commons/configuration/tree/ConfigurationNode;
    MethodParameters:
        Name  Flags
      result  
      node1   
      node2   

  protected org.apache.commons.configuration.tree.ConfigurationNode canCombine(org.apache.commons.configuration.tree.ConfigurationNode, org.apache.commons.configuration.tree.ConfigurationNode, org.apache.commons.configuration.tree.ConfigurationNode, java.util.List<org.apache.commons.configuration.tree.ConfigurationNode>);
    descriptor: (Lorg/apache/commons/configuration/tree/ConfigurationNode;Lorg/apache/commons/configuration/tree/ConfigurationNode;Lorg/apache/commons/configuration/tree/ConfigurationNode;Ljava/util/List;)Lorg/apache/commons/configuration/tree/ConfigurationNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=13, args_size=5
        start local 0 // org.apache.commons.configuration.tree.MergeCombiner this
        start local 1 // org.apache.commons.configuration.tree.ConfigurationNode node1
        start local 2 // org.apache.commons.configuration.tree.ConfigurationNode node2
        start local 3 // org.apache.commons.configuration.tree.ConfigurationNode child
        start local 4 // java.util.List children2
         0: .line 123
            aload 3 /* child */
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getAttributes:()Ljava/util/List;
            astore 5 /* attrs1 */
        start local 5 // java.util.List attrs1
         1: .line 124
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* nodes */
        start local 6 // java.util.List nodes
         2: .line 126
            aload 2 /* node2 */
            aload 3 /* child */
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getName:()Ljava/lang/String;
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getChildren:(Ljava/lang/String;)Ljava/util/List;
            astore 7 /* children */
        start local 7 // java.util.List children
         3: .line 127
            aload 7 /* children */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8 /* it */
        start local 8 // java.util.Iterator it
         4: .line 128
            goto 17
         5: .line 130
      StackMap locals: org.apache.commons.configuration.tree.MergeCombiner org.apache.commons.configuration.tree.ConfigurationNode org.apache.commons.configuration.tree.ConfigurationNode org.apache.commons.configuration.tree.ConfigurationNode java.util.List java.util.List java.util.List java.util.List java.util.Iterator
      StackMap stack:
            aload 8 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.configuration.tree.ConfigurationNode
            astore 9 /* node */
        start local 9 // org.apache.commons.configuration.tree.ConfigurationNode node
         6: .line 131
            aload 5 /* attrs1 */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10 /* iter */
        start local 10 // java.util.Iterator iter
         7: .line 132
            goto 14
         8: .line 134
      StackMap locals: org.apache.commons.configuration.tree.ConfigurationNode java.util.Iterator
      StackMap stack:
            aload 10 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.configuration.tree.ConfigurationNode
            astore 11 /* attr1 */
        start local 11 // org.apache.commons.configuration.tree.ConfigurationNode attr1
         9: .line 135
            aload 9 /* node */
            aload 11 /* attr1 */
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getName:()Ljava/lang/String;
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getAttributes:(Ljava/lang/String;)Ljava/util/List;
            astore 12 /* list2 */
        start local 12 // java.util.List list2
        10: .line 136
            aload 12 /* list2 */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 14
        11: .line 137
            aload 11 /* attr1 */
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getValue:()Ljava/lang/Object;
            aload 12 /* list2 */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.commons.configuration.tree.ConfigurationNode
            invokeinterface org.apache.commons.configuration.tree.ConfigurationNode.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 14
        12: .line 139
            aconst_null
            astore 9 /* node */
        13: .line 140
            goto 15
        end local 12 // java.util.List list2
        end local 11 // org.apache.commons.configuration.tree.ConfigurationNode attr1
        14: .line 132
      StackMap locals:
      StackMap stack:
            aload 10 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        15: .line 143
      StackMap locals:
      StackMap stack:
            aload 9 /* node */
            ifnull 17
        16: .line 145
            aload 6 /* nodes */
            aload 9 /* node */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // java.util.Iterator iter
        end local 9 // org.apache.commons.configuration.tree.ConfigurationNode node
        17: .line 128
      StackMap locals:
      StackMap stack:
            aload 8 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        18: .line 149
            aload 6 /* nodes */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 20
        19: .line 151
            aload 6 /* nodes */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.commons.configuration.tree.ConfigurationNode
            areturn
        20: .line 153
      StackMap locals:
      StackMap stack:
            aload 6 /* nodes */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 25
            aload 0 /* this */
            aload 3 /* child */
            invokevirtual org.apache.commons.configuration.tree.MergeCombiner.isListNode:(Lorg/apache/commons/configuration/tree/ConfigurationNode;)Z
            ifne 25
        21: .line 155
            aload 6 /* nodes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9 /* iter */
        start local 9 // java.util.Iterator iter
        22: .line 156
            goto 24
        23: .line 158
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 4 /* children2 */
            aload 9 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        24: .line 156
      StackMap locals:
      StackMap stack:
            aload 9 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        end local 9 // java.util.Iterator iter
        25: .line 162
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 8 // java.util.Iterator it
        end local 7 // java.util.List children
        end local 6 // java.util.List nodes
        end local 5 // java.util.List attrs1
        end local 4 // java.util.List children2
        end local 3 // org.apache.commons.configuration.tree.ConfigurationNode child
        end local 2 // org.apache.commons.configuration.tree.ConfigurationNode node2
        end local 1 // org.apache.commons.configuration.tree.ConfigurationNode node1
        end local 0 // org.apache.commons.configuration.tree.MergeCombiner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   26     0       this  Lorg/apache/commons/configuration/tree/MergeCombiner;
            0   26     1      node1  Lorg/apache/commons/configuration/tree/ConfigurationNode;
            0   26     2      node2  Lorg/apache/commons/configuration/tree/ConfigurationNode;
            0   26     3      child  Lorg/apache/commons/configuration/tree/ConfigurationNode;
            0   26     4  children2  Ljava/util/List<Lorg/apache/commons/configuration/tree/ConfigurationNode;>;
            1   26     5     attrs1  Ljava/util/List<Lorg/apache/commons/configuration/tree/ConfigurationNode;>;
            2   26     6      nodes  Ljava/util/List<Lorg/apache/commons/configuration/tree/ConfigurationNode;>;
            3   26     7   children  Ljava/util/List<Lorg/apache/commons/configuration/tree/ConfigurationNode;>;
            4   26     8         it  Ljava/util/Iterator<Lorg/apache/commons/configuration/tree/ConfigurationNode;>;
            6   17     9       node  Lorg/apache/commons/configuration/tree/ConfigurationNode;
            7   17    10       iter  Ljava/util/Iterator<Lorg/apache/commons/configuration/tree/ConfigurationNode;>;
            9   14    11      attr1  Lorg/apache/commons/configuration/tree/ConfigurationNode;
           10   14    12      list2  Ljava/util/List<Lorg/apache/commons/configuration/tree/ConfigurationNode;>;
           22   25     9       iter  Ljava/util/Iterator<Lorg/apache/commons/configuration/tree/ConfigurationNode;>;
    Signature: (Lorg/apache/commons/configuration/tree/ConfigurationNode;Lorg/apache/commons/configuration/tree/ConfigurationNode;Lorg/apache/commons/configuration/tree/ConfigurationNode;Ljava/util/List<Lorg/apache/commons/configuration/tree/ConfigurationNode;>;)Lorg/apache/commons/configuration/tree/ConfigurationNode;
    MethodParameters:
           Name  Flags
      node1      
      node2      
      child      
      children2  
}
SourceFile: "MergeCombiner.java"