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> extends SerializableWithId { private static final long serialVersionUID = 4475632132455503715L; private String name; private ProcessStatus status; private int parallelRequests = 1; private List processingItems; public ExecutableProcess() { super(); } public ExecutableProcess(final ProcessRequest request) { super(); this.name = request.getName(); this.status = ProcessStatus.READY; this.parallelRequests = request.getParallelRequests(); this.processingItems = new ArrayList<>(); Set 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 getProcessingItems() { return processingItems; } public void setProcessingItems(final List processingItems) { this.processingItems = processingItems; } }