@BatchSide public interface FileSystem
FileSystem
manages all the source files to be analyzed.
This is not an extension point so it must not be implemented by plugins. It must be injected as a constructor parameter :
public class MySensor implements Sensor { private final FileSystem fs; public MySensor(FileSystem fs) { this.fs = fs; } }
DefaultFileSystem
and the related DefaultInputFile
,
for example :
DefaultFileSystem fs = new DefaultFileSystem(); fs.add(new DefaultInputFile("myprojectKey", "src/foo/bar.php"));
Modifier and Type | Interface and Description |
---|---|
static interface |
FileSystem.Index
Interface of the underlying file index.
|
Modifier and Type | Method and Description |
---|---|
File |
baseDir()
Absolute base directory of module
|
Charset |
encoding()
Default encoding of input files.
|
Iterable<File> |
files(FilePredicate predicate)
Files matching the given predicate.
|
boolean |
hasFiles(FilePredicate predicate)
Returns true if at least one
InputFile matches
the given predicate. |
InputDir |
inputDir(File dir)
|
InputFile |
inputFile(FilePredicate predicate)
Returns the single element matching the predicate.
|
Iterable<InputFile> |
inputFiles(FilePredicate predicate)
Input files matching the given attributes.
|
SortedSet<String> |
languages()
Languages detected in all files, whatever their type (main or test)
|
FilePredicates |
predicates()
Factory of
FilePredicate |
File |
resolvePath(String path)
Utility method mainly used to resolve location of reports.
|
File |
workDir()
Absolute work directory.
|
Charset encoding()
File workDir()
baseDir()
.FilePredicates predicates()
FilePredicate
@CheckForNull InputFile inputFile(FilePredicate predicate)
IllegalArgumentException
is thrown. Returns null
if no files match.
How to use :
InputFile file = fs.inputFile(fs.predicates().hasRelativePath("src/Foo.php"));
predicates()
@CheckForNull InputDir inputDir(File dir)
IllegalArgumentException
- is File is null or not a directory.Iterable<InputFile> inputFiles(FilePredicate predicate)
attributes
is empty.
Important - result is an Iterable
to benefit from streaming and decreasing
memory consumption. It should be iterated only once, else copy it into a list :
com.google.common.collect.Lists.newArrayList(inputFiles(predicate))
How to use :
FilePredicates p = fs.predicates();
Iterable<InputFile> files = fs.inputFiles(p.and(p.hasLanguage("java"), p.hasType(InputFile.Type.MAIN)));
predicates()
boolean hasFiles(FilePredicate predicate)
InputFile
matches
the given predicate. This method can be faster than checking if inputFiles(org.sonar.api.batch.fs.FilePredicate)
has elements.predicates()
Iterable<File> files(FilePredicate predicate)
predicates()
SortedSet<String> languages()
File resolvePath(String path)
Copyright © 2009–2017 SonarSource. All rights reserved.