00001
00026 package org.objectweb.jonas_lib.genbase.archive;
00027
00028 import java.io.File;
00029 import java.io.IOException;
00030 import java.io.InputStream;
00031 import java.util.List;
00032 import java.util.Map;
00033 import java.util.jar.Manifest;
00034
00035 import org.objectweb.jonas_lib.I18n;
00036 import org.objectweb.jonas_lib.genbase.GenBaseException;
00037 import org.objectweb.jonas_lib.genbase.generator.Config;
00038 import org.objectweb.jonas_lib.genbase.generator.GeneratorFactories;
00039 import org.objectweb.jonas_lib.genbase.generator.GeneratorFactory;
00040
00041 import org.objectweb.jonas.common.Log;
00042
00043 import org.objectweb.util.monolog.api.Logger;
00044
00045
00052 public abstract class J2EEArchive implements Archive {
00054 private static I18n i18n = I18n.getInstance(J2EEArchive.class);
00055
00057 private static Logger logger = Log.getLogger(Log.JONAS_GENBASE_PREFIX);
00058
00060 private Archive archive;
00061
00063 private ClassLoader moduleClassloader = null;
00064
00070 public J2EEArchive(Archive archive) {
00071 this.archive = archive;
00072 }
00073
00079 public void addDirectory(File directory) {
00080 archive.addDirectory(directory);
00081 }
00082
00090 public void addDirectoryIn(String dirName, File directory) {
00091 archive.addDirectoryIn(dirName, directory);
00092 }
00093
00099 public void addFile(File file) {
00100 archive.addFile(file);
00101 }
00102
00109 public void addFile(File file, String name) {
00110 archive.addFile(file, name);
00111 }
00112
00119 public void addFileIn(String dirName, File file) {
00120 archive.addFileIn(dirName, file);
00121 }
00122
00128 public File getRootFile() {
00129 return archive.getRootFile();
00130 }
00131
00137 public Manifest getManifest() {
00138 return archive.getManifest();
00139 }
00140
00150 public InputStream getInputStream(String filename)
00151 throws IOException {
00152 return archive.getInputStream(filename);
00153 }
00154
00161 public List getContainedFiles() {
00162 return archive.getContainedFiles();
00163 }
00164
00170 public boolean isPacked() {
00171 return archive.isPacked();
00172 }
00173
00179 public String getName() {
00180 return archive.getName();
00181 }
00182
00189 public abstract Map getDescriptors();
00190
00198 public abstract boolean omit(String name);
00199
00203 public static I18n getI18n() {
00204 return i18n;
00205 }
00209 public static Logger getLogger() {
00210 return logger;
00211 }
00215 public Archive getArchive() {
00216 return archive;
00217 }
00221 public void setArchive(Archive archive) {
00222 this.archive = archive;
00223 }
00224
00229 public abstract void initialize() throws GenBaseException;
00230
00234 public ClassLoader getModuleClassloader() {
00235 return moduleClassloader;
00236 }
00237
00241 public void setModuleClassloader(ClassLoader moduleClassloader) {
00242 this.moduleClassloader = moduleClassloader;
00243 }
00244
00248 protected boolean isDTDsAllowed() {
00249 GeneratorFactory gf = GeneratorFactories.getCurrentFactory();
00250 if (gf == null) {
00251 throw new IllegalStateException(i18n.getMessage("J2EEArchive.isDTDsAllowed.noFactory"));
00252 }
00253 Config config = gf.getConfiguration();
00254 if (config == null) {
00255 throw new IllegalStateException(i18n.getMessage("J2EEArchive.isDTDsAllowed.noConfig"));
00256 }
00257 return config.isDTDsAllowed();
00258 }
00259 }