class freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod implements freemarker.template.TemplateMethodModelEx
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod
super_class: java.lang.Object
{
private java.lang.String s;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
final freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI this$1;
descriptor: Lfreemarker/core/BuiltInsForStringsBasic$keep_after_lastBI;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI, java.lang.String);
descriptor: (Lfreemarker/core/BuiltInsForStringsBasic$keep_after_lastBI;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 // freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod this
start local 2 // java.lang.String s
0: .line 274
aload 0 /* this */
aload 1
putfield freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod.this$1:Lfreemarker/core/BuiltInsForStringsBasic$keep_after_lastBI;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 275
aload 0 /* this */
aload 2 /* s */
putfield freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod.s:Ljava/lang/String;
2: .line 276
return
end local 2 // java.lang.String s
end local 0 // freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod;
0 3 2 s Ljava/lang/String;
MethodParameters:
Name Flags
this$0 final
s
public java.lang.Object exec(java.util.List);
descriptor: (Ljava/util/List;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=2
start local 0 // freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod this
start local 1 // java.util.List args
0: .line 279
aload 1 /* args */
invokeinterface java.util.List.size:()I
istore 2 /* argCnt */
start local 2 // int argCnt
1: .line 280
aload 0 /* this */
getfield freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod.this$1:Lfreemarker/core/BuiltInsForStringsBasic$keep_after_lastBI;
iload 2 /* argCnt */
iconst_1
iconst_2
invokevirtual freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI.checkMethodArgCount:(III)V
2: .line 281
aload 0 /* this */
getfield freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod.this$1:Lfreemarker/core/BuiltInsForStringsBasic$keep_after_lastBI;
aload 1 /* args */
iconst_0
invokevirtual freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI.getStringMethodArg:(Ljava/util/List;I)Ljava/lang/String;
astore 3 /* separatorString */
start local 3 // java.lang.String separatorString
3: .line 282
iload 2 /* argCnt */
iconst_1
if_icmple 4
aload 0 /* this */
getfield freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod.this$1:Lfreemarker/core/BuiltInsForStringsBasic$keep_after_lastBI;
aload 1 /* args */
iconst_1
invokevirtual freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI.getStringMethodArg:(Ljava/util/List;I)Ljava/lang/String;
invokestatic freemarker.core.RegexpHelper.parseFlagString:(Ljava/lang/String;)J
goto 5
StackMap locals: int java.lang.String
StackMap stack:
4: lconst_0
StackMap locals:
StackMap stack: long
5: lstore 4 /* flags */
start local 4 // long flags
6: .line 285
lload 4 /* flags */
ldc 4294967296
land
lconst_0
lcmp
ifne 15
7: .line 286
aload 0 /* this */
getfield freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod.this$1:Lfreemarker/core/BuiltInsForStringsBasic$keep_after_lastBI;
getfield freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI.key:Ljava/lang/String;
lload 4 /* flags */
iconst_1
invokestatic freemarker.core.RegexpHelper.checkOnlyHasNonRegexpFlags:(Ljava/lang/String;JZ)V
8: .line 287
lload 4 /* flags */
getstatic freemarker.core.RegexpHelper.RE_FLAG_CASE_INSENSITIVE:J
land
lconst_0
lcmp
ifne 11
9: .line 288
aload 0 /* this */
getfield freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod.s:Ljava/lang/String;
aload 3 /* separatorString */
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
istore 6 /* startIndex */
start local 6 // int startIndex
10: .line 289
goto 12
end local 6 // int startIndex
11: .line 290
StackMap locals: long
StackMap stack:
aload 0 /* this */
getfield freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod.s:Ljava/lang/String;
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
aload 3 /* separatorString */
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
istore 6 /* startIndex */
start local 6 // int startIndex
12: .line 292
StackMap locals: int
StackMap stack:
iload 6 /* startIndex */
iflt 27
13: .line 293
iload 6 /* startIndex */
aload 3 /* separatorString */
invokevirtual java.lang.String.length:()I
iadd
istore 6 /* startIndex */
14: .line 295
goto 27
end local 6 // int startIndex
15: .line 296
StackMap locals:
StackMap stack:
aload 3 /* separatorString */
invokevirtual java.lang.String.length:()I
ifne 18
16: .line 297
aload 0 /* this */
getfield freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod.s:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
istore 6 /* startIndex */
start local 6 // int startIndex
17: .line 298
goto 27
end local 6 // int startIndex
18: .line 299
StackMap locals:
StackMap stack:
aload 3 /* separatorString */
lload 4 /* flags */
l2i
invokestatic freemarker.core.RegexpHelper.getPattern:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
astore 7 /* pattern */
start local 7 // java.util.regex.Pattern pattern
19: .line 300
aload 7 /* pattern */
aload 0 /* this */
getfield freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod.s:Ljava/lang/String;
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 8 /* matcher */
start local 8 // java.util.regex.Matcher matcher
20: .line 301
aload 8 /* matcher */
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 26
21: .line 302
aload 8 /* matcher */
invokevirtual java.util.regex.Matcher.end:()I
istore 6 /* startIndex */
start local 6 // int startIndex
22: .line 303
goto 24
23: .line 304
StackMap locals: int java.util.regex.Pattern java.util.regex.Matcher
StackMap stack:
aload 8 /* matcher */
invokevirtual java.util.regex.Matcher.end:()I
istore 6 /* startIndex */
24: .line 303
StackMap locals:
StackMap stack:
aload 8 /* matcher */
aload 8 /* matcher */
invokevirtual java.util.regex.Matcher.start:()I
iconst_1
iadd
invokevirtual java.util.regex.Matcher.find:(I)Z
ifne 23
25: .line 306
goto 27
end local 6 // int startIndex
26: .line 307
StackMap locals: freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod java.util.List int java.lang.String long top java.util.regex.Pattern java.util.regex.Matcher
StackMap stack:
iconst_m1
istore 6 /* startIndex */
end local 8 // java.util.regex.Matcher matcher
end local 7 // java.util.regex.Pattern pattern
start local 6 // int startIndex
27: .line 311
StackMap locals: freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod java.util.List int java.lang.String long int
StackMap stack:
iload 6 /* startIndex */
iconst_m1
if_icmpne 28
getstatic freemarker.template.TemplateScalarModel.EMPTY_STRING:Lfreemarker/template/TemplateModel;
goto 29
StackMap locals:
StackMap stack:
28: new freemarker.template.SimpleScalar
dup
aload 0 /* this */
getfield freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod.s:Ljava/lang/String;
iload 6 /* startIndex */
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
StackMap locals:
StackMap stack: freemarker.template.TemplateModel
29: areturn
end local 6 // int startIndex
end local 4 // long flags
end local 3 // java.lang.String separatorString
end local 2 // int argCnt
end local 1 // java.util.List args
end local 0 // freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod this
LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lfreemarker/core/BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod;
0 30 1 args Ljava/util/List;
1 30 2 argCnt I
3 30 3 separatorString Ljava/lang/String;
6 30 4 flags J
10 11 6 startIndex I
12 15 6 startIndex I
17 18 6 startIndex I
22 26 6 startIndex I
27 30 6 startIndex I
19 27 7 pattern Ljava/util/regex/Pattern;
20 27 8 matcher Ljava/util/regex/Matcher;
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
args
}
SourceFile: "BuiltInsForStringsBasic.java"
NestHost: freemarker.core.BuiltInsForStringsBasic
InnerClasses:
keep_after_lastBI = freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI of freemarker.core.BuiltInsForStringsBasic
KeepAfterMethod = freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI$KeepAfterMethod of freemarker.core.BuiltInsForStringsBasic$keep_after_lastBI