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.GlobalClassData;
import org.ow2.bonita.definition.PackageClassData;
import org.ow2.bonita.definition.PackageDependency;
import org.ow2.bonita.definition.XpdlProcess;
import org.ow2.bonita.facade.uuid.ActivityInstanceUUID;
import org.ow2.bonita.facade.uuid.PackageDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessInstanceUUID;
import org.ow2.bonita.facade.uuid.TaskUUID;
import org.ow2.bonita.pvm.job.Timer;
import org.ow2.bonita.runtime.TaskRunTime;
import org.ow2.bonita.runtime.XpdlExecution;
import org.ow2.bonita.runtime.XpdlInstance;

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

  /**
   * The key used by the IoC engine for concrete implementation injection.
   */
  String DEFAULT_KEY = "repository";

  /**
   * CLASS
   */
  void storePackageClassData(PackageClassData packageClassData);
  void removePackageClassData(PackageDefinitionUUID packageUUID);
  //if found in package datas take it, else look into global datas
  PackageClassData getPackageClassData(PackageDefinitionUUID packageId);
  void storeGlobalClassData(GlobalClassData globalClassData);
  void removeGlobalClassData(String className);
  GlobalClassData getGlobalClassData(String className);

  /**
   * INSTANCE
   */
  void storeXpdlInstance(XpdlInstance instance);
  Set getXpdlInstances(ProcessDefinitionUUID processUUID);
  XpdlInstance getXpdlInstance(ProcessInstanceUUID instanceUUID);
  XpdlInstance removeXpdlInstance(ProcessInstanceUUID instanceUUID);
  XpdlExecution getExecutionOnActivity(ProcessInstanceUUID instanceUUID,
      ActivityInstanceUUID activityInstanceUUID);


  void storePackageVersion(String packageId, String packageVersion);
  void removePackageVersion(String packageId, String packageVersion);

  /**
   * PROCESS
   */
  void storeXpdlProcess(XpdlProcess xpdlProcess);

  XpdlProcess getXpdlProcess(ProcessDefinitionUUID processUUID);
  XpdlProcess removeXpdlProcess(ProcessDefinitionUUID processUUID);
  String getLastPackageVersion(String packageId);
  String getLastProcessVersion(String processId, String packageId);
  void storeProcessVersion(String processId, String processVersion, String packageId);
  void removeProcessVersion(String processId, String processVersion, String packageId);
  /**
   * TASK
   */
  /** return all tasks associated to the given instance */
  Set getInstanceTasks(ProcessInstanceUUID instanceUUID);
  TaskRunTime getTask(TaskUUID taskUUID);
  TaskRunTime getTask(XpdlExecution execution);

  void addTask(TaskRunTime task);
  void removeTask(TaskRunTime task);


  /*
   * CLASS DEPENDENCIES
   */
  void addPackageDependencies(PackageDefinitionUUID packageUUID, Set classNames);
  void removePackageDependencies(PackageDefinitionUUID packageUUID);
  PackageDependency getPackageDependency(PackageDefinitionUUID packageUUID);
  /** returns a set of packageDefinitionUUID of all packages depending on the given className. */
  Set getPackageDependencies(String className);

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy