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 }