public class freemarker.template.utility.DOMNodeModel implements freemarker.template.TemplateHashModel
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: freemarker.template.utility.DOMNodeModel
super_class: java.lang.Object
{
private static java.util.HashMap equivalenceTable;
descriptor: Ljava/util/HashMap;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private org.w3c.dom.Node node;
descriptor: Lorg/w3c/dom/Node;
flags: (0x0002) ACC_PRIVATE
private java.util.HashMap cache;
descriptor: Ljava/util/HashMap;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic freemarker.template.utility.DOMNodeModel.equivalenceTable:Ljava/util/HashMap;
1: getstatic freemarker.template.utility.DOMNodeModel.equivalenceTable:Ljava/util/HashMap;
ldc "*"
ldc "children"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: getstatic freemarker.template.utility.DOMNodeModel.equivalenceTable:Ljava/util/HashMap;
ldc "@*"
ldc "attributes"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.w3c.dom.Node);
descriptor: (Lorg/w3c/dom/Node;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield freemarker.template.utility.DOMNodeModel.cache:Ljava/util/HashMap;
2: aload 0
aload 1
putfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lfreemarker/template/utility/DOMNodeModel;
0 4 1 node Lorg/w3c/dom/Node;
MethodParameters:
Name Flags
node
public freemarker.template.TemplateModel get(java.lang.String);
descriptor: (Ljava/lang/String;)Lfreemarker/template/TemplateModel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: getstatic freemarker.template.utility.DOMNodeModel.equivalenceTable:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
ifeq 3
2: getstatic freemarker.template.utility.DOMNodeModel.equivalenceTable:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 1
3: StackMap locals: freemarker.template.TemplateModel
StackMap stack:
aload 0
getfield freemarker.template.utility.DOMNodeModel.cache:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
ifeq 5
4: aload 0
getfield freemarker.template.utility.DOMNodeModel.cache:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast freemarker.template.TemplateModel
astore 2
5: StackMap locals:
StackMap stack:
aload 2
ifnonnull 90
6: ldc "attributes"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
7: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
invokeinterface org.w3c.dom.Node.getAttributes:()Lorg/w3c/dom/NamedNodeMap;
astore 3
start local 3 8: aload 3
ifnull 89
9: new freemarker.template.SimpleHash
dup
invokespecial freemarker.template.SimpleHash.<init>:()V
astore 4
start local 4 10: iconst_0
istore 5
start local 5 11: goto 15
12: StackMap locals: org.w3c.dom.NamedNodeMap freemarker.template.SimpleHash int
StackMap stack:
aload 3
iload 5
invokeinterface org.w3c.dom.NamedNodeMap.item:(I)Lorg/w3c/dom/Node;
checkcast org.w3c.dom.Attr
astore 6
start local 6 13: aload 4
aload 6
invokeinterface org.w3c.dom.Attr.getName:()Ljava/lang/String;
aload 6
invokeinterface org.w3c.dom.Attr.getValue:()Ljava/lang/String;
invokevirtual freemarker.template.SimpleHash.put:(Ljava/lang/String;Ljava/lang/Object;)V
end local 6 14: iinc 5 1
StackMap locals:
StackMap stack:
15: iload 5
aload 3
invokeinterface org.w3c.dom.NamedNodeMap.getLength:()I
if_icmplt 12
end local 5 16: aload 4
astore 2
end local 4 end local 3 17: goto 89
StackMap locals:
StackMap stack:
18: aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 64
if_icmpne 24
19: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
instanceof org.w3c.dom.Element
ifeq 23
20: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
checkcast org.w3c.dom.Element
aload 1
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 21: new freemarker.template.SimpleScalar
dup
aload 3
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
astore 2
end local 3 22: goto 89
23: StackMap locals:
StackMap stack:
new freemarker.template.TemplateModelException
dup
ldc "Trying to get an attribute value for a non-element node"
invokespecial freemarker.template.TemplateModelException.<init>:(Ljava/lang/String;)V
athrow
24: StackMap locals:
StackMap stack:
ldc "is_element"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 30
25: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
instanceof org.w3c.dom.Element
ifeq 27
26: getstatic freemarker.template.TemplateBooleanModel.TRUE:Lfreemarker/template/TemplateBooleanModel;
goto 28
StackMap locals:
StackMap stack:
27: getstatic freemarker.template.TemplateBooleanModel.FALSE:Lfreemarker/template/TemplateBooleanModel;
28: StackMap locals:
StackMap stack: freemarker.template.TemplateBooleanModel
astore 2
29: goto 89
StackMap locals:
StackMap stack:
30: ldc "is_text"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 36
31: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
instanceof org.w3c.dom.Text
ifeq 33
32: getstatic freemarker.template.TemplateBooleanModel.TRUE:Lfreemarker/template/TemplateBooleanModel;
goto 34
StackMap locals:
StackMap stack:
33: getstatic freemarker.template.TemplateBooleanModel.FALSE:Lfreemarker/template/TemplateBooleanModel;
34: StackMap locals:
StackMap stack: freemarker.template.TemplateBooleanModel
astore 2
35: goto 89
StackMap locals:
StackMap stack:
36: ldc "name"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 39
37: new freemarker.template.SimpleScalar
dup
aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
astore 2
38: goto 89
StackMap locals:
StackMap stack:
39: ldc "children"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 42
40: new freemarker.template.utility.DOMNodeModel$NodeListTM
dup
aload 0
aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
invokeinterface org.w3c.dom.Node.getChildNodes:()Lorg/w3c/dom/NodeList;
invokespecial freemarker.template.utility.DOMNodeModel$NodeListTM.<init>:(Lfreemarker/template/utility/DOMNodeModel;Lorg/w3c/dom/NodeList;)V
astore 2
41: goto 89
StackMap locals:
StackMap stack:
42: ldc "parent"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 48
43: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
invokeinterface org.w3c.dom.Node.getParentNode:()Lorg/w3c/dom/Node;
astore 3
start local 3 44: aload 3
ifnonnull 45
aconst_null
goto 46
StackMap locals: org.w3c.dom.Node
StackMap stack:
45: new freemarker.template.utility.DOMNodeModel
dup
aload 3
invokespecial freemarker.template.utility.DOMNodeModel.<init>:(Lorg/w3c/dom/Node;)V
StackMap locals:
StackMap stack: freemarker.template.utility.DOMNodeModel
46: astore 2
end local 3 47: goto 89
StackMap locals:
StackMap stack:
48: ldc "ancestorByName"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 51
49: new freemarker.template.utility.DOMNodeModel$AncestorByName
dup
aload 0
invokespecial freemarker.template.utility.DOMNodeModel$AncestorByName.<init>:(Lfreemarker/template/utility/DOMNodeModel;)V
astore 2
50: goto 89
StackMap locals:
StackMap stack:
51: ldc "nextSibling"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 57
52: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
invokeinterface org.w3c.dom.Node.getNextSibling:()Lorg/w3c/dom/Node;
astore 3
start local 3 53: aload 3
ifnonnull 54
aconst_null
goto 55
StackMap locals: org.w3c.dom.Node
StackMap stack:
54: new freemarker.template.utility.DOMNodeModel
dup
aload 3
invokespecial freemarker.template.utility.DOMNodeModel.<init>:(Lorg/w3c/dom/Node;)V
StackMap locals:
StackMap stack: freemarker.template.utility.DOMNodeModel
55: astore 2
end local 3 56: goto 89
StackMap locals:
StackMap stack:
57: ldc "previousSibling"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 63
58: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
invokeinterface org.w3c.dom.Node.getPreviousSibling:()Lorg/w3c/dom/Node;
astore 3
start local 3 59: aload 3
ifnonnull 60
aconst_null
goto 61
StackMap locals: org.w3c.dom.Node
StackMap stack:
60: new freemarker.template.utility.DOMNodeModel
dup
aload 3
invokespecial freemarker.template.utility.DOMNodeModel.<init>:(Lorg/w3c/dom/Node;)V
StackMap locals:
StackMap stack: freemarker.template.utility.DOMNodeModel
61: astore 2
end local 3 62: goto 89
StackMap locals:
StackMap stack:
63: ldc "nextSiblingElement"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 69
64: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
invokestatic freemarker.template.utility.DOMNodeModel.nextSiblingElement:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Element;
astore 3
start local 3 65: aload 3
ifnonnull 66
aconst_null
goto 67
StackMap locals: org.w3c.dom.Node
StackMap stack:
66: new freemarker.template.utility.DOMNodeModel
dup
aload 3
invokespecial freemarker.template.utility.DOMNodeModel.<init>:(Lorg/w3c/dom/Node;)V
StackMap locals:
StackMap stack: freemarker.template.utility.DOMNodeModel
67: astore 2
end local 3 68: goto 89
StackMap locals:
StackMap stack:
69: ldc "previousSiblingElement"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 75
70: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
invokestatic freemarker.template.utility.DOMNodeModel.previousSiblingElement:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Element;
astore 3
start local 3 71: aload 3
ifnonnull 72
aconst_null
goto 73
StackMap locals: org.w3c.dom.Node
StackMap stack:
72: new freemarker.template.utility.DOMNodeModel
dup
aload 3
invokespecial freemarker.template.utility.DOMNodeModel.<init>:(Lorg/w3c/dom/Node;)V
StackMap locals:
StackMap stack: freemarker.template.utility.DOMNodeModel
73: astore 2
end local 3 74: goto 89
StackMap locals:
StackMap stack:
75: ldc "nextElement"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 81
76: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
invokestatic freemarker.template.utility.DOMNodeModel.nextElement:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Element;
astore 3
start local 3 77: aload 3
ifnonnull 78
aconst_null
goto 79
StackMap locals: org.w3c.dom.Node
StackMap stack:
78: new freemarker.template.utility.DOMNodeModel
dup
aload 3
invokespecial freemarker.template.utility.DOMNodeModel.<init>:(Lorg/w3c/dom/Node;)V
StackMap locals:
StackMap stack: freemarker.template.utility.DOMNodeModel
79: astore 2
end local 3 80: goto 89
StackMap locals:
StackMap stack:
81: ldc "previousElement"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 87
82: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
invokestatic freemarker.template.utility.DOMNodeModel.previousElement:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Element;
astore 3
start local 3 83: aload 3
ifnonnull 84
aconst_null
goto 85
StackMap locals: org.w3c.dom.Node
StackMap stack:
84: new freemarker.template.utility.DOMNodeModel
dup
aload 3
invokespecial freemarker.template.utility.DOMNodeModel.<init>:(Lorg/w3c/dom/Node;)V
StackMap locals:
StackMap stack: freemarker.template.utility.DOMNodeModel
85: astore 2
end local 3 86: goto 89
StackMap locals:
StackMap stack:
87: ldc "text"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 89
88: new freemarker.template.SimpleScalar
dup
aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
invokestatic freemarker.template.utility.DOMNodeModel.getText:(Lorg/w3c/dom/Node;)Ljava/lang/String;
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
astore 2
89: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.template.utility.DOMNodeModel.cache:Ljava/util/HashMap;
aload 1
aload 2
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
90: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 91 0 this Lfreemarker/template/utility/DOMNodeModel;
0 91 1 key Ljava/lang/String;
1 91 2 result Lfreemarker/template/TemplateModel;
8 17 3 attributes Lorg/w3c/dom/NamedNodeMap;
10 17 4 hash Lfreemarker/template/SimpleHash;
11 16 5 i I
13 14 6 att Lorg/w3c/dom/Attr;
21 22 3 attValue Ljava/lang/String;
44 47 3 parent Lorg/w3c/dom/Node;
53 56 3 next Lorg/w3c/dom/Node;
59 62 3 previous Lorg/w3c/dom/Node;
65 68 3 next Lorg/w3c/dom/Node;
71 74 3 previous Lorg/w3c/dom/Node;
77 80 3 next Lorg/w3c/dom/Node;
83 86 3 previous Lorg/w3c/dom/Node;
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
key
public boolean isEmpty();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/template/utility/DOMNodeModel;
private static java.lang.String getText(org.w3c.dom.Node);
descriptor: (Lorg/w3c/dom/Node;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: ldc ""
astore 1
start local 1 1: aload 0
instanceof org.w3c.dom.Text
ifeq 4
2: aload 0
checkcast org.w3c.dom.Text
invokeinterface org.w3c.dom.Text.getData:()Ljava/lang/String;
astore 1
3: goto 11
StackMap locals: java.lang.String
StackMap stack:
4: aload 0
instanceof org.w3c.dom.Element
ifeq 11
5: aload 0
invokeinterface org.w3c.dom.Node.getChildNodes:()Lorg/w3c/dom/NodeList;
astore 2
start local 2 6: iconst_0
istore 3
start local 3 7: goto 10
8: StackMap locals: org.w3c.dom.NodeList int
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
iload 3
invokeinterface org.w3c.dom.NodeList.item:(I)Lorg/w3c/dom/Node;
invokestatic freemarker.template.utility.DOMNodeModel.getText:(Lorg/w3c/dom/Node;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 2
invokeinterface org.w3c.dom.NodeList.getLength:()I
if_icmplt 8
end local 3 end local 2 11: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 node Lorg/w3c/dom/Node;
1 12 1 result Ljava/lang/String;
6 11 2 children Lorg/w3c/dom/NodeList;
7 11 3 i I
MethodParameters:
Name Flags
node
private static org.w3c.dom.Element nextSiblingElement(org.w3c.dom.Node);
descriptor: (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Element;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: goto 5
2: StackMap locals: org.w3c.dom.Node
StackMap stack:
aload 1
invokeinterface org.w3c.dom.Node.getNextSibling:()Lorg/w3c/dom/Node;
astore 1
3: aload 1
instanceof org.w3c.dom.Element
ifeq 5
4: aload 1
checkcast org.w3c.dom.Element
areturn
5: StackMap locals:
StackMap stack:
aload 1
ifnonnull 2
6: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 node Lorg/w3c/dom/Node;
1 7 1 next Lorg/w3c/dom/Node;
MethodParameters:
Name Flags
node
private static org.w3c.dom.Element previousSiblingElement(org.w3c.dom.Node);
descriptor: (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Element;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: goto 5
2: StackMap locals: org.w3c.dom.Node
StackMap stack:
aload 1
invokeinterface org.w3c.dom.Node.getPreviousSibling:()Lorg/w3c/dom/Node;
astore 1
3: aload 1
instanceof org.w3c.dom.Element
ifeq 5
4: aload 1
checkcast org.w3c.dom.Element
areturn
5: StackMap locals:
StackMap stack:
aload 1
ifnonnull 2
6: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 node Lorg/w3c/dom/Node;
1 7 1 previous Lorg/w3c/dom/Node;
MethodParameters:
Name Flags
node
private static org.w3c.dom.Element nextElement(org.w3c.dom.Node);
descriptor: (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Element;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
invokeinterface org.w3c.dom.Node.hasChildNodes:()Z
ifeq 9
1: aload 0
invokeinterface org.w3c.dom.Node.getChildNodes:()Lorg/w3c/dom/NodeList;
astore 1
start local 1 2: iconst_0
istore 2
start local 2 3: goto 8
4: StackMap locals: org.w3c.dom.NodeList int
StackMap stack:
aload 1
iload 2
invokeinterface org.w3c.dom.NodeList.item:(I)Lorg/w3c/dom/Node;
astore 3
start local 3 5: aload 3
instanceof org.w3c.dom.Element
ifeq 7
6: aload 3
checkcast org.w3c.dom.Element
areturn
end local 3 7: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
aload 1
invokeinterface org.w3c.dom.NodeList.getLength:()I
if_icmplt 4
end local 2 end local 1 9: StackMap locals:
StackMap stack:
aload 0
invokestatic freemarker.template.utility.DOMNodeModel.nextSiblingElement:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Element;
astore 1
start local 1 10: aload 1
ifnull 12
11: aload 1
areturn
12: StackMap locals: org.w3c.dom.Element
StackMap stack:
aload 0
invokeinterface org.w3c.dom.Node.getParentNode:()Lorg/w3c/dom/Node;
astore 2
start local 2 13: goto 18
14: StackMap locals: org.w3c.dom.Node
StackMap stack:
aload 2
invokestatic freemarker.template.utility.DOMNodeModel.nextSiblingElement:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Element;
astore 3
start local 3 15: aload 3
ifnull 17
16: aload 3
areturn
17: StackMap locals: org.w3c.dom.Element
StackMap stack:
aload 2
invokeinterface org.w3c.dom.Node.getParentNode:()Lorg/w3c/dom/Node;
astore 2
end local 3 18: StackMap locals:
StackMap stack:
aload 2
instanceof org.w3c.dom.Element
ifne 14
19: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 node Lorg/w3c/dom/Node;
2 9 1 children Lorg/w3c/dom/NodeList;
3 9 2 i I
5 7 3 child Lorg/w3c/dom/Node;
10 20 1 nextSiblingElement Lorg/w3c/dom/Element;
13 20 2 parent Lorg/w3c/dom/Node;
15 18 3 next Lorg/w3c/dom/Element;
MethodParameters:
Name Flags
node
private static org.w3c.dom.Element previousElement(org.w3c.dom.Node);
descriptor: (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Element;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
invokestatic freemarker.template.utility.DOMNodeModel.previousSiblingElement:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Element;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
areturn
3: StackMap locals: org.w3c.dom.Element
StackMap stack:
aload 0
invokeinterface org.w3c.dom.Node.getParentNode:()Lorg/w3c/dom/Node;
astore 2
start local 2 4: aload 2
instanceof org.w3c.dom.Element
ifeq 6
5: aload 2
checkcast org.w3c.dom.Element
areturn
6: StackMap locals: org.w3c.dom.Node
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 node Lorg/w3c/dom/Node;
1 7 1 result Lorg/w3c/dom/Element;
4 7 2 parent Lorg/w3c/dom/Node;
MethodParameters:
Name Flags
node
void setParent(freemarker.template.utility.DOMNodeModel);
descriptor: (Lfreemarker/template/utility/DOMNodeModel;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
1: aload 0
getfield freemarker.template.utility.DOMNodeModel.cache:Ljava/util/HashMap;
ldc "parent"
aload 1
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/template/utility/DOMNodeModel;
0 3 1 parent Lfreemarker/template/utility/DOMNodeModel;
MethodParameters:
Name Flags
parent
java.lang.String getNodeName();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.template.utility.DOMNodeModel.node:Lorg/w3c/dom/Node;
invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/template/utility/DOMNodeModel;
}
SourceFile: "DOMNodeModel.java"
NestMembers:
freemarker.template.utility.DOMNodeModel$AncestorByName freemarker.template.utility.DOMNodeModel$NodeListTM
InnerClasses:
AncestorByName = freemarker.template.utility.DOMNodeModel$AncestorByName of freemarker.template.utility.DOMNodeModel
NodeListTM = freemarker.template.utility.DOMNodeModel$NodeListTM of freemarker.template.utility.DOMNodeModel