AbsArchive.java

00001 
00026 package org.objectweb.jonas_lib.genbase.archive;
00027 
00028 import java.io.File;
00029 import java.util.Hashtable;
00030 import java.util.Map;
00031 import java.util.jar.Manifest;
00032 
00033 import org.objectweb.jonas_lib.I18n;
00034 
00041 public abstract class AbsArchive implements Archive {
00042 
00044     private static I18n i18n = I18n.getInstance(AbsArchive.class);
00045 
00047     private File root;
00048 
00050     private Manifest manifest = null;
00051 
00053     private Map files = null;
00054 
00060     public AbsArchive(File file) {
00061         root = file;
00062         files = new Hashtable();
00063     }
00064 
00070     public void addDirectory(File directory) {
00071         addDirectoryIn("", directory);
00072     }
00073 
00081     public void addDirectoryIn(String dirName, File directory) {
00082         File[] childs = directory.listFiles();
00083 
00084         // directory exists ?
00085         if (childs != null) {
00086             for (int i = 0; i < childs.length; i++) {
00087                 if (childs[i].isFile()) {
00088                     // File
00089                     addFileIn(dirName, childs[i]);
00090                 } else {
00091                     // Directory
00092                     addDirectoryIn(dirName + childs[i].getName() + File.separator, childs[i]);
00093                 }
00094             }
00095         }
00096     }
00097 
00103     public void addFile(File file) {
00104         addFileIn("", file);
00105     }
00106 
00113     public void addFile(File file, String name) {
00114         files.put(name, file);
00115     }
00116 
00123     public void addFileIn(String dirName, File file) {
00124         files.put(dirName + file.getName(), file);
00125     }
00126 
00132     public File getRootFile() {
00133         return root;
00134     }
00135 
00141     public String getName() {
00142         return root.getName();
00143     }
00144 
00148     public Manifest getManifest() {
00149         if (manifest == null) {
00150             manifest = new Manifest();
00151         }
00152         return manifest;
00153     }
00157     public void setManifest(Manifest manifest) {
00158         this.manifest = manifest;
00159     }
00163     public static I18n getI18n() {
00164         return i18n;
00165     }
00169     public Map getFiles() {
00170         return files;
00171     }
00172 }

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