final class freemarker.cache.TemplateNameFormat$Default020400 extends freemarker.cache.TemplateNameFormat
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: freemarker.cache.TemplateNameFormat$Default020400
super_class: freemarker.cache.TemplateNameFormat
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial freemarker.cache.TemplateNameFormat.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/cache/TemplateNameFormat$Default020400;
java.lang.String toRootBasedName(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0000)
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual freemarker.cache.TemplateNameFormat$Default020400.findSchemeSectionEnd:(Ljava/lang/String;)I
ifeq 2
1: aload 2
areturn
2: StackMap locals:
StackMap stack:
aload 2
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 8
3: aload 2
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
start local 3 4: aload 0
aload 1
invokevirtual freemarker.cache.TemplateNameFormat$Default020400.findSchemeSectionEnd:(Ljava/lang/String;)I
istore 4
start local 4 5: iload 4
ifne 7
6: aload 3
areturn
7: StackMap locals: java.lang.String int
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
iconst_0
iload 4
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 8: StackMap locals:
StackMap stack:
aload 1
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 13
9: aload 1
ldc "/"
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
iconst_1
iadd
istore 3
start local 3 10: iload 3
ifne 12
11: aload 0
aload 1
invokevirtual freemarker.cache.TemplateNameFormat$Default020400.findSchemeSectionEnd:(Ljava/lang/String;)I
istore 3
12: StackMap locals: int
StackMap stack:
aload 1
iconst_0
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 1
end local 3 13: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lfreemarker/cache/TemplateNameFormat$Default020400;
0 14 1 baseName Ljava/lang/String;
0 14 2 targetName Ljava/lang/String;
4 8 3 targetNameAsRelative Ljava/lang/String;
5 8 4 schemeSectionEnd I
10 13 3 baseEnd I
MethodParameters:
Name Flags
baseName
targetName
java.lang.String normalizeRootBasedName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokestatic freemarker.cache.TemplateNameFormat.checkNameHasNoNullCharacter:(Ljava/lang/String;)V
1: aload 1
bipush 92
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpeq 6
2: new freemarker.template.MalformedTemplateNameException
dup
3: aload 1
4: ldc "Backslash (\"\\\") is not allowed in template names. Use slash (\"/\") instead."
5: invokespecial freemarker.template.MalformedTemplateNameException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual freemarker.cache.TemplateNameFormat$Default020400.findSchemeSectionEnd:(Ljava/lang/String;)I
istore 4
start local 4 7: iload 4
ifne 11
8: aconst_null
astore 2
start local 2 9: aload 1
astore 3
start local 3 10: goto 13
end local 3 end local 2 11: StackMap locals: freemarker.cache.TemplateNameFormat$Default020400 java.lang.String top top int
StackMap stack:
aload 1
iconst_0
iload 4
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
start local 2 12: aload 1
iload 4
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
end local 4 start local 3 13: StackMap locals: freemarker.cache.TemplateNameFormat$Default020400 java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 3
bipush 58
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpeq 17
14: new freemarker.template.MalformedTemplateNameException
dup
aload 1
15: ldc "The ':' character can only be used after the scheme name (if there's any), not in the path part"
16: invokespecial freemarker.template.MalformedTemplateNameException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual freemarker.cache.TemplateNameFormat$Default020400.removeRedundantSlashes:(Ljava/lang/String;)Ljava/lang/String;
astore 3
18: aload 0
aload 3
invokevirtual freemarker.cache.TemplateNameFormat$Default020400.removeDotSteps:(Ljava/lang/String;)Ljava/lang/String;
astore 3
19: aload 0
aload 3
aload 1
invokevirtual freemarker.cache.TemplateNameFormat$Default020400.resolveDotDotSteps:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 3
20: aload 0
aload 3
invokevirtual freemarker.cache.TemplateNameFormat$Default020400.removeRedundantStarSteps:(Ljava/lang/String;)Ljava/lang/String;
astore 3
21: aload 2
ifnonnull 22
aload 3
goto 23
StackMap locals:
StackMap stack:
22: new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
23: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lfreemarker/cache/TemplateNameFormat$Default020400;
0 24 1 name Ljava/lang/String;
9 11 2 scheme Ljava/lang/String;
12 24 2 scheme Ljava/lang/String;
10 11 3 path Ljava/lang/String;
13 24 3 path Ljava/lang/String;
7 13 4 schemeSectionEnd I
Exceptions:
throws freemarker.template.MalformedTemplateNameException
MethodParameters:
Name Flags
name final
private int findSchemeSectionEnd(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc ":"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 2
start local 2 1: iload 2
iconst_m1
if_icmpeq 2
aload 1
bipush 47
iload 2
iconst_1
isub
invokevirtual java.lang.String.lastIndexOf:(II)I
iconst_m1
if_icmpeq 3
2: StackMap locals: int
StackMap stack:
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
iload 2
iconst_2
iadd
aload 1
invokevirtual java.lang.String.length:()I
if_icmpge 6
4: aload 1
iload 2
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 6
aload 1
iload 2
iconst_2
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 6
5: iload 2
iconst_3
iadd
ireturn
6: StackMap locals:
StackMap stack:
iload 2
iconst_1
iadd
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lfreemarker/cache/TemplateNameFormat$Default020400;
0 7 1 name Ljava/lang/String;
1 7 2 schemeColonIdx I
MethodParameters:
Name Flags
name
private java.lang.String removeRedundantSlashes(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 1
astore 2
start local 2 1: aload 1
ldc "//"
ldc "/"
invokestatic freemarker.template.utility.StringUtil.replace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 1
2: aload 2
aload 1
if_acmpne 0
3: aload 1
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 4
aload 1
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
goto 5
StackMap locals: java.lang.String
StackMap stack:
4: aload 1
StackMap locals:
StackMap stack: java.lang.String
5: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lfreemarker/cache/TemplateNameFormat$Default020400;
0 6 1 path Ljava/lang/String;
1 6 2 prevName Ljava/lang/String;
MethodParameters:
Name Flags
path
private java.lang.String removeDotSteps(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.String.length:()I
iconst_1
isub
istore 2
start local 2 1: StackMap locals: int
StackMap stack:
aload 1
bipush 46
iload 2
invokevirtual java.lang.String.lastIndexOf:(II)I
istore 3
start local 3 2: iload 3
ifge 4
3: aload 1
areturn
4: StackMap locals: int
StackMap stack:
iload 3
iconst_1
isub
istore 2
5: iload 3
ifeq 7
aload 1
iload 3
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpeq 7
6: goto 1
7: StackMap locals:
StackMap stack:
iload 3
iconst_1
iadd
aload 1
invokevirtual java.lang.String.length:()I
if_icmpne 10
8: iconst_0
istore 4
start local 4 9: goto 12
end local 4 StackMap locals:
StackMap stack:
10: aload 1
iload 3
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 1
11: iconst_1
istore 4
start local 4 12: StackMap locals: int
StackMap stack:
iload 4
ifeq 15
13: new java.lang.StringBuilder
dup
aload 1
iconst_0
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
iload 3
iconst_2
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
14: goto 1
15: StackMap locals:
StackMap stack:
aload 1
iconst_0
aload 1
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 1
end local 4 end local 3 16: goto 1
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lfreemarker/cache/TemplateNameFormat$Default020400;
0 17 1 path Ljava/lang/String;
1 17 2 nextFromIdx I
2 16 3 dotIdx I
9 10 4 slashRight Z
12 16 4 slashRight Z
MethodParameters:
Name Flags
path
private java.lang.String resolveDotDotSteps(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: StackMap locals: int
StackMap stack:
aload 1
ldc ".."
iload 3
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
istore 4
start local 4 2: iload 4
ifge 4
3: aload 1
areturn
4: StackMap locals: int
StackMap stack:
iload 4
ifne 6
5: aload 2
invokestatic freemarker.cache.TemplateNameFormat.newRootLeavingException:(Ljava/lang/String;)Lfreemarker/template/MalformedTemplateNameException;
athrow
6: StackMap locals:
StackMap stack:
aload 1
iload 4
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpeq 9
7: iload 4
iconst_3
iadd
istore 3
8: goto 1
9: StackMap locals:
StackMap stack:
iload 4
iconst_2
iadd
aload 1
invokevirtual java.lang.String.length:()I
if_icmpne 12
10: iconst_0
istore 5
start local 5 11: goto 17
end local 5 StackMap locals:
StackMap stack:
12: aload 1
iload 4
iconst_2
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 15
13: iconst_1
istore 5
start local 5 14: goto 17
end local 5 15: StackMap locals:
StackMap stack:
iload 4
iconst_3
iadd
istore 3
16: goto 1
start local 5 17: StackMap locals: int
StackMap stack:
iconst_0
istore 7
start local 7 18: iload 4
iconst_2
isub
istore 8
start local 8 19: StackMap locals: freemarker.cache.TemplateNameFormat$Default020400 java.lang.String java.lang.String int int int top int int
StackMap stack:
iload 8
iconst_m1
if_icmpne 21
20: aload 2
invokestatic freemarker.cache.TemplateNameFormat.newRootLeavingException:(Ljava/lang/String;)Lfreemarker/template/MalformedTemplateNameException;
athrow
21: StackMap locals:
StackMap stack:
aload 1
bipush 47
iload 8
invokevirtual java.lang.String.lastIndexOf:(II)I
istore 6
start local 6 22: iload 6
iconst_m1
if_icmpne 25
23: iload 8
ifne 29
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 42
if_icmpne 29
24: aload 2
invokestatic freemarker.cache.TemplateNameFormat.newRootLeavingException:(Ljava/lang/String;)Lfreemarker/template/MalformedTemplateNameException;
athrow
25: StackMap locals: freemarker.cache.TemplateNameFormat$Default020400 java.lang.String java.lang.String int int int int int int
StackMap stack:
aload 1
iload 6
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 42
if_icmpne 29
aload 1
iload 6
iconst_2
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 29
26: iconst_1
istore 7
27: iload 6
iconst_1
isub
istore 8
end local 6 28: goto 19
end local 8 start local 6 29: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
iconst_0
iload 6
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
30: iload 7
ifeq 31
ldc "*/"
goto 32
StackMap locals:
StackMap stack: java.lang.StringBuilder
31: ldc ""
StackMap locals: freemarker.cache.TemplateNameFormat$Default020400 java.lang.String java.lang.String int int int int int
StackMap stack: java.lang.StringBuilder java.lang.String
32: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: aload 1
iload 4
iload 5
ifeq 34
iconst_3
goto 35
StackMap locals: freemarker.cache.TemplateNameFormat$Default020400 java.lang.String java.lang.String int int int int int
StackMap stack: java.lang.StringBuilder java.lang.String int
34: iconst_2
StackMap locals: freemarker.cache.TemplateNameFormat$Default020400 java.lang.String java.lang.String int int int int int
StackMap stack: java.lang.StringBuilder java.lang.String int int
35: iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
36: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
37: iload 6
iconst_1
iadd
istore 3
end local 7 end local 6 end local 5 end local 4 38: goto 1
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lfreemarker/cache/TemplateNameFormat$Default020400;
0 39 1 path Ljava/lang/String;
0 39 2 name Ljava/lang/String;
1 39 3 nextFromIdx I
2 38 4 dotDotIdx I
11 12 5 slashRight Z
14 15 5 slashRight Z
17 38 5 slashRight Z
22 28 6 previousSlashIdx I
29 38 6 previousSlashIdx I
18 38 7 skippedStarStep Z
19 29 8 searchSlashBacwardsFrom I
Exceptions:
throws freemarker.template.MalformedTemplateNameException
MethodParameters:
Name Flags
path
name final
private java.lang.String removeRedundantStarSteps(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 1
ldc "*/*"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 3
start local 3 1: iload 3
iconst_m1
if_icmpne 3
2: goto 8
3: StackMap locals: freemarker.cache.TemplateNameFormat$Default020400 java.lang.String top int
StackMap stack:
aload 1
astore 2
start local 2 4: iload 3
ifeq 5
aload 1
iload 3
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 7
5: StackMap locals: freemarker.cache.TemplateNameFormat$Default020400 java.lang.String java.lang.String int
StackMap stack:
iload 3
iconst_3
iadd
aload 1
invokevirtual java.lang.String.length:()I
if_icmpeq 6
aload 1
iload 3
iconst_3
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 7
6: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
iconst_0
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
iload 3
iconst_2
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
end local 3 7: StackMap locals:
StackMap stack:
aload 2
aload 1
if_acmpne 0
end local 2 8: StackMap locals:
StackMap stack:
aload 1
ldc "*"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 14
9: aload 1
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpne 12
10: ldc ""
astore 1
11: goto 14
StackMap locals:
StackMap stack:
12: aload 1
iconst_1
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 14
13: aload 1
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
14: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lfreemarker/cache/TemplateNameFormat$Default020400;
0 15 1 path Ljava/lang/String;
4 8 2 prevName Ljava/lang/String;
1 7 3 supiciousIdx I
MethodParameters:
Name Flags
path
java.lang.String rootBasedNameToAbsoluteName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual freemarker.cache.TemplateNameFormat$Default020400.findSchemeSectionEnd:(Ljava/lang/String;)I
ifeq 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 1
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 4
3: new java.lang.StringBuilder
dup
ldc "/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
4: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lfreemarker/cache/TemplateNameFormat$Default020400;
0 5 1 name Ljava/lang/String;
Exceptions:
throws freemarker.template.MalformedTemplateNameException
MethodParameters:
Name Flags
name
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "TemplateNameFormat.DEFAULT_2_4_0"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/cache/TemplateNameFormat$Default020400;
}
SourceFile: "TemplateNameFormat.java"
NestHost: freemarker.cache.TemplateNameFormat
InnerClasses:
private final Default020400 = freemarker.cache.TemplateNameFormat$Default020400 of freemarker.cache.TemplateNameFormat