class sun.nio.fs.WindowsPathParser
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.fs.WindowsPathParser
super_class: java.lang.Object
{
private static final java.lang.String reservedChars;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "<>:\"|?*"
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/fs/WindowsPathParser;
static sun.nio.fs.WindowsPathParser$Result parse(java.lang.String);
descriptor: (Ljava/lang/String;)Lsun/nio/fs/WindowsPathParser$Result;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokestatic sun.nio.fs.WindowsPathParser.parse:(Ljava/lang/String;Z)Lsun/nio/fs/WindowsPathParser$Result;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 input Ljava/lang/String;
MethodParameters:
Name Flags
input
static sun.nio.fs.WindowsPathParser$Result parseNormalizedPath(java.lang.String);
descriptor: (Ljava/lang/String;)Lsun/nio/fs/WindowsPathParser$Result;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokestatic sun.nio.fs.WindowsPathParser.parse:(Ljava/lang/String;Z)Lsun/nio/fs/WindowsPathParser$Result;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 input Ljava/lang/String;
MethodParameters:
Name Flags
input
private static sun.nio.fs.WindowsPathParser$Result parse(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Lsun/nio/fs/WindowsPathParser$Result;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=10, args_size=2
start local 0 start local 1 0: ldc ""
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aload 0
invokevirtual java.lang.String.length:()I
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: iload 4
iconst_1
if_icmple 35
5: aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 6
start local 6 6: aload 0
iconst_1
invokevirtual java.lang.String.charAt:(I)C
istore 7
start local 7 7: iconst_2
istore 8
start local 8 8: iload 6
invokestatic sun.nio.fs.WindowsPathParser.isSlash:(C)Z
ifeq 22
iload 7
invokestatic sun.nio.fs.WindowsPathParser.isSlash:(C)Z
ifeq 22
9: getstatic sun.nio.fs.WindowsPathType.UNC:Lsun/nio/fs/WindowsPathType;
astore 3
10: aload 0
iload 8
iload 4
invokestatic sun.nio.fs.WindowsPathParser.nextNonSlash:(Ljava/lang/String;II)I
istore 5
11: aload 0
iload 5
iload 4
invokestatic sun.nio.fs.WindowsPathParser.nextSlash:(Ljava/lang/String;II)I
istore 8
12: iload 5
iload 8
if_icmpne 14
13: new java.nio.file.InvalidPathException
dup
aload 0
ldc "UNC path is missing hostname"
invokespecial java.nio.file.InvalidPathException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
14: StackMap locals: java.lang.String int java.lang.String sun.nio.fs.WindowsPathType int int int int int
StackMap stack:
aload 0
iload 5
iload 8
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 9
start local 9 15: aload 0
iload 8
iload 4
invokestatic sun.nio.fs.WindowsPathParser.nextNonSlash:(Ljava/lang/String;II)I
istore 5
16: aload 0
iload 5
iload 4
invokestatic sun.nio.fs.WindowsPathParser.nextSlash:(Ljava/lang/String;II)I
istore 8
17: iload 5
iload 8
if_icmpne 19
18: new java.nio.file.InvalidPathException
dup
aload 0
ldc "UNC path is missing sharename"
invokespecial java.nio.file.InvalidPathException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
19: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
ldc "\\\\"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\\"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
iload 5
iload 8
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\\"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
20: iload 8
istore 5
end local 9 21: goto 35
22: StackMap locals:
StackMap stack:
iload 6
invokestatic sun.nio.fs.WindowsPathParser.isLetter:(C)Z
ifeq 35
iload 7
bipush 58
if_icmpne 35
23: iload 4
iconst_2
if_icmple 32
aload 0
iconst_2
invokevirtual java.lang.String.charAt:(I)C
dup
istore 9
start local 9 24: invokestatic sun.nio.fs.WindowsPathParser.isSlash:(C)Z
ifeq 32
25: iload 9
bipush 92
if_icmpne 28
26: aload 0
iconst_0
iconst_3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
27: goto 29
28: StackMap locals: int
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
iconst_0
iconst_2
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
bipush 92
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
29: StackMap locals:
StackMap stack:
iconst_3
istore 5
30: getstatic sun.nio.fs.WindowsPathType.ABSOLUTE:Lsun/nio/fs/WindowsPathType;
astore 3
31: goto 35
end local 9 32: StackMap locals:
StackMap stack:
aload 0
iconst_0
iconst_2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
33: iconst_2
istore 5
34: getstatic sun.nio.fs.WindowsPathType.DRIVE_RELATIVE:Lsun/nio/fs/WindowsPathType;
astore 3
end local 8 end local 7 end local 6 35: StackMap locals:
StackMap stack:
iload 5
ifne 41
36: iload 4
ifle 40
aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic sun.nio.fs.WindowsPathParser.isSlash:(C)Z
ifeq 40
37: getstatic sun.nio.fs.WindowsPathType.DIRECTORY_RELATIVE:Lsun/nio/fs/WindowsPathType;
astore 3
38: ldc "\\"
astore 2
39: goto 41
40: StackMap locals:
StackMap stack:
getstatic sun.nio.fs.WindowsPathType.RELATIVE:Lsun/nio/fs/WindowsPathType;
astore 3
41: StackMap locals:
StackMap stack:
iload 1
ifeq 45
42: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.String.length:()I
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 6
start local 6 43: aload 6
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
44: new sun.nio.fs.WindowsPathParser$Result
dup
aload 3
aload 2
aload 6
aload 0
iload 5
invokestatic sun.nio.fs.WindowsPathParser.normalize:(Ljava/lang/StringBuilder;Ljava/lang/String;I)Ljava/lang/String;
invokespecial sun.nio.fs.WindowsPathParser$Result.<init>:(Lsun/nio/fs/WindowsPathType;Ljava/lang/String;Ljava/lang/String;)V
areturn
end local 6 45: StackMap locals:
StackMap stack:
new sun.nio.fs.WindowsPathParser$Result
dup
aload 3
aload 2
aload 0
invokespecial sun.nio.fs.WindowsPathParser$Result.<init>:(Lsun/nio/fs/WindowsPathType;Ljava/lang/String;Ljava/lang/String;)V
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 input Ljava/lang/String;
0 46 1 requireToNormalize Z
1 46 2 root Ljava/lang/String;
2 46 3 type Lsun/nio/fs/WindowsPathType;
3 46 4 len I
4 46 5 off I
6 35 6 c0 C
7 35 7 c1 C
8 35 8 next I
15 21 9 host Ljava/lang/String;
24 32 9 c2 C
43 45 6 sb Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
input
requireToNormalize
private static java.lang.String normalize(java.lang.StringBuilder, java.lang.String, int);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;I)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.String.length:()I
istore 3
start local 3 1: aload 1
iload 2
iload 3
invokestatic sun.nio.fs.WindowsPathParser.nextNonSlash:(Ljava/lang/String;II)I
istore 2
2: iload 2
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 25
5: StackMap locals: int int int
StackMap stack:
aload 1
iload 2
invokevirtual java.lang.String.charAt:(I)C
istore 6
start local 6 6: iload 6
invokestatic sun.nio.fs.WindowsPathParser.isSlash:(C)Z
ifeq 18
7: iload 5
bipush 32
if_icmpne 12
8: new java.nio.file.InvalidPathException
dup
aload 1
9: new java.lang.StringBuilder
dup
ldc "Trailing char <"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc ">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: iload 2
iconst_1
isub
11: invokespecial java.nio.file.InvalidPathException.<init>:(Ljava/lang/String;Ljava/lang/String;I)V
athrow
12: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 4
iload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
pop
13: aload 1
iload 2
iload 3
invokestatic sun.nio.fs.WindowsPathParser.nextNonSlash:(Ljava/lang/String;II)I
istore 2
14: iload 2
iload 3
if_icmpeq 16
15: aload 0
bipush 92
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
16: StackMap locals:
StackMap stack:
iload 2
istore 4
17: goto 25
18: StackMap locals:
StackMap stack:
iload 6
invokestatic sun.nio.fs.WindowsPathParser.isInvalidPathChar:(C)Z
ifeq 23
19: new java.nio.file.InvalidPathException
dup
aload 1
20: new java.lang.StringBuilder
dup
ldc "Illegal char <"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc ">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: iload 2
22: invokespecial java.nio.file.InvalidPathException.<init>:(Ljava/lang/String;Ljava/lang/String;I)V
athrow
23: StackMap locals:
StackMap stack:
iload 6
istore 5
24: iinc 2 1
end local 6 25: StackMap locals:
StackMap stack:
iload 2
iload 3
if_icmplt 5
26: iload 4
iload 2
if_icmpeq 33
27: iload 5
bipush 32
if_icmpne 32
28: new java.nio.file.InvalidPathException
dup
aload 1
29: new java.lang.StringBuilder
dup
ldc "Trailing char <"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc ">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
30: iload 2
iconst_1
isub
31: invokespecial java.nio.file.InvalidPathException.<init>:(Ljava/lang/String;Ljava/lang/String;I)V
athrow
32: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 4
iload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
pop
33: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 sb Ljava/lang/StringBuilder;
0 34 1 path Ljava/lang/String;
0 34 2 off I
1 34 3 len I
3 34 4 start I
4 34 5 lastC C
6 25 6 c C
MethodParameters:
Name Flags
sb
path
off
private static final boolean isSlash(char);
descriptor: (C)Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush 92
if_icmpeq 1
iload 0
bipush 47
if_icmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 c C
MethodParameters:
Name Flags
c
private static final int nextNonSlash(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: goto 2
StackMap locals:
StackMap stack:
1: iinc 1 1
StackMap locals:
StackMap stack:
2: iload 1
iload 2
if_icmpge 3
aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
invokestatic sun.nio.fs.WindowsPathParser.isSlash:(C)Z
ifne 1
3: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 path Ljava/lang/String;
0 4 1 off I
0 4 2 end I
MethodParameters:
Name Flags
path
off
end
private static final int nextSlash(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: goto 7
start local 3 1: StackMap locals: int
StackMap stack:
iload 3
invokestatic sun.nio.fs.WindowsPathParser.isInvalidPathChar:(C)Z
ifeq 6
2: new java.nio.file.InvalidPathException
dup
aload 0
3: new java.lang.StringBuilder
dup
ldc "Illegal character ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc "] in path"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: iload 1
5: invokespecial java.nio.file.InvalidPathException.<init>:(Ljava/lang/String;Ljava/lang/String;I)V
athrow
6: StackMap locals:
StackMap stack:
iinc 1 1
end local 3 7: StackMap locals:
StackMap stack:
iload 1
iload 2
if_icmpge 9
aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
dup
istore 3
start local 3 8: invokestatic sun.nio.fs.WindowsPathParser.isSlash:(C)Z
ifeq 1
end local 3 9: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 path Ljava/lang/String;
0 10 1 off I
0 10 2 end I
1 7 3 c C
8 9 3 c C
MethodParameters:
Name Flags
path
off
end
private static final boolean isLetter(char);
descriptor: (C)Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush 97
if_icmplt 1
iload 0
bipush 122
if_icmple 3
StackMap locals:
StackMap stack:
1: iload 0
bipush 65
if_icmplt 2
iload 0
bipush 90
if_icmple 3
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 c C
MethodParameters:
Name Flags
c
private static final boolean isInvalidPathChar(char);
descriptor: (C)Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush 32
if_icmplt 1
ldc "<>:\"|?*"
iload 0
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 ch C
MethodParameters:
Name Flags
ch
}
SourceFile: "WindowsPathParser.java"
NestMembers:
sun.nio.fs.WindowsPathParser$Result
InnerClasses:
Result = sun.nio.fs.WindowsPathParser$Result of sun.nio.fs.WindowsPathParser