class freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection implements freemarker.template.TemplateMethodModelEx
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection
super_class: java.lang.Object
{
private final freemarker.core.Environment env;
descriptor: Lfreemarker/core/Environment;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final freemarker.template.TemplateCollectionModel coll;
descriptor: Lfreemarker/template/TemplateCollectionModel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final freemarker.core.BuiltInsForSequences$joinBI this$1;
descriptor: Lfreemarker/core/BuiltInsForSequences$joinBI;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(freemarker.core.BuiltInsForSequences$joinBI, freemarker.core.Environment, freemarker.template.TemplateCollectionModel);
descriptor: (Lfreemarker/core/BuiltInsForSequences$joinBI;Lfreemarker/core/Environment;Lfreemarker/template/TemplateCollectionModel;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=4
start local 0 // freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection this
start local 2 // freemarker.core.Environment env
start local 3 // freemarker.template.TemplateCollectionModel coll
0: .line 186
aload 0 /* this */
aload 1
putfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.this$1:Lfreemarker/core/BuiltInsForSequences$joinBI;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 187
aload 0 /* this */
aload 2 /* env */
putfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.env:Lfreemarker/core/Environment;
2: .line 188
aload 0 /* this */
aload 3 /* coll */
putfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.coll:Lfreemarker/template/TemplateCollectionModel;
3: .line 189
return
end local 3 // freemarker.template.TemplateCollectionModel coll
end local 2 // freemarker.core.Environment env
end local 0 // freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lfreemarker/core/BuiltInsForSequences$joinBI$BIMethodForCollection;
0 4 2 env Lfreemarker/core/Environment;
0 4 3 coll Lfreemarker/template/TemplateCollectionModel;
MethodParameters:
Name Flags
this$0 final
env
coll
public java.lang.Object exec(java.util.List);
descriptor: (Ljava/util/List;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=11, args_size=2
start local 0 // freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection this
start local 1 // java.util.List args
0: .line 193
aload 0 /* this */
getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.this$1:Lfreemarker/core/BuiltInsForSequences$joinBI;
aload 1 /* args */
iconst_1
iconst_3
invokevirtual freemarker.core.BuiltInsForSequences$joinBI.checkMethodArgCount:(Ljava/util/List;II)V
1: .line 194
aload 0 /* this */
getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.this$1:Lfreemarker/core/BuiltInsForSequences$joinBI;
aload 1 /* args */
iconst_0
invokevirtual freemarker.core.BuiltInsForSequences$joinBI.getStringMethodArg:(Ljava/util/List;I)Ljava/lang/String;
astore 2 /* separator */
start local 2 // java.lang.String separator
2: .line 195
aload 0 /* this */
getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.this$1:Lfreemarker/core/BuiltInsForSequences$joinBI;
aload 1 /* args */
iconst_1
invokevirtual freemarker.core.BuiltInsForSequences$joinBI.getOptStringMethodArg:(Ljava/util/List;I)Ljava/lang/String;
astore 3 /* whenEmpty */
start local 3 // java.lang.String whenEmpty
3: .line 196
aload 0 /* this */
getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.this$1:Lfreemarker/core/BuiltInsForSequences$joinBI;
aload 1 /* args */
iconst_2
invokevirtual freemarker.core.BuiltInsForSequences$joinBI.getOptStringMethodArg:(Ljava/util/List;I)Ljava/lang/String;
astore 4 /* afterLast */
start local 4 // java.lang.String afterLast
4: .line 198
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 5 /* sb */
start local 5 // java.lang.StringBuilder sb
5: .line 200
aload 0 /* this */
getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.coll:Lfreemarker/template/TemplateCollectionModel;
invokeinterface freemarker.template.TemplateCollectionModel.iterator:()Lfreemarker/template/TemplateModelIterator;
astore 6 /* it */
start local 6 // freemarker.template.TemplateModelIterator it
6: .line 202
iconst_0
istore 7 /* idx */
start local 7 // int idx
7: .line 203
iconst_0
istore 8 /* hadItem */
start local 8 // boolean hadItem
8: .line 204
goto 25
9: .line 205
StackMap locals: freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection java.util.List java.lang.String java.lang.String java.lang.String java.lang.StringBuilder freemarker.template.TemplateModelIterator int int
StackMap stack:
aload 6 /* it */
invokeinterface freemarker.template.TemplateModelIterator.next:()Lfreemarker/template/TemplateModel;
astore 9 /* item */
start local 9 // freemarker.template.TemplateModel item
10: .line 206
aload 9 /* item */
ifnull 24
11: .line 207
iload 8 /* hadItem */
ifeq 14
12: .line 208
aload 5 /* sb */
aload 2 /* separator */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: .line 209
goto 15
14: .line 210
StackMap locals: freemarker.template.TemplateModel
StackMap stack:
iconst_1
istore 8 /* hadItem */
15: .line 213
StackMap locals:
StackMap stack:
aload 5 /* sb */
aload 9 /* item */
aconst_null
aconst_null
aload 0 /* this */
getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.env:Lfreemarker/core/Environment;
invokestatic freemarker.core.EvalUtil.coerceModelToStringOrUnsupportedMarkup:(Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Ljava/lang/String;Lfreemarker/core/Environment;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: .line 214
goto 24
StackMap locals:
StackMap stack: freemarker.template.TemplateException
17: astore 10 /* e */
start local 10 // freemarker.template.TemplateException e
18: .line 215
new freemarker.core._TemplateModelException
dup
aload 10 /* e */
bipush 8
anewarray java.lang.Object
dup
iconst_0
19: .line 216
ldc "\"?"
aastore
dup
iconst_1
aload 0 /* this */
getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.this$1:Lfreemarker/core/BuiltInsForSequences$joinBI;
getfield freemarker.core.BuiltInsForSequences$joinBI.key:Ljava/lang/String;
aastore
dup
iconst_2
ldc "\" failed at index "
aastore
dup
iconst_3
iload 7 /* idx */
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
ldc " with this error:\n\n"
aastore
dup
iconst_5
20: .line 217
ldc "---begin-message---\n"
aastore
dup
bipush 6
21: .line 218
new freemarker.core._DelayedGetMessageWithoutStackTop
dup
aload 10 /* e */
invokespecial freemarker.core._DelayedGetMessageWithoutStackTop.<init>:(Lfreemarker/template/TemplateException;)V
aastore
dup
bipush 7
22: .line 219
ldc "\n---end-message---"
23: .line 215
aastore
invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;[Ljava/lang/Object;)V
athrow
end local 10 // freemarker.template.TemplateException e
24: .line 222
StackMap locals:
StackMap stack:
iinc 7 /* idx */ 1
end local 9 // freemarker.template.TemplateModel item
25: .line 204
StackMap locals:
StackMap stack:
aload 6 /* it */
invokeinterface freemarker.template.TemplateModelIterator.hasNext:()Z
ifne 9
26: .line 224
iload 8 /* hadItem */
ifeq 29
27: .line 225
aload 4 /* afterLast */
ifnull 30
aload 5 /* sb */
aload 4 /* afterLast */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: .line 226
goto 30
29: .line 227
StackMap locals:
StackMap stack:
aload 3 /* whenEmpty */
ifnull 30
aload 5 /* sb */
aload 3 /* whenEmpty */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
30: .line 229
StackMap locals:
StackMap stack:
new freemarker.template.SimpleScalar
dup
aload 5 /* sb */
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
end local 8 // boolean hadItem
end local 7 // int idx
end local 6 // freemarker.template.TemplateModelIterator it
end local 5 // java.lang.StringBuilder sb
end local 4 // java.lang.String afterLast
end local 3 // java.lang.String whenEmpty
end local 2 // java.lang.String separator
end local 1 // java.util.List args
end local 0 // freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection this
LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lfreemarker/core/BuiltInsForSequences$joinBI$BIMethodForCollection;
0 31 1 args Ljava/util/List;
2 31 2 separator Ljava/lang/String;
3 31 3 whenEmpty Ljava/lang/String;
4 31 4 afterLast Ljava/lang/String;
5 31 5 sb Ljava/lang/StringBuilder;
6 31 6 it Lfreemarker/template/TemplateModelIterator;
7 31 7 idx I
8 31 8 hadItem Z
10 25 9 item Lfreemarker/template/TemplateModel;
18 24 10 e Lfreemarker/template/TemplateException;
Exception table:
from to target type
15 16 17 Class freemarker.template.TemplateException
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
args
}
SourceFile: "BuiltInsForSequences.java"
NestHost: freemarker.core.BuiltInsForSequences
InnerClasses:
joinBI = freemarker.core.BuiltInsForSequences$joinBI of freemarker.core.BuiltInsForSequences
private BIMethodForCollection = freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection of freemarker.core.BuiltInsForSequences$joinBI