38 lines
1.3 KiB
Java
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;
|
|
}
|
|
}
|