final class sun.awt.shell.Win32ShellFolderManager2 extends sun.awt.shell.ShellFolderManager
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.awt.shell.Win32ShellFolderManager2
super_class: sun.awt.shell.ShellFolderManager
{
private static final sun.util.logging.PlatformLogger log;
descriptor: Lsun/util/logging/PlatformLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int VIEW_LIST;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int VIEW_DETAILS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int VIEW_PARENTFOLDER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int VIEW_NEWFOLDER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 11
private static final java.awt.Image[] STANDARD_VIEW_BUTTONS;
descriptor: [Ljava/awt/Image;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static sun.awt.shell.Win32ShellFolder2 desktop;
descriptor: Lsun/awt/shell/Win32ShellFolder2;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.awt.shell.Win32ShellFolder2 drives;
descriptor: Lsun/awt/shell/Win32ShellFolder2;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.awt.shell.Win32ShellFolder2 recent;
descriptor: Lsun/awt/shell/Win32ShellFolder2;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.awt.shell.Win32ShellFolder2 network;
descriptor: Lsun/awt/shell/Win32ShellFolder2;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.awt.shell.Win32ShellFolder2 personal;
descriptor: Lsun/awt/shell/Win32ShellFolder2;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.io.File[] roots;
descriptor: [Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.util.List<sun.awt.shell.Win32ShellFolder2> topFolderList;
descriptor: Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/List<Lsun/awt/shell/Win32ShellFolder2;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "sun.awt.shell.Win32ShellFolderManager2"
invokestatic sun.util.logging.PlatformLogger.getLogger:(Ljava/lang/String;)Lsun/util/logging/PlatformLogger;
putstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
1: invokestatic sun.awt.windows.WToolkit.loadLibraries:()V
2: bipush 12
anewarray java.awt.Image
putstatic sun.awt.shell.Win32ShellFolderManager2.STANDARD_VIEW_BUTTONS:[Ljava/awt/Image;
3: aconst_null
putstatic sun.awt.shell.Win32ShellFolderManager2.topFolderList:Ljava/util/List;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial sun.awt.shell.ShellFolderManager.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/awt/shell/Win32ShellFolderManager2;
public sun.awt.shell.ShellFolder createShellFolder(java.io.File);
descriptor: (Ljava/io/File;)Lsun/awt/shell/ShellFolder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: invokestatic sun.awt.shell.Win32ShellFolderManager2.getDesktop:()Lsun/awt/shell/Win32ShellFolder2;
aload 1
invokestatic sun.awt.shell.Win32ShellFolderManager2.createShellFolder:(Lsun/awt/shell/Win32ShellFolder2;Ljava/io/File;)Lsun/awt/shell/Win32ShellFolder2;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.InterruptedException
pop
3: new java.io.FileNotFoundException
dup
ldc "Execution was interrupted"
invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/awt/shell/Win32ShellFolderManager2;
0 4 1 file Ljava/io/File;
Exception table:
from to target type
0 1 2 Class java.lang.InterruptedException
Exceptions:
throws java.io.FileNotFoundException
MethodParameters:
Name Flags
file
static sun.awt.shell.Win32ShellFolder2 createShellFolder(sun.awt.shell.Win32ShellFolder2, java.io.File);
descriptor: (Lsun/awt/shell/Win32ShellFolder2;Ljava/io/File;)Lsun/awt/shell/Win32ShellFolder2;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
invokevirtual sun.awt.shell.Win32ShellFolder2.parseDisplayName:(Ljava/lang/String;)J
lstore 2
start local 2 1: goto 4
end local 2 StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: lconst_0
lstore 2
start local 2 4: StackMap locals: long
StackMap stack:
lload 2
lconst_0
lcmp
ifne 6
5: new java.io.FileNotFoundException
dup
new java.lang.StringBuilder
dup
ldc "File "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " not found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
lload 2
invokestatic sun.awt.shell.Win32ShellFolderManager2.createShellFolderFromRelativePIDL:(Lsun/awt/shell/Win32ShellFolder2;J)Lsun/awt/shell/Win32ShellFolder2;
astore 5
7: lload 2
invokestatic sun.awt.shell.Win32ShellFolder2.releasePIDL:(J)V
8: aload 5
areturn
9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
10: lload 2
invokestatic sun.awt.shell.Win32ShellFolder2.releasePIDL:(J)V
11: aload 4
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 parent Lsun/awt/shell/Win32ShellFolder2;
0 12 1 file Ljava/io/File;
1 2 2 pIDL J
4 12 2 pIDL J
Exception table:
from to target type
0 1 2 Class java.io.IOException
6 7 9 any
Exceptions:
throws java.io.FileNotFoundException, java.lang.InterruptedException
MethodParameters:
Name Flags
parent
file
static sun.awt.shell.Win32ShellFolder2 createShellFolderFromRelativePIDL(sun.awt.shell.Win32ShellFolder2, long);
descriptor: (Lsun/awt/shell/Win32ShellFolder2;J)Lsun/awt/shell/Win32ShellFolder2;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: goto 5
1: StackMap locals:
StackMap stack:
lload 1
invokestatic sun.awt.shell.Win32ShellFolder2.copyFirstPIDLEntry:(J)J
lstore 3
start local 3 2: lload 3
lconst_0
lcmp
ifeq 6
3: aload 0
lload 3
invokestatic sun.awt.shell.Win32ShellFolder2.createShellFolder:(Lsun/awt/shell/Win32ShellFolder2;J)Lsun/awt/shell/Win32ShellFolder2;
astore 0
4: lload 1
invokestatic sun.awt.shell.Win32ShellFolder2.getNextPIDLEntry:(J)J
lstore 1
end local 3 5: StackMap locals:
StackMap stack:
lload 1
lconst_0
lcmp
ifne 1
6: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 parent Lsun/awt/shell/Win32ShellFolder2;
0 7 1 pIDL J
2 5 3 curPIDL J
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
parent
pIDL
private static java.awt.Image getStandardViewButton(int);
descriptor: (I)Ljava/awt/Image;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=5, args_size=1
start local 0 0: getstatic sun.awt.shell.Win32ShellFolderManager2.STANDARD_VIEW_BUTTONS:[Ljava/awt/Image;
iload 0
aaload
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
areturn
3: StackMap locals: java.awt.Image
StackMap stack:
iload 0
iconst_1
invokestatic sun.awt.shell.Win32ShellFolder2.getStandardViewButton0:(IZ)[I
4: astore 2
start local 2 5: aload 2
ifnull 14
6: aload 2
arraylength
i2d
invokestatic java.lang.Math.sqrt:(D)D
d2i
istore 3
start local 3 7: new java.awt.image.BufferedImage
dup
iload 3
iload 3
iconst_2
invokespecial java.awt.image.BufferedImage.<init>:(III)V
8: astore 4
start local 4 9: aload 4
iconst_0
iconst_0
iload 3
iload 3
aload 2
iconst_0
iload 3
invokevirtual java.awt.image.BufferedImage.setRGB:(IIII[III)V
10: getstatic sun.awt.shell.Win32ShellFolderManager2.STANDARD_VIEW_BUTTONS:[Ljava/awt/Image;
iload 0
iload 3
bipush 16
if_icmpne 12
11: aload 4
goto 13
12: StackMap locals: int java.awt.Image int[] int java.awt.image.BufferedImage
StackMap stack: java.awt.Image[] int
new sun.awt.shell.Win32ShellFolder2$MultiResolutionIconImage
dup
bipush 16
aload 4
invokespecial sun.awt.shell.Win32ShellFolder2$MultiResolutionIconImage.<init>:(ILjava/awt/Image;)V
13: StackMap locals: int java.awt.Image int[] int java.awt.image.BufferedImage
StackMap stack: java.awt.Image[] int java.awt.Image
aastore
end local 4 end local 3 14: StackMap locals:
StackMap stack:
getstatic sun.awt.shell.Win32ShellFolderManager2.STANDARD_VIEW_BUTTONS:[Ljava/awt/Image;
iload 0
aaload
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 iconIndex I
1 15 1 result Ljava/awt/Image;
5 15 2 iconBits [I
7 14 3 size I
9 14 4 img Ljava/awt/image/BufferedImage;
MethodParameters:
Name Flags
iconIndex
static sun.awt.shell.Win32ShellFolder2 getDesktop();
descriptor: ()Lsun/awt/shell/Win32ShellFolder2;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: getstatic sun.awt.shell.Win32ShellFolderManager2.desktop:Lsun/awt/shell/Win32ShellFolder2;
ifnonnull 7
1: new sun.awt.shell.Win32ShellFolder2
dup
iconst_0
invokespecial sun.awt.shell.Win32ShellFolder2.<init>:(I)V
putstatic sun.awt.shell.Win32ShellFolderManager2.desktop:Lsun/awt/shell/Win32ShellFolder2;
2: goto 7
StackMap locals:
StackMap stack: java.lang.SecurityException
3: pop
goto 7
4: StackMap locals:
StackMap stack: java.lang.Exception
astore 0
start local 0 5: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
getstatic sun.util.logging.PlatformLogger$Level.WARNING:Lsun/util/logging/PlatformLogger$Level;
invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
ifeq 7
6: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
ldc "Cannot access 'Desktop'"
aload 0
invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 0 7: StackMap locals:
StackMap stack:
getstatic sun.awt.shell.Win32ShellFolderManager2.desktop:Lsun/awt/shell/Win32ShellFolder2;
areturn
LocalVariableTable:
Start End Slot Name Signature
5 7 0 e Ljava/lang/Exception;
Exception table:
from to target type
1 2 3 Class java.lang.SecurityException
1 2 4 Class java.io.IOException
1 2 4 Class java.lang.InterruptedException
static sun.awt.shell.Win32ShellFolder2 getDrives();
descriptor: ()Lsun/awt/shell/Win32ShellFolder2;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: getstatic sun.awt.shell.Win32ShellFolderManager2.drives:Lsun/awt/shell/Win32ShellFolder2;
ifnonnull 7
1: new sun.awt.shell.Win32ShellFolder2
dup
bipush 17
invokespecial sun.awt.shell.Win32ShellFolder2.<init>:(I)V
putstatic sun.awt.shell.Win32ShellFolderManager2.drives:Lsun/awt/shell/Win32ShellFolder2;
2: goto 7
StackMap locals:
StackMap stack: java.lang.SecurityException
3: pop
goto 7
4: StackMap locals:
StackMap stack: java.lang.Exception
astore 0
start local 0 5: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
getstatic sun.util.logging.PlatformLogger$Level.WARNING:Lsun/util/logging/PlatformLogger$Level;
invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
ifeq 7
6: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
ldc "Cannot access 'Drives'"
aload 0
invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 0 7: StackMap locals:
StackMap stack:
getstatic sun.awt.shell.Win32ShellFolderManager2.drives:Lsun/awt/shell/Win32ShellFolder2;
areturn
LocalVariableTable:
Start End Slot Name Signature
5 7 0 e Ljava/lang/Exception;
Exception table:
from to target type
1 2 3 Class java.lang.SecurityException
1 2 4 Class java.io.IOException
1 2 4 Class java.lang.InterruptedException
static sun.awt.shell.Win32ShellFolder2 getRecent();
descriptor: ()Lsun/awt/shell/Win32ShellFolder2;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: getstatic sun.awt.shell.Win32ShellFolderManager2.recent:Lsun/awt/shell/Win32ShellFolder2;
ifnonnull 9
1: bipush 8
invokestatic sun.awt.shell.Win32ShellFolder2.getFileSystemPath:(I)Ljava/lang/String;
astore 0
start local 0 2: aload 0
ifnull 9
3: invokestatic sun.awt.shell.Win32ShellFolderManager2.getDesktop:()Lsun/awt/shell/Win32ShellFolder2;
new java.io.File
dup
aload 0
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokestatic sun.awt.shell.Win32ShellFolderManager2.createShellFolder:(Lsun/awt/shell/Win32ShellFolder2;Ljava/io/File;)Lsun/awt/shell/Win32ShellFolder2;
putstatic sun.awt.shell.Win32ShellFolderManager2.recent:Lsun/awt/shell/Win32ShellFolder2;
end local 0 4: goto 9
StackMap locals:
StackMap stack: java.lang.SecurityException
5: pop
goto 9
6: StackMap locals:
StackMap stack: java.lang.Exception
astore 0
start local 0 7: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
getstatic sun.util.logging.PlatformLogger$Level.WARNING:Lsun/util/logging/PlatformLogger$Level;
invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
ifeq 9
8: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
ldc "Cannot access 'Recent'"
aload 0
invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 0 9: StackMap locals:
StackMap stack:
getstatic sun.awt.shell.Win32ShellFolderManager2.recent:Lsun/awt/shell/Win32ShellFolder2;
areturn
LocalVariableTable:
Start End Slot Name Signature
2 4 0 path Ljava/lang/String;
7 9 0 e Ljava/lang/Exception;
Exception table:
from to target type
1 4 5 Class java.lang.SecurityException
1 4 6 Class java.lang.InterruptedException
1 4 6 Class java.io.IOException
static sun.awt.shell.Win32ShellFolder2 getNetwork();
descriptor: ()Lsun/awt/shell/Win32ShellFolder2;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: getstatic sun.awt.shell.Win32ShellFolderManager2.network:Lsun/awt/shell/Win32ShellFolder2;
ifnonnull 7
1: new sun.awt.shell.Win32ShellFolder2
dup
bipush 18
invokespecial sun.awt.shell.Win32ShellFolder2.<init>:(I)V
putstatic sun.awt.shell.Win32ShellFolderManager2.network:Lsun/awt/shell/Win32ShellFolder2;
2: goto 7
StackMap locals:
StackMap stack: java.lang.SecurityException
3: pop
goto 7
4: StackMap locals:
StackMap stack: java.lang.Exception
astore 0
start local 0 5: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
getstatic sun.util.logging.PlatformLogger$Level.WARNING:Lsun/util/logging/PlatformLogger$Level;
invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
ifeq 7
6: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
ldc "Cannot access 'Network'"
aload 0
invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 0 7: StackMap locals:
StackMap stack:
getstatic sun.awt.shell.Win32ShellFolderManager2.network:Lsun/awt/shell/Win32ShellFolder2;
areturn
LocalVariableTable:
Start End Slot Name Signature
5 7 0 e Ljava/lang/Exception;
Exception table:
from to target type
1 2 3 Class java.lang.SecurityException
1 2 4 Class java.io.IOException
1 2 4 Class java.lang.InterruptedException
static sun.awt.shell.Win32ShellFolder2 getPersonal();
descriptor: ()Lsun/awt/shell/Win32ShellFolder2;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=0
0: getstatic sun.awt.shell.Win32ShellFolderManager2.personal:Lsun/awt/shell/Win32ShellFolder2;
ifnonnull 14
1: iconst_5
invokestatic sun.awt.shell.Win32ShellFolder2.getFileSystemPath:(I)Ljava/lang/String;
astore 0
start local 0 2: aload 0
ifnull 14
3: invokestatic sun.awt.shell.Win32ShellFolderManager2.getDesktop:()Lsun/awt/shell/Win32ShellFolder2;
astore 1
start local 1 4: aload 1
aload 0
invokevirtual sun.awt.shell.Win32ShellFolder2.getChildByPath:(Ljava/lang/String;)Lsun/awt/shell/Win32ShellFolder2;
putstatic sun.awt.shell.Win32ShellFolderManager2.personal:Lsun/awt/shell/Win32ShellFolder2;
5: getstatic sun.awt.shell.Win32ShellFolderManager2.personal:Lsun/awt/shell/Win32ShellFolder2;
ifnonnull 7
6: invokestatic sun.awt.shell.Win32ShellFolderManager2.getDesktop:()Lsun/awt/shell/Win32ShellFolder2;
new java.io.File
dup
aload 0
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokestatic sun.awt.shell.Win32ShellFolderManager2.createShellFolder:(Lsun/awt/shell/Win32ShellFolder2;Ljava/io/File;)Lsun/awt/shell/Win32ShellFolder2;
putstatic sun.awt.shell.Win32ShellFolderManager2.personal:Lsun/awt/shell/Win32ShellFolder2;
7: StackMap locals: java.lang.String sun.awt.shell.Win32ShellFolder2
StackMap stack:
getstatic sun.awt.shell.Win32ShellFolderManager2.personal:Lsun/awt/shell/Win32ShellFolder2;
ifnull 14
8: getstatic sun.awt.shell.Win32ShellFolderManager2.personal:Lsun/awt/shell/Win32ShellFolder2;
invokevirtual sun.awt.shell.Win32ShellFolder2.setIsPersonal:()V
end local 1 end local 0 9: goto 14
StackMap locals:
StackMap stack: java.lang.SecurityException
10: pop
goto 14
11: StackMap locals:
StackMap stack: java.lang.Exception
astore 0
start local 0 12: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
getstatic sun.util.logging.PlatformLogger$Level.WARNING:Lsun/util/logging/PlatformLogger$Level;
invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
ifeq 14
13: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
ldc "Cannot access 'Personal'"
aload 0
invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 0 14: StackMap locals:
StackMap stack:
getstatic sun.awt.shell.Win32ShellFolderManager2.personal:Lsun/awt/shell/Win32ShellFolder2;
areturn
LocalVariableTable:
Start End Slot Name Signature
2 9 0 path Ljava/lang/String;
4 9 1 desktop Lsun/awt/shell/Win32ShellFolder2;
12 14 0 e Ljava/lang/Exception;
Exception table:
from to target type
1 9 10 Class java.lang.SecurityException
1 9 11 Class java.lang.InterruptedException
1 9 11 Class java.io.IOException
public java.lang.Object get(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=14, args_size=2
start local 0 start local 1 0: aload 1
ldc "fileChooserDefaultFolder"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
1: invokestatic sun.awt.shell.Win32ShellFolderManager2.getPersonal:()Lsun/awt/shell/Win32ShellFolder2;
astore 2
start local 2 2: aload 2
ifnonnull 4
3: invokestatic sun.awt.shell.Win32ShellFolderManager2.getDesktop:()Lsun/awt/shell/Win32ShellFolder2;
astore 2
4: StackMap locals: java.io.File
StackMap stack:
aload 2
invokestatic sun.awt.shell.Win32ShellFolderManager2.checkFile:(Ljava/io/File;)Ljava/io/File;
areturn
end local 2 5: StackMap locals:
StackMap stack:
aload 1
ldc "roots"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
6: getstatic sun.awt.shell.Win32ShellFolderManager2.roots:[Ljava/io/File;
ifnonnull 12
7: invokestatic sun.awt.shell.Win32ShellFolderManager2.getDesktop:()Lsun/awt/shell/Win32ShellFolder2;
astore 2
start local 2 8: aload 2
ifnull 11
9: iconst_1
anewarray java.io.File
dup
iconst_0
aload 2
aastore
putstatic sun.awt.shell.Win32ShellFolderManager2.roots:[Ljava/io/File;
10: goto 12
11: StackMap locals: java.io.File
StackMap stack:
aload 0
aload 1
invokespecial sun.awt.shell.ShellFolderManager.get:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.io.File[]
putstatic sun.awt.shell.Win32ShellFolderManager2.roots:[Ljava/io/File;
end local 2 12: StackMap locals:
StackMap stack:
getstatic sun.awt.shell.Win32ShellFolderManager2.roots:[Ljava/io/File;
invokestatic sun.awt.shell.Win32ShellFolderManager2.checkFiles:([Ljava/io/File;)[Ljava/io/File;
areturn
13: StackMap locals:
StackMap stack:
aload 1
ldc "fileChooserComboBoxFolders"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 39
14: invokestatic sun.awt.shell.Win32ShellFolderManager2.getDesktop:()Lsun/awt/shell/Win32ShellFolder2;
astore 2
start local 2 15: aload 2
ifnull 38
aload 2
invokestatic sun.awt.shell.Win32ShellFolderManager2.checkFile:(Ljava/io/File;)Ljava/io/File;
ifnull 38
16: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 17: invokestatic sun.awt.shell.Win32ShellFolderManager2.getDrives:()Lsun/awt/shell/Win32ShellFolder2;
astore 4
start local 4 18: invokestatic sun.awt.shell.Win32ShellFolderManager2.getRecent:()Lsun/awt/shell/Win32ShellFolder2;
astore 5
start local 5 19: aload 5
ifnull 21
invokestatic sun.awt.OSInfo.getWindowsVersion:()Lsun/awt/OSInfo$WindowsVersion;
getstatic sun.awt.OSInfo.WINDOWS_2000:Lsun/awt/OSInfo$WindowsVersion;
invokevirtual sun.awt.OSInfo$WindowsVersion.compareTo:(Lsun/awt/OSInfo$WindowsVersion;)I
iflt 21
20: aload 3
aload 5
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
21: StackMap locals: sun.awt.shell.Win32ShellFolderManager2 java.lang.String sun.awt.shell.Win32ShellFolder2 java.util.ArrayList sun.awt.shell.Win32ShellFolder2 sun.awt.shell.Win32ShellFolder2
StackMap stack:
aload 3
aload 2
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
22: aload 2
invokevirtual sun.awt.shell.Win32ShellFolder2.listFiles:()[Ljava/io/File;
invokestatic sun.awt.shell.Win32ShellFolderManager2.checkFiles:([Ljava/io/File;)[Ljava/io/File;
astore 6
start local 6 23: aload 6
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
24: aload 6
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 36
StackMap locals: sun.awt.shell.Win32ShellFolderManager2 java.lang.String sun.awt.shell.Win32ShellFolder2 java.util.ArrayList sun.awt.shell.Win32ShellFolder2 sun.awt.shell.Win32ShellFolder2 java.io.File[] top int int java.io.File[]
StackMap stack:
25: aload 10
iload 8
aaload
astore 7
start local 7 26: aload 7
checkcast sun.awt.shell.Win32ShellFolder2
astore 11
start local 11 27: aload 11
invokevirtual sun.awt.shell.Win32ShellFolder2.isFileSystem:()Z
ifeq 28
aload 11
invokevirtual sun.awt.shell.Win32ShellFolder2.isDirectory:()Z
ifeq 35
aload 11
invokevirtual sun.awt.shell.Win32ShellFolder2.isLink:()Z
ifne 35
28: StackMap locals: sun.awt.shell.Win32ShellFolderManager2 java.lang.String sun.awt.shell.Win32ShellFolder2 java.util.ArrayList sun.awt.shell.Win32ShellFolder2 sun.awt.shell.Win32ShellFolder2 java.io.File[] java.io.File int int java.io.File[] sun.awt.shell.Win32ShellFolder2
StackMap stack:
aload 3
aload 11
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
29: aload 11
aload 4
invokevirtual sun.awt.shell.Win32ShellFolder2.equals:(Ljava/lang/Object;)Z
ifeq 35
30: aload 11
invokevirtual sun.awt.shell.Win32ShellFolder2.listFiles:()[Ljava/io/File;
invokestatic sun.awt.shell.Win32ShellFolderManager2.checkFiles:([Ljava/io/File;)[Ljava/io/File;
astore 12
start local 12 31: aload 12
ifnull 35
aload 12
arraylength
ifle 35
32: aload 12
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
astore 13
start local 13 33: aload 11
aload 13
invokevirtual sun.awt.shell.Win32ShellFolder2.sortChildren:(Ljava/util/List;)V
34: aload 3
aload 13
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
end local 13 end local 12 end local 11 end local 7 35: StackMap locals: sun.awt.shell.Win32ShellFolderManager2 java.lang.String sun.awt.shell.Win32ShellFolder2 java.util.ArrayList sun.awt.shell.Win32ShellFolder2 sun.awt.shell.Win32ShellFolder2 java.io.File[] top int int java.io.File[]
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
36: iload 8
iload 9
if_icmplt 25
37: aload 3
invokestatic sun.awt.shell.Win32ShellFolderManager2.checkFiles:(Ljava/util/List;)[Ljava/io/File;
areturn
end local 6 end local 5 end local 4 end local 3 38: StackMap locals: sun.awt.shell.Win32ShellFolderManager2 java.lang.String sun.awt.shell.Win32ShellFolder2
StackMap stack:
aload 0
aload 1
invokespecial sun.awt.shell.ShellFolderManager.get:(Ljava/lang/String;)Ljava/lang/Object;
areturn
end local 2 39: StackMap locals:
StackMap stack:
aload 1
ldc "fileChooserShortcutPanelFolders"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 68
40: invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
astore 2
start local 2 41: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 42: iconst_0
istore 4
start local 4 43: StackMap locals: java.awt.Toolkit java.util.ArrayList int
StackMap stack:
aload 2
new java.lang.StringBuilder
dup
ldc "win.comdlg.placesBarPlace"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
iinc 4 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.awt.Toolkit.getDesktopProperty:(Ljava/lang/String;)Ljava/lang/Object;
astore 5
start local 5 44: aload 5
instanceof java.lang.Integer
ifeq 47
45: aload 3
new sun.awt.shell.Win32ShellFolder2
dup
aload 5
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokespecial sun.awt.shell.Win32ShellFolder2.<init>:(I)V
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
46: goto 58
StackMap locals: java.lang.Object
StackMap stack:
47: aload 5
instanceof java.lang.String
ifeq 58
48: aload 3
aload 0
new java.io.File
dup
aload 5
checkcast java.lang.String
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual sun.awt.shell.Win32ShellFolderManager2.createShellFolder:(Ljava/io/File;)Lsun/awt/shell/ShellFolder;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
49: goto 58
StackMap locals:
StackMap stack: java.io.IOException
50: astore 6
start local 6 51: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
getstatic sun.util.logging.PlatformLogger$Level.WARNING:Lsun/util/logging/PlatformLogger$Level;
invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
ifeq 58
52: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
new java.lang.StringBuilder
dup
ldc "Cannot read value = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 6 53: goto 58
54: StackMap locals:
StackMap stack: java.lang.InterruptedException
astore 6
start local 6 55: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
getstatic sun.util.logging.PlatformLogger$Level.WARNING:Lsun/util/logging/PlatformLogger$Level;
invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
ifeq 57
56: getstatic sun.awt.shell.Win32ShellFolderManager2.log:Lsun/util/logging/PlatformLogger;
new java.lang.StringBuilder
dup
ldc "Cannot read value = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;Ljava/lang/Throwable;)V
57: StackMap locals: java.lang.InterruptedException
StackMap stack:
iconst_0
anewarray java.io.File
areturn
end local 6 58: StackMap locals:
StackMap stack:
aload 5
ifnonnull 43
59: aload 3
invokevirtual java.util.ArrayList.size:()I
ifne 67
60: iconst_5
anewarray java.io.File
dup
iconst_0
61: invokestatic sun.awt.shell.Win32ShellFolderManager2.getRecent:()Lsun/awt/shell/Win32ShellFolder2;
aastore
dup
iconst_1
invokestatic sun.awt.shell.Win32ShellFolderManager2.getDesktop:()Lsun/awt/shell/Win32ShellFolder2;
aastore
dup
iconst_2
invokestatic sun.awt.shell.Win32ShellFolderManager2.getPersonal:()Lsun/awt/shell/Win32ShellFolder2;
aastore
dup
iconst_3
invokestatic sun.awt.shell.Win32ShellFolderManager2.getDrives:()Lsun/awt/shell/Win32ShellFolder2;
aastore
dup
iconst_4
invokestatic sun.awt.shell.Win32ShellFolderManager2.getNetwork:()Lsun/awt/shell/Win32ShellFolder2;
aastore
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 66
StackMap locals: sun.awt.shell.Win32ShellFolderManager2 java.lang.String java.awt.Toolkit java.util.ArrayList int java.lang.Object top int int java.io.File[]
StackMap stack:
62: aload 9
iload 7
aaload
astore 6
start local 6 63: aload 6
ifnull 65
64: aload 3
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 6 65: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
66: iload 7
iload 8
if_icmplt 62
67: StackMap locals: sun.awt.shell.Win32ShellFolderManager2 java.lang.String java.awt.Toolkit java.util.ArrayList int java.lang.Object
StackMap stack:
aload 3
invokestatic sun.awt.shell.Win32ShellFolderManager2.checkFiles:(Ljava/util/List;)[Ljava/io/File;
areturn
end local 5 end local 4 end local 3 end local 2 68: StackMap locals: sun.awt.shell.Win32ShellFolderManager2 java.lang.String
StackMap stack:
aload 1
ldc "fileChooserIcon "
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 84
69: aload 1
aload 1
ldc " "
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 2
start local 2 70: aload 2
ldc "ListView"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 71
aload 2
ldc "ViewMenu"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 73
71: StackMap locals: java.lang.String
StackMap stack:
iconst_2
istore 3
start local 3 72: goto 83
end local 3 StackMap locals:
StackMap stack:
73: aload 2
ldc "DetailsView"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 76
74: iconst_3
istore 3
start local 3 75: goto 83
end local 3 StackMap locals:
StackMap stack:
76: aload 2
ldc "UpFolder"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 79
77: bipush 8
istore 3
start local 3 78: goto 83
end local 3 StackMap locals:
StackMap stack:
79: aload 2
ldc "NewFolder"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 82
80: bipush 11
istore 3
start local 3 81: goto 83
end local 3 82: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 3 83: StackMap locals: int
StackMap stack:
iload 3
invokestatic sun.awt.shell.Win32ShellFolderManager2.getStandardViewButton:(I)Ljava/awt/Image;
areturn
end local 3 end local 2 84: StackMap locals:
StackMap stack:
aload 1
ldc "optionPaneIcon "
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 99
85: aload 1
ldc "optionPaneIcon Error"
if_acmpne 88
86: getstatic sun.awt.shell.Win32ShellFolder2$SystemIcon.IDI_ERROR:Lsun/awt/shell/Win32ShellFolder2$SystemIcon;
astore 2
start local 2 87: goto 98
end local 2 StackMap locals:
StackMap stack:
88: aload 1
ldc "optionPaneIcon Information"
if_acmpne 91
89: getstatic sun.awt.shell.Win32ShellFolder2$SystemIcon.IDI_INFORMATION:Lsun/awt/shell/Win32ShellFolder2$SystemIcon;
astore 2
start local 2 90: goto 98
end local 2 StackMap locals:
StackMap stack:
91: aload 1
ldc "optionPaneIcon Question"
if_acmpne 94
92: getstatic sun.awt.shell.Win32ShellFolder2$SystemIcon.IDI_QUESTION:Lsun/awt/shell/Win32ShellFolder2$SystemIcon;
astore 2
start local 2 93: goto 98
end local 2 StackMap locals:
StackMap stack:
94: aload 1
ldc "optionPaneIcon Warning"
if_acmpne 97
95: getstatic sun.awt.shell.Win32ShellFolder2$SystemIcon.IDI_EXCLAMATION:Lsun/awt/shell/Win32ShellFolder2$SystemIcon;
astore 2
start local 2 96: goto 98
end local 2 97: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 2 98: StackMap locals: sun.awt.shell.Win32ShellFolder2$SystemIcon
StackMap stack:
aload 2
invokestatic sun.awt.shell.Win32ShellFolder2.getSystemIcon:(Lsun/awt/shell/Win32ShellFolder2$SystemIcon;)Ljava/awt/Image;
areturn
end local 2 99: StackMap locals:
StackMap stack:
aload 1
ldc "shell32Icon "
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 100
aload 1
ldc "shell32LargeIcon "
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 106
100: StackMap locals:
StackMap stack:
aload 1
aload 1
ldc " "
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 2
start local 2 101: aload 2
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 3
start local 3 102: iload 3
iflt 106
103: iload 3
aload 1
ldc "shell32LargeIcon "
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
invokestatic sun.awt.shell.Win32ShellFolder2.getShell32Icon:(IZ)Ljava/awt/Image;
104: areturn
end local 3 105: StackMap locals: sun.awt.shell.Win32ShellFolderManager2 java.lang.String java.lang.String
StackMap stack: java.lang.NumberFormatException
pop
end local 2 106: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 107 0 this Lsun/awt/shell/Win32ShellFolderManager2;
0 107 1 key Ljava/lang/String;
2 5 2 file Ljava/io/File;
8 12 2 desktop Ljava/io/File;
15 39 2 desktop Lsun/awt/shell/Win32ShellFolder2;
17 38 3 folders Ljava/util/ArrayList<Ljava/io/File;>;
18 38 4 drives Lsun/awt/shell/Win32ShellFolder2;
19 38 5 recentFolder Lsun/awt/shell/Win32ShellFolder2;
23 38 6 secondLevelFolders [Ljava/io/File;
26 35 7 secondLevelFolder Ljava/io/File;
27 35 11 folder Lsun/awt/shell/Win32ShellFolder2;
31 35 12 thirdLevelFolders [Ljava/io/File;
33 35 13 thirdLevelFoldersList Ljava/util/List<Ljava/io/File;>;
41 68 2 toolkit Ljava/awt/Toolkit;
42 68 3 folders Ljava/util/ArrayList<Ljava/io/File;>;
43 68 4 i I
44 68 5 value Ljava/lang/Object;
51 53 6 e Ljava/io/IOException;
55 58 6 e Ljava/lang/InterruptedException;
63 65 6 f Ljava/io/File;
70 84 2 name Ljava/lang/String;
72 73 3 iconIndex I
75 76 3 iconIndex I
78 79 3 iconIndex I
81 82 3 iconIndex I
83 84 3 iconIndex I
87 88 2 iconType Lsun/awt/shell/Win32ShellFolder2$SystemIcon;
90 91 2 iconType Lsun/awt/shell/Win32ShellFolder2$SystemIcon;
93 94 2 iconType Lsun/awt/shell/Win32ShellFolder2$SystemIcon;
96 97 2 iconType Lsun/awt/shell/Win32ShellFolder2$SystemIcon;
98 99 2 iconType Lsun/awt/shell/Win32ShellFolder2$SystemIcon;
101 106 2 name Ljava/lang/String;
102 105 3 i I
Exception table:
from to target type
44 49 50 Class java.io.IOException
44 49 54 Class java.lang.InterruptedException
101 104 105 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
key
private static java.io.File checkFile(java.io.File);
descriptor: (Ljava/io/File;)Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 1: aload 1
ifnull 2
aload 0
ifnonnull 3
StackMap locals: java.lang.SecurityManager
StackMap stack:
2: aload 0
goto 4
StackMap locals:
StackMap stack:
3: aload 0
aload 1
invokestatic sun.awt.shell.Win32ShellFolderManager2.checkFile:(Ljava/io/File;Ljava/lang/SecurityManager;)Ljava/io/File;
StackMap locals:
StackMap stack: java.io.File
4: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 file Ljava/io/File;
1 5 1 sm Ljava/lang/SecurityManager;
MethodParameters:
Name Flags
file
private static java.io.File checkFile(java.io.File, java.lang.SecurityManager);
descriptor: (Ljava/io/File;Ljava/lang/SecurityManager;)Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokevirtual java.lang.SecurityManager.checkRead:(Ljava/lang/String;)V
1: aload 0
instanceof sun.awt.shell.Win32ShellFolder2
ifeq 7
2: aload 0
checkcast sun.awt.shell.Win32ShellFolder2
astore 2
start local 2 3: aload 2
invokevirtual sun.awt.shell.Win32ShellFolder2.isLink:()Z
ifeq 7
4: aload 2
invokevirtual sun.awt.shell.Win32ShellFolder2.getLinkLocation:()Lsun/awt/shell/ShellFolder;
checkcast sun.awt.shell.Win32ShellFolder2
astore 3
start local 3 5: aload 3
ifnull 7
6: aload 1
aload 3
invokevirtual sun.awt.shell.Win32ShellFolder2.getPath:()Ljava/lang/String;
invokevirtual java.lang.SecurityManager.checkRead:(Ljava/lang/String;)V
end local 3 end local 2 7: StackMap locals:
StackMap stack:
aload 0
8: areturn
9: StackMap locals:
StackMap stack: java.lang.SecurityException
pop
10: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 file Ljava/io/File;
0 11 1 sm Ljava/lang/SecurityManager;
3 7 2 f Lsun/awt/shell/Win32ShellFolder2;
5 7 3 link Lsun/awt/shell/Win32ShellFolder2;
Exception table:
from to target type
0 8 9 Class java.lang.SecurityException
MethodParameters:
Name Flags
file
sm
static java.io.File[] checkFiles(java.io.File[]);
descriptor: ([Ljava/io/File;)[Ljava/io/File;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 1: aload 1
ifnull 2
aload 0
ifnull 2
aload 0
arraylength
ifne 3
2: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
areturn
3: StackMap locals:
StackMap stack:
aload 0
invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
aload 1
invokestatic sun.awt.shell.Win32ShellFolderManager2.checkFiles:(Ljava/util/stream/Stream;Ljava/lang/SecurityManager;)[Ljava/io/File;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 files [Ljava/io/File;
1 4 1 sm Ljava/lang/SecurityManager;
MethodParameters:
Name Flags
files
private static java.io.File[] checkFiles(java.util.List<java.io.File>);
descriptor: (Ljava/util/List;)[Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 1: aload 1
ifnull 2
aload 0
invokeinterface java.util.List.isEmpty:()Z
ifeq 3
2: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
aload 0
invokeinterface java.util.List.size:()I
anewarray java.io.File
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.io.File[]
areturn
3: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
aload 1
invokestatic sun.awt.shell.Win32ShellFolderManager2.checkFiles:(Ljava/util/stream/Stream;Ljava/lang/SecurityManager;)[Ljava/io/File;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 files Ljava/util/List<Ljava/io/File;>;
1 4 1 sm Ljava/lang/SecurityManager;
Signature: (Ljava/util/List<Ljava/io/File;>;)[Ljava/io/File;
MethodParameters:
Name Flags
files
private static java.io.File[] checkFiles(java.util.stream.Stream<java.io.File>, java.lang.SecurityManager);
descriptor: (Ljava/util/stream/Stream;Ljava/lang/SecurityManager;)[Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokedynamic test(Ljava/lang/SecurityManager;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
sun/awt/shell/Win32ShellFolderManager2.lambda$0(Ljava/lang/SecurityManager;Ljava/io/File;)Z (6)
(Ljava/io/File;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
1: invokedynamic apply()Ljava/util/function/IntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(I)Ljava/lang/Object;
sun/awt/shell/Win32ShellFolderManager2.lambda$1(I)[Ljava/io/File; (6)
(I)[Ljava/io/File;
invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
checkcast java.io.File[]
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 filesStream Ljava/util/stream/Stream<Ljava/io/File;>;
0 3 1 sm Ljava/lang/SecurityManager;
Signature: (Ljava/util/stream/Stream<Ljava/io/File;>;Ljava/lang/SecurityManager;)[Ljava/io/File;
MethodParameters:
Name Flags
filesStream
sm
public boolean isComputerNode(java.io.File);
descriptor: (Ljava/io/File;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
aload 1
invokestatic sun.awt.shell.Win32ShellFolderManager2.getDrives:()Lsun/awt/shell/Win32ShellFolder2;
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
new sun.awt.shell.Win32ShellFolderManager2$1
dup
aload 0
aload 1
invokespecial sun.awt.shell.Win32ShellFolderManager2$1.<init>:(Lsun/awt/shell/Win32ShellFolderManager2;Ljava/io/File;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 3: aload 2
ldc "\\\\"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 4
aload 2
ldc "\\"
iconst_2
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
ifge 4
iconst_1
ireturn
StackMap locals: java.lang.String
StackMap stack:
4: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/awt/shell/Win32ShellFolderManager2;
0 5 1 dir Ljava/io/File;
3 5 2 path Ljava/lang/String;
MethodParameters:
Name Flags
dir final
public boolean isFileSystemRoot(java.io.File);
descriptor: (Ljava/io/File;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 9
1: aload 1
instanceof sun.awt.shell.Win32ShellFolder2
ifeq 8
2: aload 1
checkcast sun.awt.shell.Win32ShellFolder2
astore 2
start local 2 3: aload 2
invokevirtual sun.awt.shell.Win32ShellFolder2.isFileSystem:()Z
ifeq 7
aload 2
getfield sun.awt.shell.Win32ShellFolder2.parent:Lsun/awt/shell/ShellFolder;
ifnull 7
4: aload 2
getfield sun.awt.shell.Win32ShellFolder2.parent:Lsun/awt/shell/ShellFolder;
invokestatic sun.awt.shell.Win32ShellFolderManager2.getDrives:()Lsun/awt/shell/Win32ShellFolder2;
invokevirtual sun.awt.shell.ShellFolder.equals:(Ljava/lang/Object;)Z
ifne 6
5: aload 2
getfield sun.awt.shell.Win32ShellFolder2.parent:Lsun/awt/shell/ShellFolder;
invokestatic sun.awt.shell.Win32ShellFolderManager2.getDesktop:()Lsun/awt/shell/Win32ShellFolder2;
invokevirtual sun.awt.shell.ShellFolder.equals:(Ljava/lang/Object;)Z
ifeq 7
aload 0
aload 1
invokevirtual sun.awt.shell.Win32ShellFolderManager2.isDrive:(Ljava/io/File;)Z
ifeq 7
6: StackMap locals: sun.awt.shell.Win32ShellFolder2
StackMap stack:
iconst_1
ireturn
StackMap locals:
StackMap stack:
7: iconst_0
ireturn
end local 2 8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.awt.shell.Win32ShellFolderManager2.isDrive:(Ljava/io/File;)Z
ireturn
9: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/awt/shell/Win32ShellFolderManager2;
0 10 1 dir Ljava/io/File;
3 8 2 sf Lsun/awt/shell/Win32ShellFolder2;
MethodParameters:
Name Flags
dir
private boolean isDrive(java.io.File);
descriptor: (Ljava/io/File;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.File.getPath:()Ljava/lang/String;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.String.length:()I
iconst_3
if_icmpne 2
aload 2
iconst_1
invokevirtual java.lang.String.charAt:(I)C
bipush 58
if_icmpeq 3
2: StackMap locals: java.lang.String
StackMap stack:
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
invokestatic sun.awt.shell.Win32ShellFolder2.listRoots:()[Ljava/io/File;
astore 3
start local 3 4: aload 3
ifnull 5
aload 3
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
aload 1
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 5
iconst_1
ireturn
StackMap locals: java.io.File[]
StackMap stack:
5: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/awt/shell/Win32ShellFolderManager2;
0 6 1 dir Ljava/io/File;
1 6 2 path Ljava/lang/String;
4 6 3 roots [Ljava/io/File;
MethodParameters:
Name Flags
dir
static int compareShellFolders(sun.awt.shell.Win32ShellFolder2, sun.awt.shell.Win32ShellFolder2);
descriptor: (Lsun/awt/shell/Win32ShellFolder2;Lsun/awt/shell/Win32ShellFolder2;)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.awt.shell.Win32ShellFolder2.isSpecial:()Z
istore 2
start local 2 1: aload 1
invokevirtual sun.awt.shell.Win32ShellFolder2.isSpecial:()Z
istore 3
start local 3 2: iload 2
ifne 3
iload 3
ifeq 18
3: StackMap locals: int int
StackMap stack:
getstatic sun.awt.shell.Win32ShellFolderManager2.topFolderList:Ljava/util/List;
ifnonnull 10
4: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 5: aload 4
invokestatic sun.awt.shell.Win32ShellFolderManager2.getPersonal:()Lsun/awt/shell/Win32ShellFolder2;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
6: aload 4
invokestatic sun.awt.shell.Win32ShellFolderManager2.getDesktop:()Lsun/awt/shell/Win32ShellFolder2;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
7: aload 4
invokestatic sun.awt.shell.Win32ShellFolderManager2.getDrives:()Lsun/awt/shell/Win32ShellFolder2;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
8: aload 4
invokestatic sun.awt.shell.Win32ShellFolderManager2.getNetwork:()Lsun/awt/shell/Win32ShellFolder2;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
9: aload 4
putstatic sun.awt.shell.Win32ShellFolderManager2.topFolderList:Ljava/util/List;
end local 4 10: StackMap locals:
StackMap stack:
getstatic sun.awt.shell.Win32ShellFolderManager2.topFolderList:Ljava/util/List;
aload 0
invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
istore 4
start local 4 11: getstatic sun.awt.shell.Win32ShellFolderManager2.topFolderList:Ljava/util/List;
aload 1
invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
istore 5
start local 5 12: iload 4
iflt 14
iload 5
iflt 14
13: iload 4
iload 5
isub
ireturn
14: StackMap locals: int int
StackMap stack:
iload 4
iflt 16
15: iconst_m1
ireturn
16: StackMap locals:
StackMap stack:
iload 5
iflt 18
17: iconst_1
ireturn
end local 5 end local 4 18: StackMap locals:
StackMap stack:
iload 2
ifeq 20
iload 3
ifne 20
19: iconst_m1
ireturn
20: StackMap locals:
StackMap stack:
iload 3
ifeq 22
iload 2
ifne 22
21: iconst_1
ireturn
22: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.awt.shell.Win32ShellFolder2.getAbsolutePath:()Ljava/lang/String;
aload 1
invokevirtual sun.awt.shell.Win32ShellFolder2.getAbsolutePath:()Ljava/lang/String;
invokestatic sun.awt.shell.Win32ShellFolderManager2.compareNames:(Ljava/lang/String;Ljava/lang/String;)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 sf1 Lsun/awt/shell/Win32ShellFolder2;
0 23 1 sf2 Lsun/awt/shell/Win32ShellFolder2;
1 23 2 special1 Z
2 23 3 special2 Z
5 10 4 tmpTopFolderList Ljava/util/ArrayList<Lsun/awt/shell/Win32ShellFolder2;>;
11 18 4 i1 I
12 18 5 i2 I
MethodParameters:
Name Flags
sf1
sf2
static int compareNames(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.String.compareToIgnoreCase:(Ljava/lang/String;)I
istore 2
start local 2 1: iload 2
ifeq 3
2: iload 2
ireturn
3: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 name1 Ljava/lang/String;
0 4 1 name2 Ljava/lang/String;
1 4 2 diff I
MethodParameters:
Name Flags
name1
name2
protected sun.awt.shell.ShellFolder$Invoker createInvoker();
descriptor: ()Lsun/awt/shell/ShellFolder$Invoker;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: new sun.awt.shell.Win32ShellFolderManager2$ComInvoker
dup
invokespecial sun.awt.shell.Win32ShellFolderManager2$ComInvoker.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/awt/shell/Win32ShellFolderManager2;
static native void initializeCom();
descriptor: ()V
flags: (0x0108) ACC_STATIC, ACC_NATIVE
static native void uninitializeCom();
descriptor: ()V
flags: (0x0108) ACC_STATIC, ACC_NATIVE
private static boolean lambda$0(java.lang.SecurityManager, java.io.File);
descriptor: (Ljava/lang/SecurityManager;Ljava/io/File;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
aload 0
invokestatic sun.awt.shell.Win32ShellFolderManager2.checkFile:(Ljava/io/File;Ljava/lang/SecurityManager;)Ljava/io/File;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 file Ljava/io/File;
private static java.io.File[] lambda$1(int);
descriptor: (I)[Ljava/io/File;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: iload 0
anewarray java.io.File
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "Win32ShellFolderManager2.java"
NestMembers:
sun.awt.shell.Win32ShellFolderManager2$1 sun.awt.shell.Win32ShellFolderManager2$ComInvoker sun.awt.shell.Win32ShellFolderManager2$ComInvoker$1 sun.awt.shell.Win32ShellFolderManager2$ComInvoker$2
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public WindowsVersion = sun.awt.OSInfo$WindowsVersion of sun.awt.OSInfo
public abstract Invoker = sun.awt.shell.ShellFolder$Invoker of sun.awt.shell.ShellFolder
MultiResolutionIconImage = sun.awt.shell.Win32ShellFolder2$MultiResolutionIconImage of sun.awt.shell.Win32ShellFolder2
public final SystemIcon = sun.awt.shell.Win32ShellFolder2$SystemIcon of sun.awt.shell.Win32ShellFolder2
sun.awt.shell.Win32ShellFolderManager2$1
private ComInvoker = sun.awt.shell.Win32ShellFolderManager2$ComInvoker of sun.awt.shell.Win32ShellFolderManager2
public final Level = sun.util.logging.PlatformLogger$Level of sun.util.logging.PlatformLogger