class freemarker.template.SimpleCollection$SimpleTemplateModelIterator implements freemarker.template.TemplateModelIterator
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.template.SimpleCollection$SimpleTemplateModelIterator
super_class: java.lang.Object
{
private final java.util.Iterator iterator;
descriptor: Ljava/util/Iterator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean iteratorOwnedByMe;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
final freemarker.template.SimpleCollection this$0;
descriptor: Lfreemarker/template/SimpleCollection;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(freemarker.template.SimpleCollection, java.util.Iterator, boolean);
descriptor: (Lfreemarker/template/SimpleCollection;Ljava/util/Iterator;Z)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.this$0:Lfreemarker/template/SimpleCollection;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.iterator:Ljava/util/Iterator;
2: aload 0
iload 3
putfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.iteratorOwnedByMe:Z
3: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lfreemarker/template/SimpleCollection$SimpleTemplateModelIterator;
0 4 2 iterator Ljava/util/Iterator;
0 4 3 iteratorOwnedByMe Z
MethodParameters:
Name Flags
this$0 final
iterator
iteratorOwnedByMe
public freemarker.template.TemplateModel next();
descriptor: ()Lfreemarker/template/TemplateModel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.iteratorOwnedByMe:Z
ifne 9
1: aload 0
getfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.this$0:Lfreemarker/template/SimpleCollection;
dup
astore 1
monitorenter
2: aload 0
invokevirtual freemarker.template.SimpleCollection$SimpleTemplateModelIterator.checkIteratorOwned:()V
3: aload 0
getfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.this$0:Lfreemarker/template/SimpleCollection;
iconst_1
putfield freemarker.template.SimpleCollection.iteratorOwned:Z
4: aload 0
iconst_1
putfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.iteratorOwnedByMe:Z
5: aload 1
monitorexit
6: goto 9
StackMap locals: freemarker.template.SimpleCollection$SimpleTemplateModelIterator freemarker.template.SimpleCollection
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.iterator:Ljava/util/Iterator;
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
10: new freemarker.template.TemplateModelException
dup
ldc "The collection has no more items."
invokespecial freemarker.template.TemplateModelException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.iterator:Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 1
start local 1 12: aload 1
instanceof freemarker.template.TemplateModel
ifeq 13
aload 1
checkcast freemarker.template.TemplateModel
goto 14
StackMap locals: java.lang.Object
StackMap stack:
13: aload 0
getfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.this$0:Lfreemarker/template/SimpleCollection;
aload 1
invokevirtual freemarker.template.SimpleCollection.wrap:(Ljava/lang/Object;)Lfreemarker/template/TemplateModel;
StackMap locals:
StackMap stack: freemarker.template.TemplateModel
14: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lfreemarker/template/SimpleCollection$SimpleTemplateModelIterator;
12 15 1 value Ljava/lang/Object;
Exception table:
from to target type
2 6 7 any
7 8 7 any
Exceptions:
throws freemarker.template.TemplateModelException
public boolean hasNext();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.iteratorOwnedByMe:Z
ifne 7
1: aload 0
getfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.this$0:Lfreemarker/template/SimpleCollection;
dup
astore 1
monitorenter
2: aload 0
invokevirtual freemarker.template.SimpleCollection$SimpleTemplateModelIterator.checkIteratorOwned:()V
3: aload 1
monitorexit
4: goto 7
StackMap locals: freemarker.template.SimpleCollection$SimpleTemplateModelIterator freemarker.template.SimpleCollection
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.iterator:Ljava/util/Iterator;
invokeinterface java.util.Iterator.hasNext:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lfreemarker/template/SimpleCollection$SimpleTemplateModelIterator;
Exception table:
from to target type
2 4 5 any
5 6 5 any
Exceptions:
throws freemarker.template.TemplateModelException
private void checkIteratorOwned();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.template.SimpleCollection$SimpleTemplateModelIterator.this$0:Lfreemarker/template/SimpleCollection;
getfield freemarker.template.SimpleCollection.iteratorOwned:Z
ifeq 4
1: new freemarker.template.TemplateModelException
dup
2: ldc "This collection value wraps a java.util.Iterator, thus it can be listed only once."
3: invokespecial freemarker.template.TemplateModelException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lfreemarker/template/SimpleCollection$SimpleTemplateModelIterator;
Exceptions:
throws freemarker.template.TemplateModelException
}
SourceFile: "SimpleCollection.java"
NestHost: freemarker.template.SimpleCollection
InnerClasses:
private SimpleTemplateModelIterator = freemarker.template.SimpleCollection$SimpleTemplateModelIterator of freemarker.template.SimpleCollection