All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.camunda.tasklist.dto.TaskSearch Maven / Gradle / Ivy

package io.camunda.tasklist.dto;

import com.fasterxml.jackson.databind.ObjectMapper;
import io.camunda.tasklist.exception.TaskListException;
import io.camunda.tasklist.generated.model.IncludeVariable;
import io.camunda.tasklist.generated.model.TaskByVariables;
import io.camunda.tasklist.generated.model.TaskByVariables.OperatorEnum;
import io.camunda.tasklist.util.JsonUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class TaskSearch implements Cloneable {
  private String candidateGroup;
  private List candidateGroups;
  private String assignee;
  private String candidateUser;
  private List candidateUsers;
  private Boolean assigned;
  private TaskState state;
  private String processDefinitionKey;
  private String processInstanceKey;
  private String taskDefinitionId;
  private List taskVariables;
  private List tenantIds;
  private Boolean withVariables;
  private DateFilter followUpDate;
  private DateFilter dueDate;
  private List includeVariables;
  private Pagination pagination;

  public List getCandidateGroups() {
    return candidateGroups;
  }

  public TaskSearch setCandidateGroups(List candidateGroups) {
    this.candidateGroups = candidateGroups;
    return this;
  }

  public List getCandidateUsers() {
    return candidateUsers;
  }

  public TaskSearch setCandidateUsers(List candidateUsers) {
    this.candidateUsers = candidateUsers;
    return this;
  }

  public TaskSearch setWithVariables(Boolean withVariables) {
    this.withVariables = withVariables;
    return this;
  }

  public String getCandidateUser() {
    return candidateUser;
  }

  public TaskSearch setCandidateUser(String candidateUser) {
    this.candidateUser = candidateUser;
    return this;
  }

  public DateFilter getFollowUpDate() {
    return followUpDate;
  }

  public TaskSearch setFollowUpDate(DateFilter followUpDate) {
    this.followUpDate = followUpDate;
    return this;
  }

  public DateFilter getDueDate() {
    return dueDate;
  }

  public TaskSearch setDueDate(DateFilter dueDate) {
    this.dueDate = dueDate;
    return this;
  }

  public String getCandidateGroup() {
    return candidateGroup;
  }

  public TaskSearch setCandidateGroup(String candidateGroup) {
    this.candidateGroup = candidateGroup;
    return this;
  }

  public String getAssignee() {
    return assignee;
  }

  public TaskSearch setAssignee(String assignee) {
    this.assignee = assignee;
    return this;
  }

  public Boolean getAssigned() {
    return assigned;
  }

  public TaskSearch setAssigned(Boolean assigned) {
    this.assigned = assigned;
    return this;
  }

  public TaskState getState() {
    return state;
  }

  public TaskSearch setState(TaskState state) {
    this.state = state;
    return this;
  }

  public String getProcessDefinitionKey() {
    return processDefinitionKey;
  }

  public TaskSearch setProcessDefinitionKey(String processDefinitionId) {
    this.processDefinitionKey = processDefinitionId;
    return this;
  }

  public String getProcessInstanceKey() {
    return processInstanceKey;
  }

  public TaskSearch setProcessInstanceKey(String processInstanceId) {
    this.processInstanceKey = processInstanceId;
    return this;
  }

  public String getTaskDefinitionId() {
    return taskDefinitionId;
  }

  public TaskSearch setTaskDefinitionId(String taskDefinitionId) {
    this.taskDefinitionId = taskDefinitionId;
    return this;
  }

  public List getTaskVariables() {
    return taskVariables;
  }

  public TaskSearch setTaskVariables(List taskVariables) {
    this.taskVariables = taskVariables;
    return this;
  }

  public TaskSearch addVariableFilter(String variableName, Object variableValue)
      throws TaskListException {
    return this.addVariableFilter(
        new TaskByVariables()
            .name(variableName)
            .value(JsonUtils.toJsonString(variableValue))
            .operator(OperatorEnum.EQ));
  }

  public TaskSearch addVariableFilter(TaskByVariables variableFilter) {
    if (this.taskVariables == null) {
      this.taskVariables = new ArrayList<>();
    }
    this.taskVariables.add(variableFilter);

    return this;
  }

  public List getTenantIds() {
    return tenantIds;
  }

  public TaskSearch setTenantIds(List tenantIds) {
    this.tenantIds = tenantIds;
    return this;
  }

  public TaskSearch addTenantId(String tenantId) {
    if (this.tenantIds == null) {
      this.tenantIds = new ArrayList<>();
    }
    this.tenantIds.add(tenantId);
    return this;
  }

  public Boolean getWithVariables() {
    return withVariables;
  }

  public boolean isWithVariables() {
    return withVariables != null && withVariables;
  }

  public TaskSearch setWithVariables(boolean withVariables) {
    this.withVariables = withVariables;
    return this;
  }

  public List getIncludeVariables() {
    return includeVariables;
  }

  public TaskSearch setIncludeVariables(List includeVariables) {
    this.includeVariables = includeVariables;
    return this;
  }

  public TaskSearch fetchVariable(String variable) {
    return fetchVariable(variable, true);
  }

  public TaskSearch fetchVariable(String variable, boolean alwaysReturnFullValue) {
    if (this.includeVariables == null) {
      this.includeVariables = new ArrayList<>();
    }
    IncludeVariable iv = new IncludeVariable();
    iv.setName(variable);
    iv.alwaysReturnFullValue(alwaysReturnFullValue);
    this.includeVariables.add(iv);
    return this;
  }

  public Pagination getPagination() {
    return pagination;
  }

  public TaskSearch setPagination(Pagination pagination) {
    this.pagination = pagination;
    return this;
  }

  @Override
  public TaskSearch clone() {
    try {
      ObjectMapper objectMapper = new ObjectMapper();
      byte[] bytes = objectMapper.writeValueAsBytes(this);
      return objectMapper.readValue(bytes, TaskSearch.class);
    } catch (IOException e) {
      throw new RuntimeException("Error while cloning TaskSearch", e);
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy