@Override public FilePredicate matchesPathPatterns(String[] inclusionPatterns) { if (inclusionPatterns.length == 0) { return TruePredicate.TRUE; } FilePredicate[] predicates = new FilePredicate[inclusionPatterns.length]; for (int i = 0; i < inclusionPatterns.length; i++) { predicates[i] = new PathPatternPredicate(PathPattern.create(inclusionPatterns[i])); } return or(predicates); }
@Override public TextPointer newPointer(int line, int lineOffset) { checkMetadata(); DefaultTextPointer textPointer = new DefaultTextPointer(line, lineOffset); checkValid(textPointer, "pointer"); return textPointer; }
public static DefaultInputFile newDefaultInputFile(Path projectBaseDir, AbstractProjectOrModule module, String relativePath) { return new TestInputFileBuilder(module.key(), relativePath) .setStatus(InputFile.Status.SAME) .setProjectBaseDir(projectBaseDir) .setModuleBaseDir(module.getBaseDir()) .build(); } }
public TestInputFileBuilder setMetadata(Metadata metadata) { this.setLines(metadata.lines()); this.setLastValidOffset(metadata.lastValidOffset()); this.setNonBlankLines(metadata.nonBlankLines()); this.setHash(metadata.hash()); this.setOriginalLineStartOffsets(metadata.originalLineStartOffsets()); this.setOriginalLineEndOffsets(metadata.originalLineEndOffsets()); return this; }
private static TextRange range(int line, int startOffset, int endOffset) { return new DefaultTextRange(new DefaultTextPointer(line, startOffset), new DefaultTextPointer(line, endOffset)); } }
@Override public FilePredicate matchesPathPattern(String inclusionPattern) { return new PathPatternPredicate(PathPattern.create(inclusionPattern)); }
/** * Digest hash of the file. */ public String hash() { checkMetadata(); return metadata.hash(); }
public static DefaultInputModule newDefaultInputModule(ProjectDefinition projectDefinition) { return new DefaultInputModule(projectDefinition, TestInputFileBuilder.nextBatchId()); }
public static DefaultInputProject newDefaultInputProject(ProjectDefinition projectDefinition) { return new DefaultInputProject(projectDefinition, TestInputFileBuilder.nextBatchId()); }
/** * Create Range from global offsets. Used for backward compatibility with older API. */ public TextRange newRange(int startOffset, int endOffset) { checkMetadata(); return newRangeValidPointers(newPointer(startOffset), newPointer(endOffset), false); }
@Override public boolean isEmpty() { checkMetadata(); return metadata.isEmpty(); }
@Override public int lines() { checkMetadata(); return metadata.lines(); }
public int lastValidOffset() { checkMetadata(); return metadata.lastValidOffset(); }
public int nonBlankLines() { checkMetadata(); return metadata.nonBlankLines(); }
protected DefaultFileSystem(Path baseDir, Cache cache) { this.baseDir = baseDir; this.cache = cache; this.predicates = new DefaultFilePredicates(this.baseDir); }
/** * {@link #setStatus(org.sonar.api.batch.fs.InputFile.Status)} */ @Override public Status status() { checkMetadata(); return status; }
@Override public String toString() { return "[key=" + key() + "]"; } }
@Override public boolean apply(InputFile f) { for (OptimizedFilePredicate predicate : predicates) { if (!predicate.apply(f)) { return false; } } return true; }
private static TextRange rangeOf(int startLine, int startOffset, int endLine, int endOffset) { return new DefaultTextRange(new DefaultTextPointer(startLine, startOffset), new DefaultTextPointer(endLine, endOffset)); }