/*
* Copyright 2015 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.kie.server.api.model.instance;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "task-instance")
public class TaskInstance {
@XmlElement(name="task-id")
private Long id;
@XmlElement(name="task-priority")
private Integer priority;
@XmlElement(name="task-name")
private String name;
@XmlElement(name="task-subject")
private String subject;
@XmlElement(name="task-description")
private String description;
@XmlElement(name="task-type")
private String taskType;
@XmlElement(name="task-form")
private String formName;
@XmlElement(name="task-status")
private String status;
@XmlElement(name="task-actual-owner")
private String actualOwner;
@XmlElement(name="task-created-by")
private String createdBy;
@XmlElement(name="task-created-on")
private Date createdOn;
@XmlElement(name="task-activation-time")
private Date activationTime;
@XmlElement(name="task-expiration-time")
private Date expirationDate;
@XmlElement(name="task-skippable")
private Boolean skipable;
@XmlElement(name="task-workitem-id")
private Long workItemId;
@XmlElement(name="task-process-instance-id")
private Long processInstanceId;
@XmlElement(name="task-parent-id")
private Long parentId;
@XmlElement(name="task-process-id")
private String processId;
@XmlElement(name="task-container-id")
private String containerId;
@XmlElementWrapper(name="potential-owners")
@XmlElement(name="task-pot-owners")
private List<String> potentialOwners;
@XmlElementWrapper(name="excluded-owners")
@XmlElement(name="task-excl-owners")
private List<String> excludedOwners;
@XmlElementWrapper(name="business-admins")
@XmlElement(name="task-business-admins")
private List<String> businessAdmins;
@XmlElement(name="task-input-data")
private Map<String, Object> inputData;
@XmlElement(name="task-output-data")
private Map<String, Object> outputData;
public TaskInstance() {
}
public static Builder builder() {
return new Builder();
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getTaskType() {
return taskType;
}
public void setTaskType(String taskType) {
this.taskType = taskType;
}
public String getFormName() {
return formName;
}
public void setFormName(String formName) {
this.formName = formName;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getActualOwner() {
return actualOwner;
}
public void setActualOwner(String actualOwner) {
this.actualOwner = actualOwner;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public Date getCreatedOn() {
return createdOn;
}
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}
public Date getActivationTime() {
return activationTime;
}
public void setActivationTime(Date activationTime) {
this.activationTime = activationTime;
}
public Date getExpirationDate() {
return expirationDate;
}
public void setExpirationDate(Date expirationDate) {
this.expirationDate = expirationDate;
}
public Boolean getSkipable() {
return skipable;
}
public void setSkipable(Boolean skipable) {
this.skipable = skipable;
}
public Long getWorkItemId() {
return workItemId;
}
public void setWorkItemId(Long workItemId) {
this.workItemId = workItemId;
}
public Long getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(Long processInstanceId) {
this.processInstanceId = processInstanceId;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public String getProcessId() {
return processId;
}
public void setProcessId(String processId) {
this.processId = processId;
}
public String getContainerId() {
return containerId;
}
public void setContainerId(String containerId) {
this.containerId = containerId;
}
public List<String> getPotentialOwners() {
return potentialOwners;
}
public void setPotentialOwners(List<String> potentialOwners) {
this.potentialOwners = potentialOwners;
}
public List<String> getExcludedOwners() {
return excludedOwners;
}
public void setExcludedOwners(List<String> excludedOwners) {
this.excludedOwners = excludedOwners;
}
public List<String> getBusinessAdmins() {
return businessAdmins;
}
public void setBusinessAdmins(List<String> businessAdmins) {
this.businessAdmins = businessAdmins;
}
public Map<String, Object> getInputData() {
return inputData;
}
public void setInputData(Map<String, Object> inputData) {
this.inputData = inputData;
}
public Map<String, Object> getOutputData() {
return outputData;
}
public void setOutputData(Map<String, Object> outputData) {
this.outputData = outputData;
}
@Override
public String toString() {
return "TaskInstance{" +
"id=" + id +
", name='" + name + '\'' +
", description='" + description + '\'' +
", status='" + status + '\'' +
", actualOwner='" + actualOwner + '\'' +
", processInstanceId=" + processInstanceId +
", processId='" + processId + '\'' +
", containerId='" + containerId + '\'' +
'}';
}
public static class Builder {
private TaskInstance taskInstance = new TaskInstance();
public TaskInstance build() {
return taskInstance;
}
public Builder id(Long id) {
taskInstance.setId(id);
return this;
}
public Builder priority(Integer priority) {
taskInstance.setPriority(priority);
return this;
}
public Builder name(String name) {
taskInstance.setName(name);
return this;
}
public Builder subject(String subject) {
taskInstance.setSubject(subject);
return this;
}
public Builder description(String description) {
taskInstance.setDescription(description);
return this;
}
public Builder taskType(String taskType) {
taskInstance.setTaskType(taskType);
return this;
}
public Builder formName(String formName) {
taskInstance.setFormName(formName);
return this;
}
public Builder status(String status) {
taskInstance.setStatus(status);
return this;
}
public Builder actualOwner(String actualOwner) {
taskInstance.setActualOwner(actualOwner);
return this;
}
public Builder createdBy(String createdBy) {
taskInstance.setCreatedBy(createdBy);
return this;
}
public Builder createdOn(Date createdOn) {
taskInstance.setCreatedOn(createdOn == null ? createdOn : new Date(createdOn.getTime()));
return this;
}
public Builder activationTime(Date activationTime) {
taskInstance.setActivationTime(activationTime == null ? activationTime : new Date(activationTime.getTime()));
return this;
}
public Builder expirationTime(Date expirationTime) {
taskInstance.setExpirationDate(expirationTime == null ? expirationTime : new Date(expirationTime.getTime()));
return this;
}
public Builder skippable(Boolean skippable) {
taskInstance.setSkipable(skippable);
return this;
}
public Builder workItemId(Long workItemId) {
taskInstance.setWorkItemId(workItemId);
return this;
}
public Builder processInstanceId(Long processInstanceId) {
taskInstance.setProcessInstanceId(processInstanceId);
return this;
}
public Builder parentId(Long parentId) {
taskInstance.setParentId(parentId);
return this;
}
public Builder processId(String processId) {
taskInstance.setProcessId(processId);
return this;
}
public Builder containerId(String containerId) {
taskInstance.setContainerId(containerId);
return this;
}
public Builder potentialOwners(List<String> potOwners) {
taskInstance.setPotentialOwners(potOwners);
return this;
}
public Builder excludedOwners(List<String> exclOwners) {
taskInstance.setExcludedOwners(exclOwners);
return this;
}
public Builder businessAdmins(List<String> businessAdmins) {
taskInstance.setBusinessAdmins(businessAdmins);
return this;
}
public Builder inputData(Map<String, Object> inputData) {
taskInstance.setInputData(inputData);
return this;
}
public Builder outputData(Map<String, Object> outputData) {
taskInstance.setOutputData(outputData);
return this;
}
}
}