View Javadoc

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          // FIXME: this could probably be done better
34          return zipFile.getName() + ":" + zipEntry.getName();
35      }
36  }