class freemarker.core.Interpret extends freemarker.core.OutputFormatBoundBuiltIn
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.Interpret
super_class: freemarker.core.OutputFormatBoundBuiltIn
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // freemarker.core.Interpret this
0: .line 47
aload 0 /* this */
invokespecial freemarker.core.OutputFormatBoundBuiltIn.<init>:()V
return
end local 0 // freemarker.core.Interpret this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/Interpret;
protected freemarker.template.TemplateModel calculateResult(freemarker.core.Environment);
descriptor: (Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
flags: (0x0004) ACC_PROTECTED
Code:
stack=11, locals=9, args_size=2
start local 0 // freemarker.core.Interpret this
start local 1 // freemarker.core.Environment env
0: .line 66
aload 0 /* this */
getfield freemarker.core.Interpret.target:Lfreemarker/core/Expression;
aload 1 /* env */
invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
astore 2 /* model */
start local 2 // freemarker.template.TemplateModel model
1: .line 67
aconst_null
astore 3 /* sourceExpr */
start local 3 // freemarker.core.Expression sourceExpr
2: .line 68
ldc "anonymous_interpreted"
astore 4 /* id */
start local 4 // java.lang.String id
3: .line 69
aload 2 /* model */
instanceof freemarker.template.TemplateSequenceModel
ifeq 8
4: .line 70
new freemarker.core.DynamicKeyName
dup
aload 0 /* this */
getfield freemarker.core.Interpret.target:Lfreemarker/core/Expression;
new freemarker.core.NumberLiteral
dup
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial freemarker.core.NumberLiteral.<init>:(Ljava/lang/Number;)V
invokespecial freemarker.core.DynamicKeyName.<init>:(Lfreemarker/core/Expression;Lfreemarker/core/Expression;)V
aload 0 /* this */
getfield freemarker.core.Interpret.target:Lfreemarker/core/Expression;
invokevirtual freemarker.core.DynamicKeyName.copyLocationFrom:(Lfreemarker/core/TemplateObject;)Lfreemarker/core/TemplateObject;
checkcast freemarker.core.Expression
astore 3 /* sourceExpr */
5: .line 71
aload 2 /* model */
checkcast freemarker.template.TemplateSequenceModel
invokeinterface freemarker.template.TemplateSequenceModel.size:()I
iconst_1
if_icmple 16
6: .line 72
new freemarker.core.DynamicKeyName
dup
aload 0 /* this */
getfield freemarker.core.Interpret.target:Lfreemarker/core/Expression;
new freemarker.core.NumberLiteral
dup
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial freemarker.core.NumberLiteral.<init>:(Ljava/lang/Number;)V
invokespecial freemarker.core.DynamicKeyName.<init>:(Lfreemarker/core/Expression;Lfreemarker/core/Expression;)V
aload 0 /* this */
getfield freemarker.core.Interpret.target:Lfreemarker/core/Expression;
invokevirtual freemarker.core.DynamicKeyName.copyLocationFrom:(Lfreemarker/core/TemplateObject;)Lfreemarker/core/TemplateObject;
checkcast freemarker.core.Expression
aload 1 /* env */
invokevirtual freemarker.core.Expression.evalAndCoerceToPlainText:(Lfreemarker/core/Environment;)Ljava/lang/String;
astore 4 /* id */
7: .line 74
goto 16
StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression java.lang.String
StackMap stack:
8: aload 2 /* model */
instanceof freemarker.template.TemplateScalarModel
ifeq 11
9: .line 75
aload 0 /* this */
getfield freemarker.core.Interpret.target:Lfreemarker/core/Expression;
astore 3 /* sourceExpr */
10: .line 76
goto 16
11: .line 77
StackMap locals:
StackMap stack:
new freemarker.core.UnexpectedTypeException
dup
12: .line 78
aload 0 /* this */
getfield freemarker.core.Interpret.target:Lfreemarker/core/Expression;
aload 2 /* model */
13: .line 79
ldc "sequence or string"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Lfreemarker/template/TemplateSequenceModel;
aastore
dup
iconst_1
ldc Lfreemarker/template/TemplateScalarModel;
aastore
14: .line 80
aload 1 /* env */
15: .line 77
invokespecial freemarker.core.UnexpectedTypeException.<init>:(Lfreemarker/core/Expression;Lfreemarker/template/TemplateModel;Ljava/lang/String;[Ljava/lang/Class;Lfreemarker/core/Environment;)V
athrow
16: .line 82
StackMap locals:
StackMap stack:
aload 3 /* sourceExpr */
aload 1 /* env */
invokevirtual freemarker.core.Expression.evalAndCoerceToPlainText:(Lfreemarker/core/Environment;)Ljava/lang/String;
astore 5 /* templateSource */
start local 5 // java.lang.String templateSource
17: .line 83
aload 1 /* env */
invokevirtual freemarker.core.Environment.getConfiguration:()Lfreemarker/template/Configuration;
invokevirtual freemarker.template.Configuration.getIncompatibleImprovements:()Lfreemarker/template/Version;
invokevirtual freemarker.template.Version.intValue:()I
18: .line 84
getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_26:I
if_icmplt 19
aload 1 /* env */
invokevirtual freemarker.core.Environment.getCurrentTemplate:()Lfreemarker/template/Template;
goto 20
StackMap locals: java.lang.String
StackMap stack:
19: aload 1 /* env */
invokevirtual freemarker.core.Environment.getTemplate:()Lfreemarker/template/Template;
20: .line 83
StackMap locals:
StackMap stack: freemarker.template.Template
astore 6 /* parentTemplate */
start local 6 // freemarker.template.Template parentTemplate
21: .line 88
aload 6 /* parentTemplate */
invokevirtual freemarker.template.Template.getParserConfiguration:()Lfreemarker/core/ParserConfiguration;
astore 8 /* pCfg */
start local 8 // freemarker.core.ParserConfiguration pCfg
22: .line 90
aload 8 /* pCfg */
invokeinterface freemarker.core.ParserConfiguration.getOutputFormat:()Lfreemarker/core/OutputFormat;
aload 0 /* this */
getfield freemarker.core.Interpret.outputFormat:Lfreemarker/core/OutputFormat;
if_acmpeq 26
23: .line 91
new freemarker.core._ParserConfigurationWithInheritedFormat
dup
24: .line 92
aload 8 /* pCfg */
aload 0 /* this */
getfield freemarker.core.Interpret.outputFormat:Lfreemarker/core/OutputFormat;
aload 0 /* this */
getfield freemarker.core.Interpret.autoEscapingPolicy:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
25: .line 91
invokespecial freemarker.core._ParserConfigurationWithInheritedFormat.<init>:(Lfreemarker/core/ParserConfiguration;Lfreemarker/core/OutputFormat;Ljava/lang/Integer;)V
astore 8 /* pCfg */
26: .line 94
StackMap locals: freemarker.core.Interpret freemarker.core.Environment freemarker.template.TemplateModel freemarker.core.Expression java.lang.String java.lang.String freemarker.template.Template top freemarker.core.ParserConfiguration
StackMap stack:
new freemarker.template.Template
dup
27: .line 95
new java.lang.StringBuilder
dup
aload 6 /* parentTemplate */
invokevirtual freemarker.template.Template.getName:()Ljava/lang/String;
ifnull 28
aload 6 /* parentTemplate */
invokevirtual freemarker.template.Template.getName:()Ljava/lang/String;
goto 29
StackMap locals: freemarker.core.Interpret freemarker.core.Environment freemarker.template.TemplateModel freemarker.core.Expression java.lang.String java.lang.String freemarker.template.Template top freemarker.core.ParserConfiguration
StackMap stack: new 26 new 26 new 27 new 27
28: ldc "nameless_template"
StackMap locals: freemarker.core.Interpret freemarker.core.Environment freemarker.template.TemplateModel freemarker.core.Expression java.lang.String java.lang.String freemarker.template.Template top freemarker.core.ParserConfiguration
StackMap stack: new 26 new 26 new 27 new 27 java.lang.String
29: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "->"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4 /* id */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
30: .line 96
aconst_null
31: .line 97
new java.io.StringReader
dup
aload 5 /* templateSource */
invokespecial java.io.StringReader.<init>:(Ljava/lang/String;)V
32: .line 98
aload 6 /* parentTemplate */
invokevirtual freemarker.template.Template.getConfiguration:()Lfreemarker/template/Configuration;
aload 8 /* pCfg */
33: .line 99
aconst_null
34: .line 94
invokespecial freemarker.template.Template.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/io/Reader;Lfreemarker/template/Configuration;Lfreemarker/core/ParserConfiguration;Ljava/lang/String;)V
astore 7 /* interpretedTemplate */
end local 8 // freemarker.core.ParserConfiguration pCfg
start local 7 // freemarker.template.Template interpretedTemplate
35: .line 100
goto 44
end local 7 // freemarker.template.Template interpretedTemplate
StackMap locals: freemarker.core.Interpret freemarker.core.Environment freemarker.template.TemplateModel freemarker.core.Expression java.lang.String java.lang.String freemarker.template.Template
StackMap stack: java.io.IOException
36: astore 8 /* e */
start local 8 // java.io.IOException e
37: .line 101
new freemarker.core._MiscTemplateException
dup
aload 0 /* this */
aload 8 /* e */
aload 1 /* env */
bipush 7
anewarray java.lang.Object
dup
iconst_0
38: .line 102
ldc "Template parsing with \"?"
aastore
dup
iconst_1
aload 0 /* this */
getfield freemarker.core.Interpret.key:Ljava/lang/String;
aastore
dup
iconst_2
ldc "\" has failed with this error:\n\n"
aastore
dup
iconst_3
39: .line 103
ldc "---begin-message---\n"
aastore
dup
iconst_4
40: .line 104
new freemarker.core._DelayedGetMessage
dup
aload 8 /* e */
invokespecial freemarker.core._DelayedGetMessage.<init>:(Ljava/lang/Throwable;)V
aastore
dup
iconst_5
41: .line 105
ldc "\n---end-message---"
aastore
dup
bipush 6
42: .line 106
ldc "\n\nThe failed expression:"
aastore
43: .line 101
invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Expression;Ljava/lang/Throwable;Lfreemarker/core/Environment;[Ljava/lang/Object;)V
athrow
end local 8 // java.io.IOException e
start local 7 // freemarker.template.Template interpretedTemplate
44: .line 109
StackMap locals: freemarker.template.Template
StackMap stack:
aload 7 /* interpretedTemplate */
aload 1 /* env */
invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
invokevirtual freemarker.template.Template.setLocale:(Ljava/util/Locale;)V
45: .line 110
new freemarker.core.Interpret$TemplateProcessorModel
dup
aload 0 /* this */
aload 7 /* interpretedTemplate */
invokespecial freemarker.core.Interpret$TemplateProcessorModel.<init>:(Lfreemarker/core/Interpret;Lfreemarker/template/Template;)V
areturn
end local 7 // freemarker.template.Template interpretedTemplate
end local 6 // freemarker.template.Template parentTemplate
end local 5 // java.lang.String templateSource
end local 4 // java.lang.String id
end local 3 // freemarker.core.Expression sourceExpr
end local 2 // freemarker.template.TemplateModel model
end local 1 // freemarker.core.Environment env
end local 0 // freemarker.core.Interpret this
LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lfreemarker/core/Interpret;
0 46 1 env Lfreemarker/core/Environment;
1 46 2 model Lfreemarker/template/TemplateModel;
2 46 3 sourceExpr Lfreemarker/core/Expression;
3 46 4 id Ljava/lang/String;
17 46 5 templateSource Ljava/lang/String;
21 46 6 parentTemplate Lfreemarker/template/Template;
35 36 7 interpretedTemplate Lfreemarker/template/Template;
44 46 7 interpretedTemplate Lfreemarker/template/Template;
22 35 8 pCfg Lfreemarker/core/ParserConfiguration;
37 44 8 e Ljava/io/IOException;
Exception table:
from to target type
21 35 36 Class java.io.IOException
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
env
}
SourceFile: "Interpret.java"
NestMembers:
freemarker.core.Interpret$TemplateProcessorModel freemarker.core.Interpret$TemplateProcessorModel$1
InnerClasses:
private TemplateProcessorModel = freemarker.core.Interpret$TemplateProcessorModel of freemarker.core.Interpret