package de.pzzz.vertx.worker; import java.nio.file.Paths; import io.vertx.core.Vertx; public abstract class FileSaveController extends WorkerController { 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> 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; } }