1 package org.eclipse.jetty.util.component;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.util.ArrayList;
6 import java.util.Collection;
7 import java.util.List;
8
9 import org.eclipse.jetty.util.IO;
10 import org.eclipse.jetty.util.log.Log;
11 import org.eclipse.jetty.util.log.Logger;
12 import org.eclipse.jetty.util.resource.Resource;
13
14 public class FileDestroyable implements Destroyable
15 {
16 private static final Logger LOG = Log.getLogger(FileDestroyable.class);
17 final List<File> _files = new ArrayList<File>();
18
19 public FileDestroyable()
20 {
21 }
22
23 public FileDestroyable(String file) throws IOException
24 {
25 _files.add(Resource.newResource(file).getFile());
26 }
27
28 public FileDestroyable(File file)
29 {
30 _files.add(file);
31 }
32
33 public void addFile(String file) throws IOException
34 {
35 _files.add(Resource.newResource(file).getFile());
36 }
37
38 public void addFile(File file)
39 {
40 _files.add(file);
41 }
42
43 public void addFiles(Collection<File> files)
44 {
45 _files.addAll(files);
46 }
47
48 public void removeFile(String file) throws IOException
49 {
50 _files.remove(Resource.newResource(file).getFile());
51 }
52
53 public void removeFile(File file)
54 {
55 _files.remove(file);
56 }
57
58 public void destroy()
59 {
60 for (File file : _files)
61 {
62 if (file.exists())
63 {
64 LOG.debug("Destroy {}",file);
65 IO.delete(file);
66 }
67 }
68 }
69
70 }