protected void | fillMapsFromArchive(Resource src, java.lang.String encoding, java.util.Map fileEntries, java.util.Map matchFileEntries, java.util.Map dirEntries, java.util.Map matchDirEntries)Fills the file and directory maps with resources read from the
archive.
ZipEntry entry = null;
ZipFile zf = null;
File srcFile = null;
if (src instanceof FileResource) {
srcFile = ((FileResource) src).getFile();
} else {
throw new BuildException("only file resources are supported");
}
try {
try {
zf = new ZipFile(srcFile, encoding);
} catch (ZipException ex) {
throw new BuildException("problem reading " + srcFile, ex);
} catch (IOException ex) {
throw new BuildException("problem opening " + srcFile, ex);
}
Enumeration e = zf.getEntries();
while (e.hasMoreElements()) {
entry = (ZipEntry) e.nextElement();
Resource r = new ZipResource(srcFile, encoding, entry);
String name = entry.getName();
if (entry.isDirectory()) {
name = trimSeparator(name);
dirEntries.put(name, r);
if (match(name)) {
matchDirEntries.put(name, r);
}
} else {
fileEntries.put(name, r);
if (match(name)) {
matchFileEntries.put(name, r);
}
}
}
} finally {
if (zf != null) {
try {
zf.close();
} catch (IOException ex) {
// swallow
}
}
}
|