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

org.activiti.engine.impl.history.HistoryManager Maven / Gradle / Ivy

The newest version!
package org.activiti.engine.impl.history;

import org.activiti.bpmn.model.FlowElement;
import org.activiti.engine.api.internal.Internal;
import org.activiti.engine.impl.persistence.entity.*;
import org.activiti.engine.task.IdentityLink;

import java.util.Date;

@Internal
public interface HistoryManager {

  /**
   * @return true, if the configured history-level is equal to OR set to a higher value than the given level.
   */
  boolean isHistoryLevelAtLeast(HistoryLevel level);

  /**
   * @return true, if history-level is configured to level other than "none".
   */
  boolean isHistoryEnabled();

  /**
   * Record a process-instance ended. Updates the historic process instance if activity history is enabled.
   */
  void recordProcessInstanceEnd(String processInstanceId, String deleteReason, String activityId);

  /**
   * Record a process-instance started and record start-event if activity history is enabled.
   */
  void recordProcessInstanceStart(ExecutionEntity processInstance, FlowElement startElement);

  /**
   * Record a process-instance name change.
   */
  void recordProcessInstanceNameChange(String processInstanceId, String newName);

  /**
   * Record a sub-process-instance started and alters the calledProcessinstanceId on the current active activity's historic counterpart. Only effective when activity history is enabled.
   */
  void recordSubProcessInstanceStart(ExecutionEntity parentExecution, ExecutionEntity subProcessInstance, FlowElement initialFlowElement);

  /**
   * Record the start of an activity, if activity history is enabled.
   */
  void recordActivityStart(ExecutionEntity executionEntity);

  /**
   * Record the end of an activity, if activity history is enabled.
   */
  void recordActivityEnd(ExecutionEntity executionEntity, String deleteReason);

  /**
   * Finds the {@link HistoricActivityInstanceEntity} that is active in the given execution.
   */
  HistoricActivityInstanceEntity findActivityInstance(ExecutionEntity execution, boolean createOnNotFound, boolean validateEndTimeNull);

  /**
   * Record a change of the process-definition id of a process instance, if activity history is enabled.
   */
  void recordProcessDefinitionChange(String processInstanceId, String processDefinitionId);

  /**
   * Record the creation of a task, if audit history is enabled.
   */
  void recordTaskCreated(TaskEntity task, ExecutionEntity execution);

  /**
   * Record the assignment of task, if activity history is enabled.
   */
  void recordTaskAssignment(TaskEntity task);

  /**
   * record task instance claim time, if audit history is enabled
   *
   * @param task
   */

  void recordTaskClaim(TaskEntity task);

  /**
   * Record the id of a the task associated with a historic activity, if activity history is enabled.
   */
  void recordTaskId(TaskEntity task);

  /**
   * Record task as ended, if audit history is enabled.
   */
  void recordTaskEnd(String taskId, String deleteReason);

  /**
   * Record task assignee change, if audit history is enabled.
   */
  void recordTaskAssigneeChange(String taskId, String assignee);

  /**
   * Record task owner change, if audit history is enabled.
   */
  void recordTaskOwnerChange(String taskId, String owner);

  /**
   * Record task name change, if audit history is enabled.
   */
  void recordTaskNameChange(String taskId, String taskName);

  /**
   * Record task description change, if audit history is enabled.
   */
  void recordTaskDescriptionChange(String taskId, String description);

  /**
   * Record task due date change, if audit history is enabled.
   */
  void recordTaskDueDateChange(String taskId, Date dueDate);

  /**
   * Record task priority change, if audit history is enabled.
   */
  void recordTaskPriorityChange(String taskId, int priority);

  /**
   * Record task category change, if audit history is enabled.
   */
  void recordTaskCategoryChange(String taskId, String category);

  /**
   * Record task form key change, if audit history is enabled.
   */
  void recordTaskFormKeyChange(String taskId, String formKey);

  /**
   * Record task parent task id change, if audit history is enabled.
   */
  void recordTaskParentTaskIdChange(String taskId, String parentTaskId);

  /**
   * Record task execution id change, if audit history is enabled.
   */
  void recordTaskExecutionIdChange(String taskId, String executionId);

  /**
   * Record task definition key change, if audit history is enabled.
   */
  void recordTaskDefinitionKeyChange(String taskId, String taskDefinitionKey);
  
  /**
   * Record a change of the process-definition id of a task instance, if activity history is enabled.
   */
  public abstract void recordTaskProcessDefinitionChange(String taskId, String processDefinitionId);

  /**
   * Record a variable has been created, if audit history is enabled.
   */
  void recordVariableCreate(VariableInstanceEntity variable);

  /**
   * Record a variable has been created, if audit history is enabled.
   */
  void recordHistoricDetailVariableCreate(VariableInstanceEntity variable, ExecutionEntity sourceActivityExecution, boolean useActivityId);

  /**
   * Record a variable has been updated, if audit history is enabled.
   */
  void recordVariableUpdate(VariableInstanceEntity variable);

  /**
   * Record a variable has been deleted, if audit history is enabled.
   */
  void recordVariableRemoved(VariableInstanceEntity variable);

  /**
   * Creates a new comment to indicate a new {@link IdentityLink} has been created or deleted, if history is enabled.
   */
  void createIdentityLinkComment(String taskId, String userId, String groupId, String type, boolean create);

  /**
   * Creates a new comment to indicate a new user {@link IdentityLink} has been created or deleted, if history is enabled.
   */
  void createUserIdentityLinkComment(String taskId, String userId, String type, boolean create);

  /**
   * Creates a new comment to indicate a new group {@link IdentityLink} has been created or deleted, if history is enabled.
   */
  void createGroupIdentityLinkComment(String taskId, String groupId, String type, boolean create);

  /**
   * Creates a new comment to indicate a new {@link IdentityLink} has been created or deleted, if history is enabled.
   */
  void createIdentityLinkComment(String taskId, String userId, String groupId, String type, boolean create, boolean forceNullUserId);

  /**
   * Creates a new comment to indicate a new user {@link IdentityLink} has been created or deleted, if history is enabled.
   */
  void createUserIdentityLinkComment(String taskId, String userId, String type, boolean create, boolean forceNullUserId);

  /**
   * Creates a new comment to indicate a new {@link IdentityLink} has been created or deleted, if history is enabled.
   */
  void createProcessInstanceIdentityLinkComment(String processInstanceId, String userId, String groupId, String type, boolean create);

  /**
   * Creates a new comment to indicate a new {@link IdentityLink} has been created or deleted, if history is enabled.
   */
  void createProcessInstanceIdentityLinkComment(String processInstanceId, String userId, String groupId, String type, boolean create, boolean forceNullUserId);

  /**
   * Creates a new comment to indicate a new attachment has been created or deleted, if history is enabled.
   */
  void createAttachmentComment(String taskId, String processInstanceId, String attachmentName, boolean create);

  // Identity link related history
  /**
   * Record the creation of a new {@link IdentityLink}, if audit history is enabled.
   */
  void recordIdentityLinkCreated(IdentityLinkEntity identityLink);

  void deleteHistoricIdentityLink(String id);

  void updateProcessBusinessKeyInHistory(ExecutionEntity processInstance);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy