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
00085 if (childs != null) {
00086 for (int i = 0; i < childs.length; i++) {
00087 if (childs[i].isFile()) {
00088
00089 addFileIn(dirName, childs[i]);
00090 } else {
00091
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 }