class freemarker.core.ThreadInterruptionSupportTemplatePostProcessor extends freemarker.core.TemplatePostProcessor
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.ThreadInterruptionSupportTemplatePostProcessor
super_class: freemarker.core.TemplatePostProcessor
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // freemarker.core.ThreadInterruptionSupportTemplatePostProcessor this
0: .line 48
aload 0 /* this */
invokespecial freemarker.core.TemplatePostProcessor.<init>:()V
return
end local 0 // freemarker.core.ThreadInterruptionSupportTemplatePostProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/ThreadInterruptionSupportTemplatePostProcessor;
public void postProcess(freemarker.template.Template);
descriptor: (Lfreemarker/template/Template;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 // freemarker.core.ThreadInterruptionSupportTemplatePostProcessor this
start local 1 // freemarker.template.Template t
0: .line 52
aload 1 /* t */
invokevirtual freemarker.template.Template.getRootTreeNode:()Lfreemarker/core/TemplateElement;
astore 2 /* te */
start local 2 // freemarker.core.TemplateElement te
1: .line 53
aload 0 /* this */
aload 2 /* te */
invokevirtual freemarker.core.ThreadInterruptionSupportTemplatePostProcessor.addInterruptionChecks:(Lfreemarker/core/TemplateElement;)V
2: .line 54
return
end local 2 // freemarker.core.TemplateElement te
end local 1 // freemarker.template.Template t
end local 0 // freemarker.core.ThreadInterruptionSupportTemplatePostProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/ThreadInterruptionSupportTemplatePostProcessor;
0 3 1 t Lfreemarker/template/Template;
1 3 2 te Lfreemarker/core/TemplateElement;
Exceptions:
throws freemarker.core.TemplatePostProcessorException
MethodParameters:
Name Flags
t
private void addInterruptionChecks(freemarker.core.TemplateElement);
descriptor: (Lfreemarker/core/TemplateElement;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 // freemarker.core.ThreadInterruptionSupportTemplatePostProcessor this
start local 1 // freemarker.core.TemplateElement te
0: .line 57
aload 1 /* te */
ifnonnull 2
1: .line 58
return
2: .line 61
StackMap locals:
StackMap stack:
aload 1 /* te */
invokevirtual freemarker.core.TemplateElement.getChildCount:()I
istore 2 /* childCount */
start local 2 // int childCount
3: .line 62
iconst_0
istore 3 /* i */
start local 3 // int i
4: goto 7
5: .line 63
StackMap locals: int int
StackMap stack:
aload 0 /* this */
aload 1 /* te */
iload 3 /* i */
invokevirtual freemarker.core.TemplateElement.getChild:(I)Lfreemarker/core/TemplateElement;
invokevirtual freemarker.core.ThreadInterruptionSupportTemplatePostProcessor.addInterruptionChecks:(Lfreemarker/core/TemplateElement;)V
6: .line 62
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 3 /* i */
iload 2 /* childCount */
if_icmplt 5
end local 3 // int i
8: .line 66
aload 1 /* te */
invokevirtual freemarker.core.TemplateElement.isNestedBlockRepeater:()Z
ifeq 13
9: .line 68
aload 1 /* te */
iconst_0
new freemarker.core.ThreadInterruptionSupportTemplatePostProcessor$ThreadInterruptionCheck
dup
aload 1 /* te */
invokespecial freemarker.core.ThreadInterruptionSupportTemplatePostProcessor$ThreadInterruptionCheck.<init>:(Lfreemarker/core/TemplateElement;)V
invokevirtual freemarker.core.TemplateElement.addChild:(ILfreemarker/core/TemplateElement;)V
10: .line 69
goto 13
StackMap locals: freemarker.core.ThreadInterruptionSupportTemplatePostProcessor freemarker.core.TemplateElement int
StackMap stack: freemarker.core.ParseException
11: astore 3 /* e */
start local 3 // freemarker.core.ParseException e
12: .line 70
new freemarker.core.TemplatePostProcessorException
dup
ldc "Unexpected error; see cause"
aload 3 /* e */
invokespecial freemarker.core.TemplatePostProcessorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 // freemarker.core.ParseException e
13: .line 73
StackMap locals:
StackMap stack:
return
end local 2 // int childCount
end local 1 // freemarker.core.TemplateElement te
end local 0 // freemarker.core.ThreadInterruptionSupportTemplatePostProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lfreemarker/core/ThreadInterruptionSupportTemplatePostProcessor;
0 14 1 te Lfreemarker/core/TemplateElement;
3 14 2 childCount I
4 8 3 i I
12 13 3 e Lfreemarker/core/ParseException;
Exception table:
from to target type
9 10 11 Class freemarker.core.ParseException
Exceptions:
throws freemarker.core.TemplatePostProcessorException
MethodParameters:
Name Flags
te final
}
SourceFile: "ThreadInterruptionSupportTemplatePostProcessor.java"
NestMembers:
freemarker.core.ThreadInterruptionSupportTemplatePostProcessor$TemplateProcessingThreadInterruptedException freemarker.core.ThreadInterruptionSupportTemplatePostProcessor$ThreadInterruptionCheck
InnerClasses:
TemplateProcessingThreadInterruptedException = freemarker.core.ThreadInterruptionSupportTemplatePostProcessor$TemplateProcessingThreadInterruptedException of freemarker.core.ThreadInterruptionSupportTemplatePostProcessor
ThreadInterruptionCheck = freemarker.core.ThreadInterruptionSupportTemplatePostProcessor$ThreadInterruptionCheck of freemarker.core.ThreadInterruptionSupportTemplatePostProcessor