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 is relative to
28 * @return String
29 */
30 public String getNiceFileName(boolean shortNames, String inputFileName);
31 }