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

org.jbpm.command.GetProcessDefinitionsCommand Maven / Gradle / Ivy

The newest version!
package org.jbpm.command;

import java.util.Iterator;
import java.util.List;

import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;

/**
 * This Command returns all process definitions (or only the latest if onlyLatest is true)
 * 
 * @author Bernd Ruecker ([email protected])
 */
public class GetProcessDefinitionsCommand extends AbstractGetObjectBaseCommand {

  private static final long serialVersionUID = -1908847549444051495L;

  private boolean onlyLatest = true;

  public GetProcessDefinitionsCommand() {
  }

  public GetProcessDefinitionsCommand(boolean onlyLatest) {
    this.onlyLatest = onlyLatest;
  }

  public Object execute(JbpmContext jbpmContext) throws Exception {
    setJbpmContext(jbpmContext);
    List result = (onlyLatest ? jbpmContext.getGraphSession().findLatestProcessDefinitions()
        : jbpmContext.getGraphSession().findAllProcessDefinitions());

    /*
     * traverse and access property if it is missing in the default fetchgroup
     */
    Iterator iter = result.iterator();
    while (iter.hasNext()) {
      ProcessDefinition pd = (ProcessDefinition) iter.next();
      retrieveProcessDefinition(pd);
    }

    return result;
  }

  public boolean isOnlyLatest() {
    return onlyLatest;
  }

  public void setOnlyLatest(boolean onlyLatest) {
    this.onlyLatest = onlyLatest;
  }

  public String getAdditionalToStringInformation() {
    return "onlyLatest=" + onlyLatest;
  }

  // methods for fluent programming

  public GetProcessDefinitionsCommand onlyLatest(boolean onlyLatest) {
    setOnlyLatest(onlyLatest);
    return this;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy