@Override public boolean hasFiles(FilePredicate predicate) { return inputFiles(predicate).iterator().hasNext(); }
@Override public Iterable<File> files(FilePredicate predicate) { return () -> StreamSupport.stream(inputFiles(predicate).spliterator(), false) .map(InputFile::file) .iterator(); }
@Override public InputFile inputFile(FilePredicate predicate) { Iterable<InputFile> files = inputFiles(predicate); Iterator<InputFile> iterator = files.iterator(); if (!iterator.hasNext()) { return null; } InputFile first = iterator.next(); if (!iterator.hasNext()) { return first; } StringBuilder sb = new StringBuilder(); sb.append("expected one element but was: <" + first); for (int i = 0; i < 4 && iterator.hasNext(); i++) { sb.append(", " + iterator.next()); } if (iterator.hasNext()) { sb.append(", ..."); } sb.append('>'); throw new IllegalArgumentException(sb.toString()); }
@Test public void files() { assertThat(fs.inputFiles(fs.predicates().all())).isEmpty(); fs.add(new TestInputFileBuilder("foo", "src/Foo.php").setLanguage("php").build()); fs.add(new TestInputFileBuilder("foo", "src/Bar.java").setLanguage("java").build()); fs.add(new TestInputFileBuilder("foo", "src/Baz.java").setLanguage("java").build()); // no language fs.add(new TestInputFileBuilder("foo", "src/readme.txt").build()); assertThat(fs.inputFile(fs.predicates().hasRelativePath("src/Bar.java"))).isNotNull(); assertThat(fs.inputFile(fs.predicates().hasRelativePath("does/not/exist"))).isNull(); assertThat(fs.inputFile(fs.predicates().hasAbsolutePath(new File(basedir, "src/Bar.java").getAbsolutePath()))).isNotNull(); assertThat(fs.inputFile(fs.predicates().hasAbsolutePath(new File(basedir, "does/not/exist").getAbsolutePath()))).isNull(); assertThat(fs.inputFile(fs.predicates().hasAbsolutePath(new File(basedir, "../src/Bar.java").getAbsolutePath()))).isNull(); assertThat(fs.inputFile(fs.predicates().hasURI(new File(basedir, "src/Bar.java").toURI()))).isNotNull(); assertThat(fs.inputFile(fs.predicates().hasURI(new File(basedir, "does/not/exist").toURI()))).isNull(); assertThat(fs.inputFile(fs.predicates().hasURI(new File(basedir, "../src/Bar.java").toURI()))).isNull(); assertThat(fs.files(fs.predicates().all())).hasSize(4); assertThat(fs.files(fs.predicates().hasLanguage("java"))).hasSize(2); assertThat(fs.files(fs.predicates().hasLanguage("cobol"))).isEmpty(); assertThat(fs.hasFiles(fs.predicates().all())).isTrue(); assertThat(fs.hasFiles(fs.predicates().hasLanguage("java"))).isTrue(); assertThat(fs.hasFiles(fs.predicates().hasLanguage("cobol"))).isFalse(); assertThat(fs.inputFiles(fs.predicates().all())).hasSize(4); assertThat(fs.inputFiles(fs.predicates().hasLanguage("php"))).hasSize(1); assertThat(fs.inputFiles(fs.predicates().hasLanguage("java"))).hasSize(2); assertThat(fs.inputFiles(fs.predicates().hasLanguage("cobol"))).isEmpty(); assertThat(fs.languages()).containsOnly("java", "php"); }
@Override public boolean hasFiles(FilePredicate predicate) { return inputFiles(predicate).iterator().hasNext(); }
@Override public boolean hasFiles(FilePredicate predicate) { return inputFiles(predicate).iterator().hasNext(); }
@Override public Iterable<File> files(FilePredicate predicate) { return () -> StreamSupport.stream(inputFiles(predicate).spliterator(), false) .map(InputFile::file) .iterator(); }
@Override public Iterable<File> files(FilePredicate predicate) { doPreloadFiles(); return Iterables.transform(inputFiles(predicate), new Function<InputFile, File>() { @Override public File apply(InputFile input) { return input.file(); } }); }
@Override public InputFile inputFile(FilePredicate predicate) { Iterable<InputFile> files = inputFiles(predicate); Iterator<InputFile> iterator = files.iterator(); if (!iterator.hasNext()) { return null; } InputFile first = iterator.next(); if (!iterator.hasNext()) { return first; } StringBuilder sb = new StringBuilder(); sb.append("expected one element but was: <" + first); for (int i = 0; i < 4 && iterator.hasNext(); i++) { sb.append(", " + iterator.next()); } if (iterator.hasNext()) { sb.append(", ..."); } sb.append('>'); throw new IllegalArgumentException(sb.toString()); }
@Override public InputFile inputFile(FilePredicate predicate) { Iterable<InputFile> files = inputFiles(predicate); Iterator<InputFile> iterator = files.iterator(); if (!iterator.hasNext()) { return null; } InputFile first = iterator.next(); if (!iterator.hasNext()) { return first; } StringBuilder sb = new StringBuilder(); sb.append("expected one element but was: <" + first); for (int i = 0; i < 4 && iterator.hasNext(); i++) { sb.append(", " + iterator.next()); } if (iterator.hasNext()) { sb.append(", ..."); } sb.append('>'); throw new IllegalArgumentException(sb.toString()); }