diff options
Diffstat (limited to 'samples/src/main/java')
-rw-r--r-- | samples/src/main/java/fi/iki/elonen/TempFilesServer.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/samples/src/main/java/fi/iki/elonen/TempFilesServer.java b/samples/src/main/java/fi/iki/elonen/TempFilesServer.java new file mode 100644 index 0000000..84eb871 --- /dev/null +++ b/samples/src/main/java/fi/iki/elonen/TempFilesServer.java @@ -0,0 +1,55 @@ +package fi.iki.elonen; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Paul S. Hawke (paul.hawke@gmail.com) + * On: 3/9/13 at 12:47 AM + */ +public class TempFilesServer extends DebugServer { + public static void main(String[] args) { + TempFilesServer server = new TempFilesServer(); + server.setTempFileManagerFactory(new ExampleManagerFactory()); + ServerRunner.executeInstance(server); + } + + private static class ExampleManagerFactory implements TempFileManagerFactory { + @Override + public TempFileManager create() { + return new ExampleManager(); + } + } + + private static class ExampleManager implements TempFileManager { + private final String tmpdir; + private final List<TempFile> tempFiles; + + private ExampleManager() { + tmpdir = System.getProperty("java.io.tmpdir"); + tempFiles = new ArrayList<TempFile>(); + } + + @Override + public TempFile createTempFile() throws Exception { + DefaultTempFile tempFile = new DefaultTempFile(tmpdir); + tempFiles.add(tempFile); + System.out.println("Created tempFile: " + tempFile.getName()); + return tempFile; + } + + @Override + public void clear() { + if (!tempFiles.isEmpty()) { + System.out.println("Cleaning up:"); + } + for (TempFile file : tempFiles) { + try { + System.out.println(" "+file.getName()); + file.delete(); + } catch (Exception ignored) {} + } + tempFiles.clear(); + } + } +} |