class freemarker.core.BodyInstruction$Context implements freemarker.core.LocalContext
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.BodyInstruction$Context
super_class: java.lang.Object
{
freemarker.core.Macro$Context invokingMacroContext;
descriptor: Lfreemarker/core/Macro$Context;
flags: (0x0000)
freemarker.core.Environment$Namespace bodyVars;
descriptor: Lfreemarker/core/Environment$Namespace;
flags: (0x0000)
final freemarker.core.BodyInstruction this$0;
descriptor: Lfreemarker/core/BodyInstruction;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(freemarker.core.BodyInstruction, freemarker.core.Environment);
descriptor: (Lfreemarker/core/BodyInstruction;Lfreemarker/core/Environment;)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=3
start local 0 // freemarker.core.BodyInstruction$Context this
start local 2 // freemarker.core.Environment env
0: .line 126
aload 0 /* this */
aload 1
putfield freemarker.core.BodyInstruction$Context.this$0:Lfreemarker/core/BodyInstruction;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 127
aload 0 /* this */
aload 2 /* env */
invokevirtual freemarker.core.Environment.getCurrentMacroContext:()Lfreemarker/core/Macro$Context;
putfield freemarker.core.BodyInstruction$Context.invokingMacroContext:Lfreemarker/core/Macro$Context;
2: .line 128
aload 0 /* this */
getfield freemarker.core.BodyInstruction$Context.invokingMacroContext:Lfreemarker/core/Macro$Context;
getfield freemarker.core.Macro$Context.nestedContentParameterNames:Ljava/util/List;
astore 3 /* bodyParameterNames */
start local 3 // java.util.List bodyParameterNames
3: .line 129
aload 1
getfield freemarker.core.BodyInstruction.bodyParameters:Ljava/util/List;
ifnull 15
4: .line 130
iconst_0
istore 4 /* i */
start local 4 // int i
5: goto 14
6: .line 131
StackMap locals: freemarker.core.BodyInstruction$Context freemarker.core.BodyInstruction freemarker.core.Environment java.util.List int
StackMap stack:
aload 1
getfield freemarker.core.BodyInstruction.bodyParameters:Ljava/util/List;
iload 4 /* i */
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast freemarker.core.Expression
astore 5 /* exp */
start local 5 // freemarker.core.Expression exp
7: .line 132
aload 5 /* exp */
aload 2 /* env */
invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
astore 6 /* tm */
start local 6 // freemarker.template.TemplateModel tm
8: .line 133
aload 3 /* bodyParameterNames */
ifnull 13
iload 4 /* i */
aload 3 /* bodyParameterNames */
invokeinterface java.util.List.size:()I
if_icmpge 13
9: .line 134
aload 3 /* bodyParameterNames */
iload 4 /* i */
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 7 /* bodyParameterName */
start local 7 // java.lang.String bodyParameterName
10: .line 135
aload 0 /* this */
getfield freemarker.core.BodyInstruction$Context.bodyVars:Lfreemarker/core/Environment$Namespace;
ifnonnull 12
11: .line 136
aload 0 /* this */
new freemarker.core.Environment$Namespace
dup
aload 2 /* env */
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokespecial freemarker.core.Environment$Namespace.<init>:(Lfreemarker/core/Environment;)V
putfield freemarker.core.BodyInstruction$Context.bodyVars:Lfreemarker/core/Environment$Namespace;
12: .line 138
StackMap locals: freemarker.core.Expression freemarker.template.TemplateModel java.lang.String
StackMap stack:
aload 0 /* this */
getfield freemarker.core.BodyInstruction$Context.bodyVars:Lfreemarker/core/Environment$Namespace;
aload 7 /* bodyParameterName */
aload 6 /* tm */
invokevirtual freemarker.core.Environment$Namespace.put:(Ljava/lang/String;Ljava/lang/Object;)V
end local 7 // java.lang.String bodyParameterName
end local 6 // freemarker.template.TemplateModel tm
end local 5 // freemarker.core.Expression exp
13: .line 130
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
14: iload 4 /* i */
aload 1
getfield freemarker.core.BodyInstruction.bodyParameters:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 6
end local 4 // int i
15: .line 142
StackMap locals:
StackMap stack:
return
end local 3 // java.util.List bodyParameterNames
end local 2 // freemarker.core.Environment env
end local 0 // freemarker.core.BodyInstruction$Context this
LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lfreemarker/core/BodyInstruction$Context;
0 16 2 env Lfreemarker/core/Environment;
3 16 3 bodyParameterNames Ljava/util/List;
5 15 4 i I
7 13 5 exp Lfreemarker/core/Expression;
8 13 6 tm Lfreemarker/template/TemplateModel;
10 13 7 bodyParameterName Ljava/lang/String;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
this$0 final
env
public freemarker.template.TemplateModel getLocalVariable(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 // freemarker.core.BodyInstruction$Context this
start local 1 // java.lang.String name
0: .line 145
aload 0 /* this */
getfield freemarker.core.BodyInstruction$Context.bodyVars:Lfreemarker/core/Environment$Namespace;
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0 /* this */
getfield freemarker.core.BodyInstruction$Context.bodyVars:Lfreemarker/core/Environment$Namespace;
aload 1 /* name */
invokevirtual freemarker.core.Environment$Namespace.get:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
StackMap locals:
StackMap stack: freemarker.template.TemplateModel
2: areturn
end local 1 // java.lang.String name
end local 0 // freemarker.core.BodyInstruction$Context this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/BodyInstruction$Context;
0 3 1 name Ljava/lang/String;
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
name
public java.util.Collection getLocalVariableNames();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 // freemarker.core.BodyInstruction$Context this
0: .line 149
aload 0 /* this */
getfield freemarker.core.BodyInstruction$Context.invokingMacroContext:Lfreemarker/core/Macro$Context;
getfield freemarker.core.Macro$Context.nestedContentParameterNames:Ljava/util/List;
astore 1 /* bodyParameterNames */
start local 1 // java.util.List bodyParameterNames
1: .line 150
aload 1 /* bodyParameterNames */
ifnonnull 2
getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
goto 3
StackMap locals: java.util.List
StackMap stack:
2: aload 1 /* bodyParameterNames */
StackMap locals:
StackMap stack: java.util.List
3: areturn
end local 1 // java.util.List bodyParameterNames
end local 0 // freemarker.core.BodyInstruction$Context this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lfreemarker/core/BodyInstruction$Context;
1 4 1 bodyParameterNames Ljava/util/List;
}
SourceFile: "BodyInstruction.java"
NestHost: freemarker.core.BodyInstruction
InnerClasses:
Context = freemarker.core.BodyInstruction$Context of freemarker.core.BodyInstruction
public Namespace = freemarker.core.Environment$Namespace of freemarker.core.Environment
Context = freemarker.core.Macro$Context of freemarker.core.Macro