KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > tools > utils > FileWriterUtil


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