68 lines
1.9 KiB
Java
Executable file
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;
|
|
}
|
|
}
|