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.resource.Resource;
12
13 public class FileDestroyable implements Destroyable
14 {
15 final List<File> _files = new ArrayList<File>();
16
17 public FileDestroyable()
18 {
19 }
20
21 public FileDestroyable(String file) throws IOException
22 {
23 _files.add(Resource.newResource(file).getFile());
24 }
25
26 public FileDestroyable(File file)
27 {
28 _files.add(file);
29 }
30
31 public void addFile(String file) throws IOException
32 {
33 _files.add(Resource.newResource(file).getFile());
34 }
35
36 public void addFile(File file)
37 {
38 _files.add(file);
39 }
40
41 public void addFiles(Collection<File> files)
42 {
43 _files.addAll(files);
44 }
45
46 public void removeFile(String file) throws IOException
47 {
48 _files.remove(Resource.newResource(file).getFile());
49 }
50
51 public void removeFile(File file)
52 {
53 _files.remove(file);
54 }
55
56 public void destroy()
57 {
58 for (File file : _files)
59 {
60 if (file.exists())
61 {
62 Log.debug("Destroy {}",file);
63 IO.delete(file);
64 }
65 }
66 }
67
68 }