package com.constellio.model.entities.workflows.definitions;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public class WorkflowDefinition {
private final String collection;
private final String configId;
private final boolean enabled;
private final Map<String, WorkflowTask> tasks;
private final Map<String, WorkflowRouting> routings;
public WorkflowDefinition(String configId, Map<String, WorkflowTask> tasks, boolean enabled,
Map<String, WorkflowRouting> routings, String collection) {
this.configId = configId;
this.tasks = tasks;
this.enabled = enabled;
this.routings = routings;
this.collection = collection;
}
public boolean isEnabled() {
return enabled;
}
public Collection<WorkflowTask> getTasks() {
return tasks.values();
}
public WorkflowTask getTask(String id) {
return tasks.get(id);
}
public WorkflowRouting getRouting(String id) {
return routings.get(id);
}
public Map<String, WorkflowRouting> getRoutings() {
return routings;
}
public String getConfigId() {
return configId;
}
public String getCollection() {
return collection;
}
// PROTOTYPE
public Map<String, String> getVariables() {
Map<String, String> variables = new HashMap<>();
for (WorkflowTask task : tasks.values()) {
if (task instanceof WorkflowUserTask) {
for (BPMNProperty property : ((WorkflowUserTask) task).getFields()) {
if (property.getVariableCode() != null) {
variables.put(property.getVariableCode(), property.getExpressionValue());
}
}
}
}
return variables;
}
}