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 9 /*** 10 * Represents a source file to be analyzed. 11 * Different implementations can get the source file 12 * from different places: the filesystem, a zip or jar file, etc. 13 */ 14 public interface DataSource { 15 /*** 16 * Get an InputStream on the source file. 17 * 18 * @return the InputStream reading the source file 19 * @throws IOException if the file can't be opened 20 */ 21 public InputStream getInputStream() throws IOException; 22 23 /*** 24 * Return a nice version of the filename. 25 * 26 * @param shortNames true if short names are being used 27 * @param inputFileName name of a "master" file this file 28 * is relative to 29 */ 30 public String getNiceFileName(boolean shortNames, String inputFileName); 31 }