View Javadoc

1   package com.atlassian.core.spool;
2   
3   import java.io.File;
4   import java.io.IOException;
5   
6   /**
7    * Default file factory for spooling. Creates a new temporary file via File::createTempFile().
8    * The file is automatically scheduled for deletion via File::deleteOnExit()
9    *
10   * @see java.io.File#createTempFile(String, String, File)
11   * @see File#deleteOnExit()
12   */
13  public class DefaultSpoolFileFactory implements FileFactory {
14      private static final DefaultSpoolFileFactory INSTANCE = new DefaultSpoolFileFactory();
15  
16      private String spoolPrefix = "spool-";
17      private String spoolSuffix = ".tmp";
18      private File spoolDirectory = null;
19  
20      /**
21       * @return a singleton instance of this file factory, using default settings
22       */
23      public static DefaultSpoolFileFactory getInstance() {
24          return INSTANCE;
25      }
26  
27      public void setSpoolPrefix(String spoolPrefix) {
28          this.spoolPrefix = spoolPrefix;
29      }
30  
31      public void setSpoolSuffix(String spoolSuffix) {
32          this.spoolSuffix = spoolSuffix;
33      }
34  
35      public void setSpoolDirectory(File spoolDirectory) {
36          this.spoolDirectory = spoolDirectory;
37      }
38  
39      public File createNewFile() throws IOException {
40          File file = File.createTempFile(spoolPrefix, spoolSuffix, spoolDirectory);
41          file.deleteOnExit();
42          return file;
43      }
44  }