TempRepository.java

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             // delete only if file exists
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                 // no childs
00114                 return f.delete();
00115             } else {
00116                 // childs
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         // create file
00136         File tmp = File.createTempFile("wsgen", null);
00137 
00138         if (!tmp.delete()) {
00139             throw new IOException("Cannot delete temporary file");
00140         }
00141 
00142         // create directory
00143         if (!tmp.mkdir()) {
00144             throw new IOException("Cannot create temporary directory");
00145         }
00146 
00147         // add in repo
00148         addDir(tmp);
00149 
00150         return tmp;
00151     }
00152 }

Generated on Tue Feb 15 15:05:54 2005 for JOnAS by  doxygen 1.3.9.1