class freemarker.core.BuiltInsForStringsBasic$substringBI$1 implements freemarker.template.TemplateMethodModelEx
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.BuiltInsForStringsBasic$substringBI$1
super_class: java.lang.Object
{
final freemarker.core.BuiltInsForStringsBasic$substringBI this$1;
descriptor: Lfreemarker/core/BuiltInsForStringsBasic$substringBI;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final java.lang.String val$s;
descriptor: Ljava/lang/String;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(freemarker.core.BuiltInsForStringsBasic$substringBI, java.lang.String);
descriptor: (Lfreemarker/core/BuiltInsForStringsBasic$substringBI;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 0: aload 0
aload 1
putfield freemarker.core.BuiltInsForStringsBasic$substringBI$1.this$1:Lfreemarker/core/BuiltInsForStringsBasic$substringBI;
aload 0
aload 2
putfield freemarker.core.BuiltInsForStringsBasic$substringBI$1.val$s:Ljava/lang/String;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/BuiltInsForStringsBasic$substringBI$1;
MethodParameters:
Name Flags
this$0 final
val$s final
public java.lang.Object exec(java.util.List);
descriptor: (Ljava/util/List;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.List.size:()I
istore 2
start local 2 1: aload 0
getfield freemarker.core.BuiltInsForStringsBasic$substringBI$1.this$1:Lfreemarker/core/BuiltInsForStringsBasic$substringBI;
iload 2
iconst_1
iconst_2
invokevirtual freemarker.core.BuiltInsForStringsBasic$substringBI.checkMethodArgCount:(III)V
2: aload 0
getfield freemarker.core.BuiltInsForStringsBasic$substringBI$1.this$1:Lfreemarker/core/BuiltInsForStringsBasic$substringBI;
aload 1
iconst_0
invokevirtual freemarker.core.BuiltInsForStringsBasic$substringBI.getNumberMethodArg:(Ljava/util/List;I)Ljava/lang/Number;
invokevirtual java.lang.Number.intValue:()I
istore 3
start local 3 3: aload 0
getfield freemarker.core.BuiltInsForStringsBasic$substringBI$1.val$s:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
istore 4
start local 4 4: iload 3
ifge 6
5: aload 0
iconst_0
iload 3
invokevirtual freemarker.core.BuiltInsForStringsBasic$substringBI$1.newIndexLessThan0Exception:(II)Lfreemarker/template/TemplateModelException;
athrow
6: StackMap locals: int int int
StackMap stack:
iload 3
iload 4
if_icmple 8
7: aload 0
iconst_0
iload 3
iload 4
invokevirtual freemarker.core.BuiltInsForStringsBasic$substringBI$1.newIndexGreaterThanLengthException:(III)Lfreemarker/template/TemplateModelException;
athrow
8: StackMap locals:
StackMap stack:
iload 2
iconst_1
if_icmple 21
9: aload 0
getfield freemarker.core.BuiltInsForStringsBasic$substringBI$1.this$1:Lfreemarker/core/BuiltInsForStringsBasic$substringBI;
aload 1
iconst_1
invokevirtual freemarker.core.BuiltInsForStringsBasic$substringBI.getNumberMethodArg:(Ljava/util/List;I)Ljava/lang/Number;
invokevirtual java.lang.Number.intValue:()I
istore 5
start local 5 10: iload 5
ifge 12
11: aload 0
iconst_1
iload 5
invokevirtual freemarker.core.BuiltInsForStringsBasic$substringBI$1.newIndexLessThan0Exception:(II)Lfreemarker/template/TemplateModelException;
athrow
12: StackMap locals: int
StackMap stack:
iload 5
iload 4
if_icmple 14
13: aload 0
iconst_1
iload 5
iload 4
invokevirtual freemarker.core.BuiltInsForStringsBasic$substringBI$1.newIndexGreaterThanLengthException:(III)Lfreemarker/template/TemplateModelException;
athrow
14: StackMap locals:
StackMap stack:
iload 3
iload 5
if_icmple 20
15: new java.lang.StringBuilder
dup
ldc "?"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield freemarker.core.BuiltInsForStringsBasic$substringBI$1.this$1:Lfreemarker/core/BuiltInsForStringsBasic$substringBI;
getfield freemarker.core.BuiltInsForStringsBasic$substringBI.key:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_5
anewarray java.lang.Object
dup
iconst_0
16: ldc "The begin index argument, "
aastore
dup
iconst_1
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
17: ldc ", shouldn't be greater than the end index argument, "
aastore
dup
iconst_3
18: iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
ldc "."
aastore
19: invokestatic freemarker.core._MessageUtil.newMethodArgsInvalidValueException:(Ljava/lang/String;[Ljava/lang/Object;)Lfreemarker/template/TemplateModelException;
athrow
20: StackMap locals:
StackMap stack:
new freemarker.template.SimpleScalar
dup
aload 0
getfield freemarker.core.BuiltInsForStringsBasic$substringBI$1.val$s:Ljava/lang/String;
iload 3
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
end local 5 21: StackMap locals:
StackMap stack:
new freemarker.template.SimpleScalar
dup
aload 0
getfield freemarker.core.BuiltInsForStringsBasic$substringBI$1.val$s:Ljava/lang/String;
iload 3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lfreemarker/core/BuiltInsForStringsBasic$substringBI$1;
0 22 1 args Ljava/util/List;
1 22 2 argCount I
3 22 3 beginIdx I
4 22 4 len I
10 21 5 endIdx I
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
args
private freemarker.template.TemplateModelException newIndexGreaterThanLengthException(int, int, int);
descriptor: (III)Lfreemarker/template/TemplateModelException;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.StringBuilder
dup
ldc "?"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield freemarker.core.BuiltInsForStringsBasic$substringBI$1.this$1:Lfreemarker/core/BuiltInsForStringsBasic$substringBI;
getfield freemarker.core.BuiltInsForStringsBasic$substringBI.key:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iload 1
iconst_5
anewarray java.lang.Object
dup
iconst_0
1: ldc "The index mustn't be greater than the length of the string, "
aastore
dup
iconst_1
2: iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
3: ldc ", but it was "
aastore
dup
iconst_3
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
ldc "."
aastore
4: invokestatic freemarker.core._MessageUtil.newMethodArgInvalidValueException:(Ljava/lang/String;I[Ljava/lang/Object;)Lfreemarker/template/TemplateModelException;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lfreemarker/core/BuiltInsForStringsBasic$substringBI$1;
0 5 1 argIdx I
0 5 2 idx I
0 5 3 len I
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
argIdx
idx
len final
private freemarker.template.TemplateModelException newIndexLessThan0Exception(int, int);
descriptor: (II)Lfreemarker/template/TemplateModelException;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
ldc "?"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield freemarker.core.BuiltInsForStringsBasic$substringBI$1.this$1:Lfreemarker/core/BuiltInsForStringsBasic$substringBI;
getfield freemarker.core.BuiltInsForStringsBasic$substringBI.key:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iload 1
iconst_3
anewarray java.lang.Object
dup
iconst_0
1: ldc "The index must be at least 0, but was "
aastore
dup
iconst_1
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
ldc "."
aastore
2: invokestatic freemarker.core._MessageUtil.newMethodArgInvalidValueException:(Ljava/lang/String;I[Ljava/lang/Object;)Lfreemarker/template/TemplateModelException;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/BuiltInsForStringsBasic$substringBI$1;
0 3 1 argIdx I
0 3 2 idx I
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
argIdx
idx
}
SourceFile: "BuiltInsForStringsBasic.java"
EnclosingMethod: freemarker.core.BuiltInsForStringsBasic$substringBI.calculateResult:(Ljava/lang/String;Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
NestHost: freemarker.core.BuiltInsForStringsBasic
InnerClasses:
substringBI = freemarker.core.BuiltInsForStringsBasic$substringBI of freemarker.core.BuiltInsForStringsBasic
freemarker.core.BuiltInsForStringsBasic$substringBI$1