org.sonar.api.batch.fs
Interface FileSystem

All Superinterfaces:
BatchComponent
All Known Implementing Classes:
DefaultFileSystem

public interface FileSystem
extends BatchComponent

The 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;
   }
 }
 

How to use in unit tests

The unit tests needing an instance of FileSystem can use the implementation DefaultFileSystem and the related DefaultInputFile, for example :
 DefaultFileSystem fs = new DefaultFileSystem();
 fs.add(new DefaultInputFile("src/foo/bar.php"));
 

Since:
4.2

Method Summary
 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.
 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 workDir()
          Absolute work directory.
 

Method Detail

baseDir

File baseDir()
Absolute base directory of module


encoding

Charset encoding()
Default encoding of input files. If it's not defined, then the platform default encoding is returned


workDir

File workDir()
Absolute work directory. It can be used to store third-party analysis reports.

The work directory can be located outside baseDir().


predicates

FilePredicates predicates()
Factory of FilePredicate


inputFile

@CheckForNull
InputFile inputFile(FilePredicate predicate)
Returns the single element matching the predicate. If more than one elements match the predicate, then IllegalArgumentException is thrown. Returns null if no files match.

How to use :

 InputFile file = fs.inputFile(fs.predicates().hasRelativePath("src/Foo.php"));
 

See Also:
predicates()

inputFiles

Iterable<InputFile> inputFiles(FilePredicate predicate)
Input files matching the given attributes. Return all the files if the parameter 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 files = fs.inputFiles(p.and(p.hasLanguage("java"), p.hasType(InputFile.Type.MAIN)));
 

See Also:
predicates()

hasFiles

boolean hasFiles(FilePredicate predicate)
Returns true if at least one InputFile matches the given predicate. This method can be faster than checking if inputFiles(org.sonar.api.batch.fs.FilePredicate) has elements.

See Also:
predicates()

files

Iterable<File> files(FilePredicate predicate)
Files matching the given predicate.

See Also:
predicates()

languages

SortedSet<String> languages()
Languages detected in all files, whatever their type (main or test)



Copyright © 2009-2014 SonarSource. All Rights Reserved.