From 1715a09211e7adef88a99952d3a0265c485cb68a Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Sun, 23 Feb 2014 22:39:43 +0100 Subject: SONAR-926 Preload files in DefaultModuleFileSystem --- .../org/sonar/api/batch/fs/internal/DefaultFileSystem.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'sonar-plugin-api/src') diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultFileSystem.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultFileSystem.java index e5c201e211c..ad5486a21e3 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultFileSystem.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultFileSystem.java @@ -109,6 +109,7 @@ public class DefaultFileSystem implements FileSystem { @Override public InputFile inputFile(FilePredicate predicate) { + doPreloadFiles(); if (predicate instanceof UniqueIndexPredicate) { return cache.inputFile((UniqueIndexPredicate) predicate); } @@ -122,16 +123,19 @@ public class DefaultFileSystem implements FileSystem { @Override public Iterable inputFiles(FilePredicate predicate) { + doPreloadFiles(); return Iterables.filter(cache.inputFiles(), new GuavaPredicate(predicate)); } @Override public boolean hasFiles(FilePredicate predicate) { + doPreloadFiles(); return Iterables.indexOf(cache.inputFiles(), new GuavaPredicate(predicate)) >= 0; } @Override public Iterable files(FilePredicate predicate) { + doPreloadFiles(); return Iterables.transform(inputFiles(predicate), new Function() { @Override public File apply(@Nullable InputFile input) { @@ -149,9 +153,17 @@ public class DefaultFileSystem implements FileSystem { @Override public Set languages() { + doPreloadFiles(); return languages; } + /** + * This method is called before each search of files. + */ + protected void doPreloadFiles() { + + } + public static abstract class Cache { protected abstract Iterable inputFiles(); -- cgit v1.2.3