From: Julien HENRY Date: Wed, 13 May 2015 16:01:43 +0000 (+0200) Subject: SONAR-6548 Restore support of deprecated org.sonar.api.resources.InputFile X-Git-Tag: 5.2-RC1~1959 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=685f611b550e086b5a551bbbb9c79f103f203a9b;p=sonarqube.git SONAR-6548 Restore support of deprecated org.sonar.api.resources.InputFile --- 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();