package org.reflections.vfs;
import org.reflections.Reflections;
import java.io.IOException;
import java.util.jar.JarFile;
public class ZipDir implements Vfs.Dir {
final java.util.zip.ZipFile jarFile;
public ZipDir(JarFile jarFile) {
this.jarFile = jarFile;
}
public String getPath() {
return jarFile.getName();
}
public Iterable<Vfs.File> getFiles() {
return () -> jarFile.stream()
.filter(entry -> !entry.isDirectory())
.map(entry -> (Vfs.File) new ZipFile(ZipDir.this, entry))
.iterator();
}
public void close() {
try { jarFile.close(); } catch (IOException e) {
if (Reflections.log != null) {
Reflections.log.warn("Could not close JarFile", e);
}
}
}
@Override
public String toString() {
return jarFile.getName();
}
}