/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.util.datasource; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import org.apache.commons.io.input.ReaderInputStream; /** * DataSource implementation to read data from a Reader. */ public class ReaderDataSource implements DataSource { /** * Reader */ private Reader reader; /** * Real or pseudo filename or path name. * * <p> * Including a file suffix mapped to the correct language helps assign the * correct parser. * </p> */ private String dataSourceName; /** * Create the DataSource from the Reader. */ public ReaderDataSource(Reader reader, String dataSourceName) { this.reader = reader; this.dataSourceName = dataSourceName; } /** * Convert the Reader into an InputStream. * <p> * <strong>Note:</strong> This uses the default encoding. * </p> * * @return Derived InputStream * @throws IOException */ @Override public InputStream getInputStream() throws IOException { return new ReaderInputStream(reader); } /** * Return the dataSourceName via the {@link DataSource} Interface method. * * <p> * Both the parameters are ignored * </p> * * @param shortNames * ignored * @param inputFileName * ignored * @return */ @Override public String getNiceFileName(boolean shortNames, String inputFileName) { return getDataSourceName(); } /** * @return the dataSourceName */ public String getDataSourceName() { return dataSourceName; } /** * @param dataSourceName * the dataSourceName to set */ public void setDataSourceName(String dataSourceName) { this.dataSourceName = dataSourceName; } @Override public String toString() { return dataSourceName; } }