public class org.junit.rules.TemporaryFolder extends org.junit.rules.ExternalResource
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.junit.rules.TemporaryFolder
super_class: org.junit.rules.ExternalResource
{
private final java.io.File parentFolder;
descriptor: Ljava/io/File;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.io.File folder;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokespecial org.junit.rules.TemporaryFolder.<init>:(Ljava/io/File;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/junit/rules/TemporaryFolder;
public void <init>(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.junit.rules.ExternalResource.<init>:()V
1: aload 0
aload 1
putfield org.junit.rules.TemporaryFolder.parentFolder:Ljava/io/File;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/junit/rules/TemporaryFolder;
0 3 1 parentFolder Ljava/io/File;
MethodParameters:
Name Flags
parentFolder
protected void before();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.junit.rules.TemporaryFolder.create:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/junit/rules/TemporaryFolder;
Exceptions:
throws java.lang.Throwable
protected void after();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.junit.rules.TemporaryFolder.delete:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/junit/rules/TemporaryFolder;
public void create();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
aload 0
getfield org.junit.rules.TemporaryFolder.parentFolder:Ljava/io/File;
invokevirtual org.junit.rules.TemporaryFolder.createTemporaryFolderIn:(Ljava/io/File;)Ljava/io/File;
putfield org.junit.rules.TemporaryFolder.folder:Ljava/io/File;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/junit/rules/TemporaryFolder;
Exceptions:
throws java.io.IOException
public java.io.File newFile(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new java.io.File
dup
aload 0
invokevirtual org.junit.rules.TemporaryFolder.getRoot:()Ljava/io/File;
aload 1
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 2
start local 2 1: aload 2
invokevirtual java.io.File.createNewFile:()Z
ifne 5
2: new java.io.IOException
dup
3: new java.lang.StringBuilder
dup
ldc "a file with the name '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' already exists in the test folder"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.io.File
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/junit/rules/TemporaryFolder;
0 6 1 fileName Ljava/lang/String;
1 6 2 file Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fileName
public java.io.File newFile();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: ldc "junit"
aconst_null
aload 0
invokevirtual org.junit.rules.TemporaryFolder.getRoot:()Ljava/io/File;
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/junit/rules/TemporaryFolder;
Exceptions:
throws java.io.IOException
public java.io.File newFolder(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 1
aastore
invokevirtual org.junit.rules.TemporaryFolder.newFolder:([Ljava/lang/String;)Ljava/io/File;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/junit/rules/TemporaryFolder;
0 1 1 folder Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
folder
public java.io.File newFolder(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Ljava/io/File;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.junit.rules.TemporaryFolder.getRoot:()Ljava/io/File;
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 11
3: StackMap locals: java.io.File int
StackMap stack:
aload 1
iload 3
aaload
astore 4
start local 4 4: aload 0
aload 4
invokevirtual org.junit.rules.TemporaryFolder.validateFolderName:(Ljava/lang/String;)V
5: new java.io.File
dup
aload 2
aload 4
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 2
6: aload 2
invokevirtual java.io.File.mkdir:()Z
ifne 10
aload 0
iload 3
aload 1
invokevirtual org.junit.rules.TemporaryFolder.isLastElementInArray:(I[Ljava/lang/String;)Z
ifeq 10
7: new java.io.IOException
dup
8: new java.lang.StringBuilder
dup
ldc "a folder with the name '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' already exists"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 4 10: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
aload 1
arraylength
if_icmplt 3
end local 3 12: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/junit/rules/TemporaryFolder;
0 13 1 folderNames [Ljava/lang/String;
1 13 2 file Ljava/io/File;
2 12 3 i I
4 10 4 folderName Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
folderNames
private void validateFolderName(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 2
start local 2 1: aload 2
invokevirtual java.io.File.getParent:()Ljava/lang/String;
ifnull 4
2: ldc "Folder name cannot consist of multiple path components separated by a file separator. Please use newFolder('MyParentFolder','MyFolder') to create hierarchies of folders"
astore 3
start local 3 3: new java.io.IOException
dup
aload 3
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 3 4: StackMap locals: java.io.File
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/junit/rules/TemporaryFolder;
0 5 1 folderName Ljava/lang/String;
1 5 2 tempFile Ljava/io/File;
3 4 3 errorMsg Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
folderName
private boolean isLastElementInArray(int, java.lang.String[]);
descriptor: (I[Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
aload 2
arraylength
iconst_1
isub
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/junit/rules/TemporaryFolder;
0 2 1 index I
0 2 2 array [Ljava/lang/String;
MethodParameters:
Name Flags
index
array
public java.io.File newFolder();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.junit.rules.TemporaryFolder.getRoot:()Ljava/io/File;
invokevirtual org.junit.rules.TemporaryFolder.createTemporaryFolderIn:(Ljava/io/File;)Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/junit/rules/TemporaryFolder;
Exceptions:
throws java.io.IOException
private java.io.File createTemporaryFolderIn(java.io.File);
descriptor: (Ljava/io/File;)Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: ldc "junit"
ldc ""
aload 1
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
astore 2
start local 2 1: aload 2
invokevirtual java.io.File.delete:()Z
pop
2: aload 2
invokevirtual java.io.File.mkdir:()Z
pop
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/junit/rules/TemporaryFolder;
0 4 1 parentFolder Ljava/io/File;
1 4 2 createdFolder Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
parentFolder
public java.io.File getRoot();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.junit.rules.TemporaryFolder.folder:Ljava/io/File;
ifnonnull 4
1: new java.lang.IllegalStateException
dup
2: ldc "the temporary folder has not yet been created"
3: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.junit.rules.TemporaryFolder.folder:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/junit/rules/TemporaryFolder;
public void delete();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.junit.rules.TemporaryFolder.folder:Ljava/io/File;
ifnull 2
1: aload 0
aload 0
getfield org.junit.rules.TemporaryFolder.folder:Ljava/io/File;
invokevirtual org.junit.rules.TemporaryFolder.recursiveDelete:(Ljava/io/File;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/junit/rules/TemporaryFolder;
private void recursiveDelete(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.File.listFiles:()[Ljava/io/File;
astore 2
start local 2 1: aload 2
ifnull 7
2: aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: org.junit.rules.TemporaryFolder java.io.File java.io.File[] top int int java.io.File[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 0
aload 3
invokevirtual org.junit.rules.TemporaryFolder.recursiveDelete:(Ljava/io/File;)V
end local 3 5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 3
7: StackMap locals: org.junit.rules.TemporaryFolder java.io.File java.io.File[]
StackMap stack:
aload 1
invokevirtual java.io.File.delete:()Z
pop
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/junit/rules/TemporaryFolder;
0 9 1 file Ljava/io/File;
1 9 2 files [Ljava/io/File;
4 5 3 each Ljava/io/File;
MethodParameters:
Name Flags
file
}
SourceFile: "TemporaryFolder.java"