class sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator implements java.util.Iterator<java.nio.file.Path>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator
super_class: java.lang.Object
{
private boolean atEof;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String first;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.nio.file.Path nextEntry;
descriptor: Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
private java.lang.String prefix;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
final sun.nio.fs.WindowsDirectoryStream this$0;
descriptor: Lsun/nio/fs/WindowsDirectoryStream;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(sun.nio.fs.WindowsDirectoryStream, java.lang.String);
descriptor: (Lsun/nio/fs/WindowsDirectoryStream;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.this$0:Lsun/nio/fs/WindowsDirectoryStream;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.atEof:Z
2: aload 0
aload 2
putfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.first:Ljava/lang/String;
3: aload 1
getfield sun.nio.fs.WindowsDirectoryStream.dir:Lsun/nio/fs/WindowsPath;
invokevirtual sun.nio.fs.WindowsPath.needsSlashWhenResolving:()Z
ifeq 6
4: aload 0
new java.lang.StringBuilder
dup
aload 1
getfield sun.nio.fs.WindowsDirectoryStream.dir:Lsun/nio/fs/WindowsPath;
invokevirtual sun.nio.fs.WindowsPath.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "\\"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.prefix:Ljava/lang/String;
5: goto 7
6: StackMap locals: sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator sun.nio.fs.WindowsDirectoryStream java.lang.String
StackMap stack:
aload 0
aload 1
getfield sun.nio.fs.WindowsDirectoryStream.dir:Lsun/nio/fs/WindowsPath;
invokevirtual sun.nio.fs.WindowsPath.toString:()Ljava/lang/String;
putfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.prefix:Ljava/lang/String;
7: StackMap locals:
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator;
0 8 2 first Ljava/lang/String;
MethodParameters:
Name Flags
this$0 final
first
private boolean isSelfOrParent(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "."
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 1
aload 1
ldc ".."
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator;
0 2 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
private java.nio.file.Path acceptEntry(java.lang.String, java.nio.file.attribute.BasicFileAttributes);
descriptor: (Ljava/lang/String;Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.this$0:Lsun/nio/fs/WindowsDirectoryStream;
getfield sun.nio.fs.WindowsDirectoryStream.dir:Lsun/nio/fs/WindowsPath;
invokevirtual sun.nio.fs.WindowsPath.getFileSystem:()Lsun/nio/fs/WindowsFileSystem;
new java.lang.StringBuilder
dup
aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.prefix: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
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokestatic sun.nio.fs.WindowsPath.createFromNormalizedPath:(Lsun/nio/fs/WindowsFileSystem;Ljava/lang/String;Ljava/nio/file/attribute/BasicFileAttributes;)Lsun/nio/fs/WindowsPath;
1: astore 3
start local 3 2: aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.this$0:Lsun/nio/fs/WindowsDirectoryStream;
getfield sun.nio.fs.WindowsDirectoryStream.filter:Ljava/nio/file/DirectoryStream$Filter;
aload 3
invokeinterface java.nio.file.DirectoryStream$Filter.accept:(Ljava/lang/Object;)Z
ifeq 7
3: aload 3
4: areturn
5: StackMap locals: sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator java.lang.String java.nio.file.attribute.BasicFileAttributes java.nio.file.Path
StackMap stack: java.io.IOException
astore 4
start local 4 6: new java.nio.file.DirectoryIteratorException
dup
aload 4
invokespecial java.nio.file.DirectoryIteratorException.<init>:(Ljava/io/IOException;)V
athrow
end local 4 7: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator;
0 8 1 s Ljava/lang/String;
0 8 2 attrs Ljava/nio/file/attribute/BasicFileAttributes;
2 8 3 entry Ljava/nio/file/Path;
6 7 4 ioe Ljava/io/IOException;
Exception table:
from to target type
2 4 5 Class java.io.IOException
MethodParameters:
Name Flags
s
attrs
private java.nio.file.Path readNextEntry();
descriptor: ()Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.first:Ljava/lang/String;
ifnull 7
1: aload 0
aload 0
aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.first:Ljava/lang/String;
invokevirtual sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.isSelfOrParent:(Ljava/lang/String;)Z
ifeq 2
aconst_null
goto 3
StackMap locals:
StackMap stack: sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator
2: aload 0
aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.first:Ljava/lang/String;
aconst_null
invokevirtual sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.acceptEntry:(Ljava/lang/String;Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/nio/file/Path;
StackMap locals: sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator
StackMap stack: sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator java.nio.file.Path
3: putfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.nextEntry:Ljava/nio/file/Path;
4: aload 0
aconst_null
putfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.first:Ljava/lang/String;
5: aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.nextEntry:Ljava/nio/file/Path;
ifnull 7
6: aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.nextEntry:Ljava/nio/file/Path;
areturn
7: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 8: aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.this$0:Lsun/nio/fs/WindowsDirectoryStream;
getfield sun.nio.fs.WindowsDirectoryStream.closeLock:Ljava/lang/Object;
dup
astore 3
monitorenter
9: aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.this$0:Lsun/nio/fs/WindowsDirectoryStream;
getfield sun.nio.fs.WindowsDirectoryStream.isOpen:Z
ifeq 15
10: aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.this$0:Lsun/nio/fs/WindowsDirectoryStream;
getfield sun.nio.fs.WindowsDirectoryStream.handle:J
aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.this$0:Lsun/nio/fs/WindowsDirectoryStream;
getfield sun.nio.fs.WindowsDirectoryStream.findDataBuffer:Lsun/nio/fs/NativeBuffer;
invokevirtual sun.nio.fs.NativeBuffer.address:()J
invokestatic sun.nio.fs.WindowsNativeDispatcher.FindNextFile:(JJ)Ljava/lang/String;
astore 1
11: goto 15
StackMap locals: sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator java.lang.String top java.lang.Object
StackMap stack: sun.nio.fs.WindowsException
12: astore 4
start local 4 13: aload 4
aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.this$0:Lsun/nio/fs/WindowsDirectoryStream;
getfield sun.nio.fs.WindowsDirectoryStream.dir:Lsun/nio/fs/WindowsPath;
invokevirtual sun.nio.fs.WindowsException.asIOException:(Lsun/nio/fs/WindowsPath;)Ljava/io/IOException;
astore 5
start local 5 14: new java.nio.file.DirectoryIteratorException
dup
aload 5
invokespecial java.nio.file.DirectoryIteratorException.<init>:(Ljava/io/IOException;)V
athrow
end local 5 end local 4 15: StackMap locals:
StackMap stack:
aload 1
ifnonnull 19
16: aload 0
iconst_1
putfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.atEof:Z
17: aload 3
monitorexit
18: aconst_null
areturn
19: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.isSelfOrParent:(Ljava/lang/String;)Z
ifeq 22
20: aload 3
monitorexit
21: goto 7
22: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.this$0:Lsun/nio/fs/WindowsDirectoryStream;
getfield sun.nio.fs.WindowsDirectoryStream.findDataBuffer:Lsun/nio/fs/NativeBuffer;
invokevirtual sun.nio.fs.NativeBuffer.address:()J
invokestatic sun.nio.fs.WindowsFileAttributes.fromFindData:(J)Lsun/nio/fs/WindowsFileAttributes;
23: astore 2
start local 2 24: aload 3
monitorexit
25: goto 28
end local 2 StackMap locals:
StackMap stack: java.lang.Throwable
26: aload 3
monitorexit
27: athrow
start local 2 28: StackMap locals: sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator java.lang.String sun.nio.fs.WindowsFileAttributes
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.acceptEntry:(Ljava/lang/String;Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/nio/file/Path;
astore 3
start local 3 29: aload 3
ifnull 7
30: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lsun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator;
8 31 1 name Ljava/lang/String;
24 26 2 attrs Lsun/nio/fs/WindowsFileAttributes;
28 31 2 attrs Lsun/nio/fs/WindowsFileAttributes;
13 15 4 x Lsun/nio/fs/WindowsException;
14 15 5 ioe Ljava/io/IOException;
29 31 3 entry Ljava/nio/file/Path;
Exception table:
from to target type
9 11 12 Class sun.nio.fs.WindowsException
9 18 26 any
19 21 26 any
22 25 26 any
26 27 26 any
public synchronized boolean hasNext();
descriptor: ()Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.nextEntry:Ljava/nio/file/Path;
ifnonnull 2
aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.atEof:Z
ifne 2
1: aload 0
aload 0
invokevirtual sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.readNextEntry:()Ljava/nio/file/Path;
putfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.nextEntry:Ljava/nio/file/Path;
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.nextEntry:Ljava/nio/file/Path;
ifnull 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator;
public synchronized java.nio.file.Path next();
descriptor: ()Ljava/nio/file/Path;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.nextEntry:Ljava/nio/file/Path;
ifnonnull 4
aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.atEof:Z
ifne 4
2: aload 0
invokevirtual sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.readNextEntry:()Ljava/nio/file/Path;
astore 1
3: goto 6
4: StackMap locals: java.nio.file.Path
StackMap stack:
aload 0
getfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.nextEntry:Ljava/nio/file/Path;
astore 1
5: aload 0
aconst_null
putfield sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.nextEntry:Ljava/nio/file/Path;
6: StackMap locals:
StackMap stack:
aload 1
ifnonnull 8
7: new java.util.NoSuchElementException
dup
invokespecial java.util.NoSuchElementException.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator;
1 9 1 result Ljava/nio/file/Path;
public void remove();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator;
public java.lang.Object next();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.next:()Ljava/nio/file/Path;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/util/Iterator<Ljava/nio/file/Path;>;
SourceFile: "WindowsDirectoryStream.java"
NestHost: sun.nio.fs.WindowsDirectoryStream
InnerClasses:
public abstract Filter = java.nio.file.DirectoryStream$Filter of java.nio.file.DirectoryStream
private WindowsDirectoryIterator = sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator of sun.nio.fs.WindowsDirectoryStream