/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.util.datasource; import java.io.IOException; import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; /** * DataSource implementation to read data from an entry in a zip or jar file. */ public class ZipDataSource implements DataSource { private ZipFile zipFile; private ZipEntry zipEntry; /** * @param zipFile * the ZipFile * @param zipEntry * the ZipEntry containing the file to read */ public ZipDataSource(ZipFile zipFile, ZipEntry zipEntry) { this.zipFile = zipFile; this.zipEntry = zipEntry; } @Override public InputStream getInputStream() throws IOException { return zipFile.getInputStream(zipEntry); } @Override public String getNiceFileName(boolean shortNames, String inputFileName) { // FIXME: this could probably be done better return zipFile.getName() + ":" + zipEntry.getName(); } }