opinionated-vertx/src/main/java/de/pzzz/vertx/worker/FileSaveController.java
2026-02-12 11:37:36 +01:00

38 lines
1.3 KiB
Java

package de.pzzz.vertx.worker;
import java.nio.file.Paths;
import io.vertx.core.Vertx;
public abstract class FileSaveController<T> extends WorkerController<T,SaveFile> {
private final String parentJobId;
private final String fileExtension;
public FileSaveController(final int maxWorkers, final Vertx vertx, final String parentJobId, final String fileExtension) {
super(maxWorkers, vertx, null);
this.parentJobId = parentJobId;
if (!fileExtension.startsWith(".")) {
this.fileExtension = "." + fileExtension;
} else {
this.fileExtension = fileExtension;
}
}
protected abstract byte[] getContent(final T saveObject);
protected abstract String getFilename(final T saveObject);
@Override
protected Class<? extends WorkerVerticle<SaveFile>> workerVerticleClass() {
return FileSaveVerticle.class;
}
@Override
protected SaveFile getRequest(final T saveObject) {
String fileName = Paths.get(parentJobId, getFilename(saveObject) + fileExtension).toString();
SaveFile saveTarget = new SaveFile();
saveTarget.setName(fileName);
saveTarget.setContent(getContent(saveObject));
return saveTarget;
}
}