package com.constellio.app.modules.tasks.model.wrappers; import java.util.Collections; import java.util.List; import java.util.Map; import org.joda.time.LocalDateTime; import com.constellio.model.entities.records.Record; import com.constellio.model.entities.records.wrappers.RecordWrapper; import com.constellio.model.entities.records.wrappers.User; import com.constellio.model.entities.schemas.MetadataSchemaTypes; import com.constellio.model.entities.structures.MapStringListStringStructure; public class WorkflowInstance extends RecordWrapper { public static final String SCHEMA_TYPE = "workflowInstance"; public static final String DEFAULT_SCHEMA = SCHEMA_TYPE + "_default"; public static final String WORKFLOW = "workflow"; public static final String STARTED_BY = "startedBy"; public static final String STARTED_ON = "startedOn"; public static final String STATUS = "status"; public static final String EXTRA_FIELDS = "extraFields"; public WorkflowInstance(Record record, MetadataSchemaTypes types) { super(record, types, SCHEMA_TYPE); } public Map<String, List<String>> getExtraFields() { MapStringListStringStructure structure = get(EXTRA_FIELDS); if (structure == null) { return Collections.emptyMap(); } else { return structure; } } public WorkflowInstance setExtraFields(Map<String, List<String>> extraFields) { set(EXTRA_FIELDS, extraFields == null ? null : new MapStringListStringStructure(extraFields)); return this; } public WorkflowInstance setTitle(String title) { super.setTitle(title); return this; } public String getWorkflow() { return get(WORKFLOW); } public WorkflowInstance setWorkflow(String workflowId) { set(WORKFLOW, workflowId); return this; } public WorkflowInstance setWorkflow(Record workflow) { set(WORKFLOW, workflow); return this; } public WorkflowInstance setWorkflow(Workflow workflow) { set(WORKFLOW, workflow); return this; } public WorkflowInstanceStatus getWorkflowStatus() { return get(STATUS); } public WorkflowInstance setWorkflowStatus(WorkflowInstanceStatus status) { set(STATUS, status); return this; } public LocalDateTime getStartedOn() { return get(STARTED_ON); } public WorkflowInstance setStartedOn(LocalDateTime startedOn) { set(STARTED_ON, startedOn); return this; } public String getStartedBy() { return get(STARTED_BY); } public WorkflowInstance setStartedBy(String startedBy) { set(STARTED_BY, startedBy); return this; } public WorkflowInstance setStartedBy(Record startedBy) { set(STARTED_BY, startedBy); return this; } public WorkflowInstance setStartedBy(User startedBy) { set(STARTED_BY, startedBy); return this; } }