class freemarker.core.BuiltInsForMultipleTypes$stringBI extends freemarker.core.BuiltIn
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.BuiltInsForMultipleTypes$stringBI
super_class: freemarker.core.BuiltIn
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // freemarker.core.BuiltInsForMultipleTypes$stringBI this
0: .line 510
aload 0 /* this */
invokespecial freemarker.core.BuiltIn.<init>:()V
return
end local 0 // freemarker.core.BuiltInsForMultipleTypes$stringBI this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/BuiltInsForMultipleTypes$stringBI;
freemarker.template.TemplateModel _eval(freemarker.core.Environment);
descriptor: (Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
flags: (0x0000)
Code:
stack=9, locals=4, args_size=2
start local 0 // freemarker.core.BuiltInsForMultipleTypes$stringBI this
start local 1 // freemarker.core.Environment env
0: .line 692
aload 0 /* this */
getfield freemarker.core.BuiltInsForMultipleTypes$stringBI.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 693
aload 2 /* model */
instanceof freemarker.template.TemplateNumberModel
ifeq 3
2: .line 694
new freemarker.core.BuiltInsForMultipleTypes$stringBI$NumberFormatter
dup
aload 0 /* this */
aload 2 /* model */
checkcast freemarker.template.TemplateNumberModel
aload 1 /* env */
invokespecial freemarker.core.BuiltInsForMultipleTypes$stringBI$NumberFormatter.<init>:(Lfreemarker/core/BuiltInsForMultipleTypes$stringBI;Lfreemarker/template/TemplateNumberModel;Lfreemarker/core/Environment;)V
areturn
3: .line 695
StackMap locals: freemarker.template.TemplateModel
StackMap stack:
aload 2 /* model */
instanceof freemarker.template.TemplateDateModel
ifeq 6
4: .line 696
aload 2 /* model */
checkcast freemarker.template.TemplateDateModel
astore 3 /* dm */
start local 3 // freemarker.template.TemplateDateModel dm
5: .line 697
new freemarker.core.BuiltInsForMultipleTypes$stringBI$DateFormatter
dup
aload 0 /* this */
aload 3 /* dm */
aload 1 /* env */
invokespecial freemarker.core.BuiltInsForMultipleTypes$stringBI$DateFormatter.<init>:(Lfreemarker/core/BuiltInsForMultipleTypes$stringBI;Lfreemarker/template/TemplateDateModel;Lfreemarker/core/Environment;)V
areturn
end local 3 // freemarker.template.TemplateDateModel dm
6: .line 698
StackMap locals:
StackMap stack:
aload 2 /* model */
instanceof freemarker.template.SimpleScalar
ifeq 8
7: .line 699
aload 2 /* model */
areturn
8: .line 700
StackMap locals:
StackMap stack:
aload 2 /* model */
instanceof freemarker.template.TemplateBooleanModel
ifeq 10
9: .line 701
new freemarker.core.BuiltInsForMultipleTypes$stringBI$BooleanFormatter
dup
aload 0 /* this */
aload 2 /* model */
checkcast freemarker.template.TemplateBooleanModel
aload 1 /* env */
invokespecial freemarker.core.BuiltInsForMultipleTypes$stringBI$BooleanFormatter.<init>:(Lfreemarker/core/BuiltInsForMultipleTypes$stringBI;Lfreemarker/template/TemplateBooleanModel;Lfreemarker/core/Environment;)V
areturn
10: .line 702
StackMap locals:
StackMap stack:
aload 2 /* model */
instanceof freemarker.template.TemplateScalarModel
ifeq 12
11: .line 703
new freemarker.template.SimpleScalar
dup
aload 2 /* model */
checkcast freemarker.template.TemplateScalarModel
invokeinterface freemarker.template.TemplateScalarModel.getAsString:()Ljava/lang/String;
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
12: .line 704
StackMap locals:
StackMap stack:
aload 1 /* env */
invokevirtual freemarker.core.Environment.isClassicCompatible:()Z
ifeq 14
aload 2 /* model */
instanceof freemarker.ext.beans.BeanModel
ifeq 14
13: .line 705
new freemarker.template.SimpleScalar
dup
aload 2 /* model */
checkcast freemarker.ext.beans.BeanModel
invokestatic freemarker.ext.beans._BeansAPI.getAsClassicCompatibleString:(Lfreemarker/ext/beans/BeanModel;)Ljava/lang/String;
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
14: .line 707
StackMap locals:
StackMap stack:
new freemarker.core.UnexpectedTypeException
dup
15: .line 708
aload 0 /* this */
getfield freemarker.core.BuiltInsForMultipleTypes$stringBI.target:Lfreemarker/core/Expression;
aload 2 /* model */
16: .line 709
ldc "number, date, boolean or string"
17: .line 710
iconst_4
anewarray java.lang.Class
dup
iconst_0
18: .line 711
ldc Lfreemarker/template/TemplateNumberModel;
aastore
dup
iconst_1
ldc Lfreemarker/template/TemplateDateModel;
aastore
dup
iconst_2
ldc Lfreemarker/template/TemplateBooleanModel;
aastore
dup
iconst_3
19: .line 712
ldc Lfreemarker/template/TemplateScalarModel;
aastore
20: .line 714
aload 1 /* env */
21: .line 707
invokespecial freemarker.core.UnexpectedTypeException.<init>:(Lfreemarker/core/Expression;Lfreemarker/template/TemplateModel;Ljava/lang/String;[Ljava/lang/Class;Lfreemarker/core/Environment;)V
athrow
end local 2 // freemarker.template.TemplateModel model
end local 1 // freemarker.core.Environment env
end local 0 // freemarker.core.BuiltInsForMultipleTypes$stringBI this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lfreemarker/core/BuiltInsForMultipleTypes$stringBI;
0 22 1 env Lfreemarker/core/Environment;
1 22 2 model Lfreemarker/template/TemplateModel;
5 6 3 dm Lfreemarker/template/TemplateDateModel;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
env
}
SourceFile: "BuiltInsForMultipleTypes.java"
NestHost: freemarker.core.BuiltInsForMultipleTypes
InnerClasses:
stringBI = freemarker.core.BuiltInsForMultipleTypes$stringBI of freemarker.core.BuiltInsForMultipleTypes
private BooleanFormatter = freemarker.core.BuiltInsForMultipleTypes$stringBI$BooleanFormatter of freemarker.core.BuiltInsForMultipleTypes$stringBI
private DateFormatter = freemarker.core.BuiltInsForMultipleTypes$stringBI$DateFormatter of freemarker.core.BuiltInsForMultipleTypes$stringBI
private NumberFormatter = freemarker.core.BuiltInsForMultipleTypes$stringBI$NumberFormatter of freemarker.core.BuiltInsForMultipleTypes$stringBI