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

org.ow2.bonita.services.Repository Maven / Gradle / Ivy

package org.ow2.bonita.services;

import java.util.Set;

import org.ow2.bonita.definition.InternalProcess;
import org.ow2.bonita.facade.uuid.ActivityInstanceUUID;
import org.ow2.bonita.facade.uuid.ProcessDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessInstanceUUID;
import org.ow2.bonita.pvm.job.Timer;
import org.ow2.bonita.runtime.InternalExecution;
import org.ow2.bonita.runtime.InternalInstance;

/**
 * @author Marc Blachon, Guillaume Porcher, Charles Souillard, Miguel Valdes, Pierre Vigneras
 */
public interface Repository {

  /**
   * INSTANCE
   */
  void storeInstance(InternalInstance instance);
  Set getInstances(ProcessDefinitionUUID processUUID);
  InternalInstance getInstance(ProcessInstanceUUID instanceUUID);
  InternalInstance removeInstance(ProcessInstanceUUID instanceUUID);
  InternalExecution getExecutionOnActivity(ProcessInstanceUUID instanceUUID,
      ActivityInstanceUUID activityInstanceUUID);

  /**
   * PROCESS
   */
  void storeProcess(InternalProcess process);

  InternalProcess getProcess(ProcessDefinitionUUID processUUID);
  InternalProcess removeProcess(ProcessDefinitionUUID processUUID);
  String getLastProcessVersion(String processId);
  void storeProcessVersion(String processId, String processVersion);
  void removeProcessVersion(String processId, String processVersion);

  /*
   * TIMERS
   */
  /** return all timers associated to the given instance */
  Set getInstanceTimers(ProcessInstanceUUID instanceUUID);
  void removeTimer(Timer timer);
  InternalProcess findLatestProcessByName(String subProcessId);
  long getNextActivityInstanceNb(ProcessInstanceUUID instanceUUID,
      String activityName);
  long getNextProcessInstanceNb(ProcessDefinitionUUID processUUID);

  /*
   * Meta
   */
  void storeMetaData(String key, String value);
  String getMetaData(String key);
  void deleteMetaData(String key);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy