1 /***
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package net.sourceforge.pmd;
5
6 import java.io.IOException;
7 import java.io.InputStream;
8 import java.util.zip.ZipEntry;
9 import java.util.zip.ZipFile;
10
11 /***
12 * DataSource implementation to read data from an entry
13 * in a zip or jar file.
14 */
15 public class ZipDataSource implements DataSource {
16 private ZipFile zipFile;
17 private ZipEntry zipEntry;
18
19 /***
20 * @param zipFile the ZipFile
21 * @param zipEntry the ZipEntry containing the file to read
22 */
23 public ZipDataSource(ZipFile zipFile, ZipEntry zipEntry) {
24 this.zipFile = zipFile;
25 this.zipEntry = zipEntry;
26 }
27
28 public InputStream getInputStream() throws IOException {
29 return zipFile.getInputStream(zipEntry);
30 }
31
32 public String getNiceFileName(boolean shortNames, String inputFileName) {
33
34 return zipFile.getName() + ":" + zipEntry.getName();
35 }
36 }