opinionated-vertx/src/de/pzzz/vertx/process/ExecutableProcess.java
Peter Schuller b950c9ebdb [wip] initial commit
extracted useful snippets from other projects
2021-12-17 07:31:44 +01:00

68 lines
1.9 KiB
Java
Executable file

package de.pzzz.vertx.process;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import de.pzzz.vertx.SerializableWithId;
public abstract class ExecutableProcess<T extends Serializable, U extends ItemProcess<T>> extends SerializableWithId {
private static final long serialVersionUID = 4475632132455503715L;
private String name;
private ProcessStatus status;
private int parallelRequests = 1;
private List<U> processingItems;
public ExecutableProcess() {
super();
}
public ExecutableProcess(final ProcessRequest<T> request) {
super();
this.name = request.getName();
this.status = ProcessStatus.READY;
this.parallelRequests = request.getParallelRequests();
this.processingItems = new ArrayList<>();
Set<T> itemRequests = new HashSet<>(request.getProcessingItems());
for (T itemRequest: itemRequests) {
processingItems.add(getItemProcess(itemRequest));
}
}
protected abstract U getItemProcess(final T itemRequest);
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
public ProcessStatus getStatus() {
return status;
}
public void setStatus(final ProcessStatus status) {
this.status = status;
}
public int getParallelRequests() {
return parallelRequests;
}
public void setParallelRequests(final int parallelRequests) {
this.parallelRequests = parallelRequests;
}
public List<U> getProcessingItems() {
return processingItems;
}
public void setProcessingItems(final List<U> processingItems) {
this.processingItems = processingItems;
}
}