00001
00025 package org.objectweb.jonas_lib.genbase.utils;
00026
00027 import java.io.File;
00028 import java.io.IOException;
00029 import java.util.Iterator;
00030 import java.util.List;
00031 import java.util.Vector;
00032
00042 public class TempRepository {
00043
00045 private static TempRepository instance = null;
00046
00048 private List directories;
00049
00053 private TempRepository() {
00054 directories = new Vector();
00055 }
00056
00062 public static TempRepository getInstance() {
00063 if (instance == null) {
00064 instance = new TempRepository();
00065 }
00066
00067 return instance;
00068 }
00069
00075 public void addDir(File file) {
00076 directories.add(file);
00077 }
00078
00085 public boolean deleteAll() {
00086 boolean result = true;
00087
00088 for (Iterator i = directories.iterator(); i.hasNext();) {
00089 File dir = (File) i.next();
00090
00091
00092 if (dir.exists()) {
00093 result &= delete(dir);
00094 }
00095 }
00096
00097 return result;
00098 }
00099
00107 private boolean delete(File f) {
00108 if (f.isFile()) {
00109 return f.delete();
00110 } else {
00111 File[] childs = f.listFiles();
00112 if (childs == null) {
00113
00114 return f.delete();
00115 } else {
00116
00117 boolean result = true;
00118 for (int i = 0; i < childs.length; i++) {
00119 result &= delete(childs[i]);
00120 }
00121 return result && f.delete();
00122 }
00123 }
00124 }
00125
00134 public File createDir() throws IOException {
00135
00136 File tmp = File.createTempFile("wsgen", null);
00137
00138 if (!tmp.delete()) {
00139 throw new IOException("Cannot delete temporary file");
00140 }
00141
00142
00143 if (!tmp.mkdir()) {
00144 throw new IOException("Cannot create temporary directory");
00145 }
00146
00147
00148 addDir(tmp);
00149
00150 return tmp;
00151 }
00152 }