public static SpecificationListBuilder createWithFilter(final FilterSettings filterSettings) { return new SpecificationListBuilder(filterSettings); }
@Override public void endSpecificationItem() { if (this.itemBuilder != null) { final SpecificationItem item = createNewSpecificationItem(); // [impl->dsn~filtering-by-artifact-types-during-import~1] if (isAccepted(item)) { addNewItemToList(item); } } resetState(); }
@Override public List<SpecificationItem> getImportedItems() { return this.specItemBuilder.build(); }
private boolean isAccepted(final SpecificationItem item) { return isAcceptedArtifactType(item.getArtifactType()) && matchesTagsCriteria(item.getTags()); }
@Override public void addNeededArtifactType(final String artifactType) { // [impl->dsn~filtering-by-artifact-types-during-import~1] if (isAcceptedArtifactType(artifactType)) { this.itemBuilder.addNeedsArtifactType(artifactType); } }
@Override public MultiFileImporterImpl importFile(final InputFile file) { final int itemCountBefore = this.specItemBuilder.getItemCount(); createImporter(file, this.specItemBuilder).runImport(); final int itemCountImported = this.specItemBuilder.getItemCount() - itemCountBefore; LOG.fine(() -> "Imported " + itemCountImported + " items from '" + file + "'."); return this; }
@Override public MultiFileImporter createImporter() { return createImporter( SpecificationListBuilder.createWithFilter(this.settings.getFilters())); } }
/** * Build the list of specification items * * @return the list of specification items collected up to this point */ public List<SpecificationItem> build() { this.endSpecificationItem(); return this.items; }
private boolean isAccepted(final SpecificationItem item) { return isAcceptedArtifactType(item.getArtifactType()) && matchesTagsCriteria(item.getTags()); }
@Override public void addNeededArtifactType(final String artifactType) { // [impl->dsn~filtering-by-artifact-types-during-import~1] if (isAcceptedArtifactType(artifactType)) { this.itemBuilder.addNeedsArtifactType(artifactType); } }
@Override public MultiFileImporterImpl importFile(final InputFile file) { final int itemCountBefore = this.specItemBuilder.getItemCount(); createImporter(file, this.specItemBuilder).runImport(); final int itemCountImported = this.specItemBuilder.getItemCount() - itemCountBefore; LOG.fine(() -> "Imported " + itemCountImported + " items from '" + file + "'."); return this; }
@Override public MultiFileImporter createImporter() { return createImporter( SpecificationListBuilder.createWithFilter(this.settings.getFilters())); } }
/** * Build the list of specification items * * @return the list of specification items collected up to this point */ public List<SpecificationItem> build() { this.endSpecificationItem(); return this.items; }
@Override public void endSpecificationItem() { if (this.itemBuilder != null) { final SpecificationItem item = createNewSpecificationItem(); // [impl->dsn~filtering-by-artifact-types-during-import~1] if (isAccepted(item)) { addNewItemToList(item); } } resetState(); }
@Override public void addDependsOnId(final SpecificationItemId id) { // [impl->dsn~filtering-by-artifact-types-during-import~1] if (isAcceptedArtifactType(id.getArtifactType())) { this.itemBuilder.addDependOnId(id); } }
@Override public MultiFileImporter importRecursiveDir(final Path dir, final String glob) { final PathMatcher matcher = dir.getFileSystem().getPathMatcher("glob:" + glob); final AtomicInteger fileCount = new AtomicInteger(0); final int itemCountBefore = this.specItemBuilder.getItemCount(); try (Stream<Path> fileStream = Files.walk(dir)) { fileStream.filter(path -> !path.toFile().isDirectory()) // .filter(matcher::matches) // .map(path -> RealFileInput.forPath(path, DEFAULT_CHARSET)) .filter(this.factoryLoader::supportsFile) .map(file -> createImporter(file, this.specItemBuilder)).forEach(importer -> { importer.runImport(); fileCount.incrementAndGet(); }); } catch (final IOException e) { throw new ImporterException("Error walking directory " + dir, e); } final int itemCountImported = this.specItemBuilder.getItemCount() - itemCountBefore; LOG.fine(() -> "Imported " + fileCount + " files containing " + itemCountImported + " items from '" + dir + "'."); return this; }
public static SpecificationListBuilder createWithFilter(final FilterSettings filterSettings) { return new SpecificationListBuilder(filterSettings); }
@Override public List<SpecificationItem> getImportedItems() { return this.specItemBuilder.build(); }
@Override public void addDependsOnId(final SpecificationItemId id) { // [impl->dsn~filtering-by-artifact-types-during-import~1] if (isAcceptedArtifactType(id.getArtifactType())) { this.itemBuilder.addDependOnId(id); } }
@Override public MultiFileImporter importRecursiveDir(final Path dir, final String glob) { final PathMatcher matcher = dir.getFileSystem().getPathMatcher("glob:" + glob); final AtomicInteger fileCount = new AtomicInteger(0); final int itemCountBefore = this.specItemBuilder.getItemCount(); try (Stream<Path> fileStream = Files.walk(dir)) { fileStream.filter(path -> !path.toFile().isDirectory()) // .filter(matcher::matches) // .map(path -> RealFileInput.forPath(path, DEFAULT_CHARSET)) .filter(this.factoryLoader::supportsFile) .map(file -> createImporter(file, this.specItemBuilder)).forEach(importer -> { importer.runImport(); fileCount.incrementAndGet(); }); } catch (final IOException e) { throw new ImporterException("Error walking directory " + dir, e); } final int itemCountImported = this.specItemBuilder.getItemCount() - itemCountBefore; LOG.fine(() -> "Imported " + fileCount + " files containing " + itemCountImported + " items from '" + dir + "'."); return this; }