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

org.camunda.bpm.engine.impl.SetJobsRetriesByProcessBatchCmd Maven / Gradle / Ivy

There is a newer version: 7.9.0-alpha4
Show newest version
package org.camunda.bpm.engine.impl;

import org.camunda.bpm.engine.impl.cmd.AbstractSetJobsRetriesBatchCmd;
import org.camunda.bpm.engine.impl.interceptor.CommandContext;
import org.camunda.bpm.engine.runtime.Job;
import org.camunda.bpm.engine.runtime.ProcessInstance;
import org.camunda.bpm.engine.runtime.ProcessInstanceQuery;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Askar Akhmerov
 */
public class SetJobsRetriesByProcessBatchCmd extends AbstractSetJobsRetriesBatchCmd {
  protected final List processInstanceIds;
  protected final ProcessInstanceQuery query;

  public SetJobsRetriesByProcessBatchCmd(List processInstanceIds, ProcessInstanceQuery query, int retries) {
    this.processInstanceIds = processInstanceIds;
    this.query = query;
    this.retries = retries;
  }

  protected List collectJobIds(CommandContext commandContext) {
    List collectedJobIds = new ArrayList();
    List collectedProcessInstanceIds = new ArrayList();

    if (query != null) {
      collectedProcessInstanceIds.addAll(((ProcessInstanceQueryImpl)query).listIds());
    }

    if (this.processInstanceIds != null) {
      collectedProcessInstanceIds.addAll(this.processInstanceIds);
    }

    for (String process : collectedProcessInstanceIds) {
      for (Job job : commandContext.getJobManager().findJobsByProcessInstanceId(process)) {
        collectedJobIds.add(job.getId());
      }
    }

    return collectedJobIds;
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy