aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2014-03-14 12:41:20 +0100
committerSimon Brandhof <simon.brandhof@gmail.com>2014-03-14 12:44:24 +0100
commit69376773bc12d598e625bc3030abff289f9194f3 (patch)
tree6f757fa80daf71e664076d247260ba6b9014cec1
parent4149bcb700a85338effe3d9efe94354467af7207 (diff)
downloadsonarqube-69376773bc12d598e625bc3030abff289f9194f3.tar.gz
sonarqube-69376773bc12d598e625bc3030abff289f9194f3.zip
SONAR-4790 complete documentation of FileSystem
-rw-r--r--plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java15
-rw-r--r--plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java9
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FileSystem.java16
3 files changed, 30 insertions, 10 deletions
diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java
index 9fbe470b280..cf6af57a06c 100644
--- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java
+++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java
@@ -45,7 +45,11 @@ import org.sonar.plugins.cpd.index.SonarDuplicationsIndex;
import javax.annotation.CheckForNull;
import java.util.Collection;
import java.util.List;
-import java.util.concurrent.*;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
public class SonarBridgeEngine extends CpdEngine {
@@ -81,10 +85,11 @@ public class SonarBridgeEngine extends CpdEngine {
public void analyse(Project project, String languageKey, SensorContext context) {
String[] cpdExclusions = settings.getStringArray(CoreProperties.CPD_EXCLUSIONS);
logExclusions(cpdExclusions, LOG);
- List<InputFile> sourceFiles = Lists.newArrayList(fs.inputFiles(fs.predicates().and(
- fs.predicates().hasType(InputFile.Type.MAIN),
- fs.predicates().hasLanguage(languageKey),
- fs.predicates().doesNotMatchPathPatterns(cpdExclusions)
+ FilePredicates p = fs.predicates();
+ List<InputFile> sourceFiles = Lists.newArrayList(fs.inputFiles(p.and(
+ p.hasType(InputFile.Type.MAIN),
+ p.hasLanguage(languageKey),
+ p.doesNotMatchPathPatterns(cpdExclusions)
)));
if (sourceFiles.isEmpty()) {
return;
diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java
index 671cebb77da..c1890f4a08c 100644
--- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java
+++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java
@@ -93,10 +93,11 @@ public class SonarEngine extends CpdEngine {
public void analyse(Project project, String languageKey, SensorContext context) {
String[] cpdExclusions = settings.getStringArray(CoreProperties.CPD_EXCLUSIONS);
logExclusions(cpdExclusions, LOG);
- List<InputFile> sourceFiles = Lists.newArrayList(fs.inputFiles(fs.predicates().and(
- fs.predicates().hasType(InputFile.Type.MAIN),
- fs.predicates().hasLanguage(languageKey),
- fs.predicates().doesNotMatchPathPatterns(cpdExclusions)
+ FilePredicates p = fs.predicates();
+ List<InputFile> sourceFiles = Lists.newArrayList(fs.inputFiles(p.and(
+ p.hasType(InputFile.Type.MAIN),
+ p.hasLanguage(languageKey),
+ p.doesNotMatchPathPatterns(cpdExclusions)
)));
if (sourceFiles.isEmpty()) {
return;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FileSystem.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FileSystem.java
index b362d151206..5172eb8d542 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FileSystem.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FileSystem.java
@@ -82,6 +82,13 @@ public interface FileSystem extends BatchComponent {
* Returns the single element matching the predicate. If more than one elements match
* the predicate, then {@link IllegalArgumentException} is thrown. Returns {@code null}
* if no files match.
+ *
+ * <p/>
+ * How to use :
+ * <pre>
+ * InputFile file = fs.inputFile(fs.predicates().hasRelativePath("src/Foo.php"));
+ * </pre>
+ *
* @see #predicates()
*/
@CheckForNull
@@ -91,9 +98,16 @@ public interface FileSystem extends BatchComponent {
* Input files matching the given attributes. Return all the files if the parameter
* <code>attributes</code> is empty.
* <p/>
- * Important - result is an {@link java.lang.Iterable} to benefit from streaming and decreasing
+ * <b>Important</b> - result is an {@link java.lang.Iterable} to benefit from streaming and decreasing
* memory consumption. It should be iterated only once, else copy it into a list :
* {@code com.google.common.collect.Lists.newArrayList(inputFiles(predicate))}
+ * <p/>
+ * How to use :
+ * <pre>
+ * FilePredicates p = fs.predicates();
+ * Iterable<InputFile> files = fs.inputFiles(p.and(p.hasLanguage("java"), p.hasType(InputFile.Type.MAIN)));
+ * </pre>
+ *
* @see #predicates()
*/
Iterable<InputFile> inputFiles(FilePredicate predicate);