View Javadoc

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