1 package org.objectweb.celtix.tools.utils; 2 3 import java.io.File ; 4 import java.io.FileWriter ; 5 import java.io.IOException ; 6 import java.io.Writer ; 7 import java.util.logging.Logger ; 8 9 import org.objectweb.celtix.common.i18n.Message; 10 import org.objectweb.celtix.common.logging.LogUtils; 11 import org.objectweb.celtix.tools.common.ToolException; 12 13 public class FileWriterUtil { 14 private static final Logger LOG = LogUtils.getL7dLogger(FileWriterUtil.class); 15 private final File target; 16 17 public FileWriterUtil(String targetDir) throws ToolException { 18 target = new File (targetDir); 19 if (!(target.exists()) || !(target.isDirectory())) { 20 Message msg = new Message("DIRECTORY_NOT_EXIST", LOG, target); 21 throw new ToolException(msg); 22 } 23 } 24 25 public Writer getWriter(String packageName, String fileName) throws IOException { 26 File dir = buildDir(packageName); 27 File fn = new File (dir , fileName); 28 if (fn.exists() && !fn.delete()) { 29 throw new IOException (fn + ": Can't delete previous version"); 30 } 31 return new FileWriter (fn); 32 } 33 34 public boolean isCollision(String packageName, String fileName) throws ToolException { 35 File dir = buildDir(packageName); 36 return fileExist(dir, fileName); 37 } 38 39 private File buildDir(String packageName) { 40 File dir; 41 if (packageName == null) { 42 dir = target; 43 } else { 44 dir = new File (target, toDir(packageName)); 45 } 46 if (!dir.exists()) { 47 dir.mkdirs(); 48 } 49 return dir; 50 } 51 52 private boolean fileExist(File dir, String fileName) { 53 return new File (dir, fileName).exists(); 54 } 55 56 private String toDir(String packageName) { 57 return packageName.replace('.' , File.separatorChar); 58 } 59 60 } 61 | Popular Tags |