Improve file loading abstraction for attribute updater

This commit is contained in:
RatzzFatzz
2025-12-16 00:58:57 +01:00
parent cf04e14de2
commit 1ae5b1bef1
3 changed files with 14 additions and 3 deletions

View File

@@ -46,9 +46,7 @@ public abstract class AttributeUpdater {
statistic.startTimer(); statistic.startTimer();
try (ProgressBar progressBar = pbBuilder().build()) { try (ProgressBar progressBar = pbBuilder().build()) {
List<File> files = config.getCoherent() != null List<File> files = getFiles();
? fileProcessor.loadDirectory(config.getLibraryPath().getPath(), config.getCoherent())
: fileProcessor.loadFiles(config.getLibraryPath().getPath());
progressBar.maxHint(files.size()); progressBar.maxHint(files.size());
progressBar.refresh(); progressBar.refresh();
@@ -68,6 +66,8 @@ public abstract class AttributeUpdater {
statistic.printResult(); statistic.printResult();
} }
protected abstract List<File> getFiles();
/** /**
* Start of the file updating process. * Start of the file updating process.
* This method is called by the executor and its contents are executed in parallel. * This method is called by the executor and its contents are executed in parallel.

View File

@@ -24,6 +24,10 @@ public class CoherentAttributeUpdater extends SingleFileAttributeUpdater {
.setUnit(" directories", 1); .setUnit(" directories", 1);
} }
protected List<File> getFiles() {
return fileProcessor.loadDirectory(config.getLibraryPath().getPath(), config.getCoherent());
}
@Override @Override
public void process(File rootDir) { public void process(File rootDir) {
if (rootDir.isFile()) { if (rootDir.isFile()) {

View File

@@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j;
import me.tongfei.progressbar.ProgressBarBuilder; import me.tongfei.progressbar.ProgressBarBuilder;
import java.io.File; import java.io.File;
import java.util.List;
@Slf4j @Slf4j
public class SingleFileAttributeUpdater extends AttributeUpdater { public class SingleFileAttributeUpdater extends AttributeUpdater {
@@ -20,6 +21,12 @@ public class SingleFileAttributeUpdater extends AttributeUpdater {
.setUnit(" files", 1); .setUnit(" files", 1);
} }
@Override
protected List<File> getFiles() {
return fileProcessor.loadFiles(config.getLibraryPath().getPath());
}
@Override
public void process(File file) { public void process(File file) {
FileInfo fileInfo = fileProcessor.readAttributes(file); FileInfo fileInfo = fileProcessor.readAttributes(file);