From 685f611b550e086b5a551bbbb9c79f103f203a9b Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Wed, 13 May 2015 18:01:43 +0200 Subject: [PATCH] SONAR-6548 Restore support of deprecated org.sonar.api.resources.InputFile --- .../batch/fs/internal/DefaultInputFile.java | 28 +++++++++++++++++-- .../fs/internal/DefaultInputFileTest.java | 6 +++- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java index 62f96db4ff9..5cea4cad69d 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java @@ -29,7 +29,11 @@ import org.sonar.api.utils.PathUtils; 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; @@ -37,11 +41,11 @@ 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; @@ -288,4 +292,24 @@ public class DefaultInputFile implements InputFile { 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())); + } + } diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/batch/fs/internal/DefaultInputFileTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/batch/fs/internal/DefaultInputFileTest.java index 3e3339bf63d..596662d861a 100644 --- a/sonar-plugin-api/src/test/java/org/sonar/api/batch/fs/internal/DefaultInputFileTest.java +++ b/sonar-plugin-api/src/test/java/org/sonar/api/batch/fs/internal/DefaultInputFileTest.java @@ -25,6 +25,7 @@ import org.junit.rules.TemporaryFolder; 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; @@ -36,14 +37,17 @@ public class DefaultInputFileTest { @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(); -- 2.39.5