class freemarker.core.HashLiteral$SequenceHash implements freemarker.template.TemplateHashModelEx2
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.HashLiteral$SequenceHash
super_class: java.lang.Object
{
private java.util.HashMap map;
descriptor: Ljava/util/HashMap;
flags: (0x0002) ACC_PRIVATE
private freemarker.template.TemplateCollectionModel keyCollection;
descriptor: Lfreemarker/template/TemplateCollectionModel;
flags: (0x0002) ACC_PRIVATE
private freemarker.template.TemplateCollectionModel valueCollection;
descriptor: Lfreemarker/template/TemplateCollectionModel;
flags: (0x0002) ACC_PRIVATE
final freemarker.core.HashLiteral this$0;
descriptor: Lfreemarker/core/HashLiteral;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(freemarker.core.HashLiteral, freemarker.core.Environment);
descriptor: (Lfreemarker/core/HashLiteral;Lfreemarker/core/Environment;)V
flags: (0x0000)
Code:
stack=6, locals=10, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield freemarker.core.HashLiteral$SequenceHash.this$0:Lfreemarker/core/HashLiteral;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
invokestatic freemarker.template._TemplateAPI.getTemplateLanguageVersionAsInt:(Lfreemarker/core/TemplateObject;)I
getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_21:I
if_icmplt 15
2: aload 0
new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
putfield freemarker.core.HashLiteral$SequenceHash.map:Ljava/util/HashMap;
3: iconst_0
istore 3
start local 3 4: goto 13
5: StackMap locals: freemarker.core.HashLiteral$SequenceHash freemarker.core.HashLiteral freemarker.core.Environment int
StackMap stack:
aload 1
getfield freemarker.core.HashLiteral.keys:Ljava/util/ArrayList;
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast freemarker.core.Expression
astore 4
start local 4 6: aload 1
getfield freemarker.core.HashLiteral.values:Ljava/util/ArrayList;
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast freemarker.core.Expression
astore 5
start local 5 7: aload 4
aload 2
invokevirtual freemarker.core.Expression.evalAndCoerceToPlainText:(Lfreemarker/core/Environment;)Ljava/lang/String;
astore 6
start local 6 8: aload 5
aload 2
invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
astore 7
start local 7 9: aload 2
ifnull 10
aload 2
invokevirtual freemarker.core.Environment.isClassicCompatible:()Z
ifne 11
10: StackMap locals: freemarker.core.HashLiteral$SequenceHash freemarker.core.HashLiteral freemarker.core.Environment int freemarker.core.Expression freemarker.core.Expression java.lang.String freemarker.template.TemplateModel
StackMap stack:
aload 5
aload 7
aload 2
invokevirtual freemarker.core.Expression.assertNonNull:(Lfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)V
11: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.core.HashLiteral$SequenceHash.map:Ljava/util/HashMap;
aload 6
aload 7
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 6 end local 5 end local 4 12: iinc 3 1
StackMap locals: freemarker.core.HashLiteral$SequenceHash freemarker.core.HashLiteral freemarker.core.Environment int
StackMap stack:
13: iload 3
aload 1
getfield freemarker.core.HashLiteral.size:I
if_icmplt 5
end local 3 14: goto 33
15: StackMap locals:
StackMap stack:
aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield freemarker.core.HashLiteral$SequenceHash.map:Ljava/util/HashMap;
16: new java.util.ArrayList
dup
aload 1
getfield freemarker.core.HashLiteral.size:I
invokespecial java.util.ArrayList.<init>:(I)V
astore 3
start local 3 17: new java.util.ArrayList
dup
aload 1
getfield freemarker.core.HashLiteral.size:I
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 18: iconst_0
istore 5
start local 5 19: goto 30
20: StackMap locals: java.util.ArrayList java.util.ArrayList int
StackMap stack:
aload 1
getfield freemarker.core.HashLiteral.keys:Ljava/util/ArrayList;
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast freemarker.core.Expression
astore 6
start local 6 21: aload 1
getfield freemarker.core.HashLiteral.values:Ljava/util/ArrayList;
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast freemarker.core.Expression
astore 7
start local 7 22: aload 6
aload 2
invokevirtual freemarker.core.Expression.evalAndCoerceToPlainText:(Lfreemarker/core/Environment;)Ljava/lang/String;
astore 8
start local 8 23: aload 7
aload 2
invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
astore 9
start local 9 24: aload 2
ifnull 25
aload 2
invokevirtual freemarker.core.Environment.isClassicCompatible:()Z
ifne 26
25: StackMap locals: freemarker.core.HashLiteral$SequenceHash freemarker.core.HashLiteral freemarker.core.Environment java.util.ArrayList java.util.ArrayList int freemarker.core.Expression freemarker.core.Expression java.lang.String freemarker.template.TemplateModel
StackMap stack:
aload 7
aload 9
aload 2
invokevirtual freemarker.core.Expression.assertNonNull:(Lfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)V
26: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.core.HashLiteral$SequenceHash.map:Ljava/util/HashMap;
aload 8
aload 9
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
27: aload 3
aload 8
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
28: aload 4
aload 9
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 end local 7 end local 6 29: iinc 5 1
StackMap locals: freemarker.core.HashLiteral$SequenceHash freemarker.core.HashLiteral freemarker.core.Environment java.util.ArrayList java.util.ArrayList int
StackMap stack:
30: iload 5
aload 1
getfield freemarker.core.HashLiteral.size:I
if_icmplt 20
end local 5 31: aload 0
new freemarker.core.CollectionAndSequence
dup
new freemarker.template.SimpleSequence
dup
aload 3
invokespecial freemarker.template.SimpleSequence.<init>:(Ljava/util/Collection;)V
invokespecial freemarker.core.CollectionAndSequence.<init>:(Lfreemarker/template/TemplateSequenceModel;)V
putfield freemarker.core.HashLiteral$SequenceHash.keyCollection:Lfreemarker/template/TemplateCollectionModel;
32: aload 0
new freemarker.core.CollectionAndSequence
dup
new freemarker.template.SimpleSequence
dup
aload 4
invokespecial freemarker.template.SimpleSequence.<init>:(Ljava/util/Collection;)V
invokespecial freemarker.core.CollectionAndSequence.<init>:(Lfreemarker/template/TemplateSequenceModel;)V
putfield freemarker.core.HashLiteral$SequenceHash.valueCollection:Lfreemarker/template/TemplateCollectionModel;
end local 4 end local 3 33: StackMap locals:
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lfreemarker/core/HashLiteral$SequenceHash;
0 34 2 env Lfreemarker/core/Environment;
4 14 3 i I
6 12 4 keyExp Lfreemarker/core/Expression;
7 12 5 valExp Lfreemarker/core/Expression;
8 12 6 key Ljava/lang/String;
9 12 7 value Lfreemarker/template/TemplateModel;
17 33 3 keyList Ljava/util/ArrayList;
18 33 4 valueList Ljava/util/ArrayList;
19 31 5 i I
21 29 6 keyExp Lfreemarker/core/Expression;
22 29 7 valExp Lfreemarker/core/Expression;
23 29 8 key Ljava/lang/String;
24 29 9 value Lfreemarker/template/TemplateModel;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
this$0 final
env
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.core.HashLiteral$SequenceHash.this$0:Lfreemarker/core/HashLiteral;
getfield freemarker.core.HashLiteral.size:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/HashLiteral$SequenceHash;
public freemarker.template.TemplateCollectionModel keys();
descriptor: ()Lfreemarker/template/TemplateCollectionModel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.core.HashLiteral$SequenceHash.keyCollection:Lfreemarker/template/TemplateCollectionModel;
ifnonnull 2
1: aload 0
new freemarker.core.CollectionAndSequence
dup
new freemarker.template.SimpleSequence
dup
aload 0
getfield freemarker.core.HashLiteral$SequenceHash.map:Ljava/util/HashMap;
invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
invokespecial freemarker.template.SimpleSequence.<init>:(Ljava/util/Collection;)V
invokespecial freemarker.core.CollectionAndSequence.<init>:(Lfreemarker/template/TemplateSequenceModel;)V
putfield freemarker.core.HashLiteral$SequenceHash.keyCollection:Lfreemarker/template/TemplateCollectionModel;
2: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.core.HashLiteral$SequenceHash.keyCollection:Lfreemarker/template/TemplateCollectionModel;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/HashLiteral$SequenceHash;
public freemarker.template.TemplateCollectionModel values();
descriptor: ()Lfreemarker/template/TemplateCollectionModel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.core.HashLiteral$SequenceHash.valueCollection:Lfreemarker/template/TemplateCollectionModel;
ifnonnull 2
1: aload 0
new freemarker.core.CollectionAndSequence
dup
new freemarker.template.SimpleSequence
dup
aload 0
getfield freemarker.core.HashLiteral$SequenceHash.map:Ljava/util/HashMap;
invokevirtual java.util.HashMap.values:()Ljava/util/Collection;
invokespecial freemarker.template.SimpleSequence.<init>:(Ljava/util/Collection;)V
invokespecial freemarker.core.CollectionAndSequence.<init>:(Lfreemarker/template/TemplateSequenceModel;)V
putfield freemarker.core.HashLiteral$SequenceHash.valueCollection:Lfreemarker/template/TemplateCollectionModel;
2: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.core.HashLiteral$SequenceHash.valueCollection:Lfreemarker/template/TemplateCollectionModel;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/HashLiteral$SequenceHash;
public freemarker.template.TemplateModel get(java.lang.String);
descriptor: (Ljava/lang/String;)Lfreemarker/template/TemplateModel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield freemarker.core.HashLiteral$SequenceHash.map:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast freemarker.template.TemplateModel
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/HashLiteral$SequenceHash;
0 1 1 key Ljava/lang/String;
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: aload 0
getfield freemarker.core.HashLiteral$SequenceHash.this$0:Lfreemarker/core/HashLiteral;
getfield freemarker.core.HashLiteral.size:I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lfreemarker/core/HashLiteral$SequenceHash;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.core.HashLiteral$SequenceHash.this$0:Lfreemarker/core/HashLiteral;
invokevirtual freemarker.core.HashLiteral.getCanonicalForm:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/HashLiteral$SequenceHash;
public freemarker.template.TemplateHashModelEx2$KeyValuePairIterator keyValuePairIterator();
descriptor: ()Lfreemarker/template/TemplateHashModelEx2$KeyValuePairIterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new freemarker.core.HashLiteral$SequenceHash$1
dup
aload 0
invokespecial freemarker.core.HashLiteral$SequenceHash$1.<init>:(Lfreemarker/core/HashLiteral$SequenceHash;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/HashLiteral$SequenceHash;
Exceptions:
throws freemarker.template.TemplateModelException
}
SourceFile: "HashLiteral.java"
NestHost: freemarker.core.HashLiteral
InnerClasses:
private SequenceHash = freemarker.core.HashLiteral$SequenceHash of freemarker.core.HashLiteral
freemarker.core.HashLiteral$SequenceHash$1
public abstract KeyValuePairIterator = freemarker.template.TemplateHashModelEx2$KeyValuePairIterator of freemarker.template.TemplateHashModelEx2