import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
+import java.io.BufferedInputStream;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
import java.nio.charset.Charset;
import java.nio.file.Path;
import java.util.Arrays;
/**
* @since 4.2
*/
-public class DefaultInputFile implements InputFile {
+public class DefaultInputFile implements InputFile, org.sonar.api.resources.InputFile {
private final String relativePath;
private final String moduleKey;
- protected Path moduleBaseDir;
+ private Path moduleBaseDir;
private String language;
private Type type = Type.MAIN;
private Status status;
return "[moduleKey=" + moduleKey + ", relative=" + relativePath + ", basedir=" + moduleBaseDir + "]";
}
+ @Override
+ public File getFileBaseDir() {
+ return moduleBaseDir.toFile();
+ }
+
+ @Override
+ public File getFile() {
+ return file();
+ }
+
+ @Override
+ public String getRelativePath() {
+ return relativePath();
+ }
+
+ @Override
+ public InputStream getInputStream() throws FileNotFoundException {
+ return new BufferedInputStream(new FileInputStream(file()));
+ }
+
}
import org.sonar.api.batch.fs.InputFile;
import java.io.File;
+import java.nio.file.Path;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
@Test
public void test() throws Exception {
+ Path baseDir = temp.newFolder().toPath();
DefaultInputFile inputFile = new DefaultInputFile("ABCDE", "src/Foo.php")
- .setModuleBaseDir(temp.newFolder().toPath())
+ .setModuleBaseDir(baseDir)
.setLines(42)
.setLanguage("php")
.setStatus(InputFile.Status.ADDED)
.setType(InputFile.Type.TEST);
assertThat(inputFile.relativePath()).isEqualTo("src/Foo.php");
+ assertThat(inputFile.getRelativePath()).isEqualTo("src/Foo.php");
+ assertThat(inputFile.getFile()).isEqualTo(new File(baseDir.toFile(), "src/Foo.php"));
assertThat(new File(inputFile.relativePath())).isRelative();
assertThat(inputFile.absolutePath()).endsWith("Foo.php");
assertThat(new File(inputFile.absolutePath())).isAbsolute();