/*
 * Created on 2004-5-29
 *
 * To change the template for this generated file go to
 * Window - Preferences - Java - Code Generation - Code and Comments
 */
package workflow.store;

import java.util.List;

import workflow.WorkflowException;
import workflow.store.persistence.PrimaryKey;
import workflow.store.persistence.UserTransaction;
import workflow.wfmc.pm.Participant;
import workflow.wfmc.rtm.WorkflowCase;
import workflow.wfmc.rtm.WorkflowWork;
import workflow.wfmc.xpdl.WorkflowProcess;

/**
 * @author Administrator
 *
 * To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Generation - Code and Comments
 */

public interface CaseDatabase extends Database
{
	public UserTransaction getUserTransaction() throws WorkflowException;

	public String createWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		Participant creator,
		java.util.Date creationTime,
		String primaryKey)
		throws WorkflowException;

	public String createWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		Participant creator,
		java.util.Date creationTime,
		String primaryKey)
		throws WorkflowException;

	public String createWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		Participant creator,
		java.util.Date creationTime,
		String primaryKey,
		String name)
		throws WorkflowException;

	public String createWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		Participant creator,
		java.util.Date creationTime,
		String primaryKey,
		String name)
		throws WorkflowException;

	public String createWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		Participant creator,
		java.util.Date creationTime,
		String primaryKey,
		String name,
		String description)
		throws WorkflowException;

	public String createWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		Participant creator,
		java.util.Date creationTime,
		String primaryKey,
		String name,
		String description)
		throws WorkflowException;

	public WorkflowCase findWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		String caseId)
		throws WorkflowException;

	public WorkflowCase findWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		String caseId)
		throws WorkflowException;

	public WorkflowCase findWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		PrimaryKey primaryKey)
		throws WorkflowException;

	public WorkflowCase findWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		PrimaryKey primaryKey)
		throws WorkflowException;

	public List getWorkflowCaseList(
		String sessionID,
		WorkflowProcess workflowProcess,
		Participant creator)
		throws WorkflowException;

	public List getWorkflowCaseList(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		Participant creator)
		throws WorkflowException;

	public void updateWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		WorkflowCase workflowCase)
		throws WorkflowException;

	public void updateWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		WorkflowCase workflowCase)
		throws WorkflowException;

	public void deleteWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		WorkflowCase workflowCase)
		throws WorkflowException;

	public void deleteWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		WorkflowCase workflowCase)
		throws WorkflowException;

	public void cancelWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		WorkflowCase workflowCase)
		throws WorkflowException;

	public void cancelWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		WorkflowCase workflowCase)
		throws WorkflowException;

	public void suspendWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		WorkflowCase workflowCase)
		throws WorkflowException;

	public void suspendWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		WorkflowCase workflowCase)
		throws WorkflowException;

	public void resumeWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		WorkflowCase workflowCase)
		throws WorkflowException;

	public void resumeWorkflowCase(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		WorkflowCase workflowCase)
		throws WorkflowException;

	public WorkflowWork findWorkflowWork(
		String sessionID,
		WorkflowProcess workflowProcess,
		WorkflowCase workflowCase,
		String workId)
		throws WorkflowException;

	public WorkflowWork findWorkflowWork(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		WorkflowCase workflowCase,
		String workId)
		throws WorkflowException;

	public List getWorkflowWorkList(
		String sessionID,
		WorkflowProcess workflowProcess,
		Participant performer,
		int itemStatus)
		throws WorkflowException;

	public List getWorkflowWorkList(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		Participant performer,
		int itemStatus)
		throws WorkflowException;

	public List getWorkflowWorkList(
		String sessionID,
		WorkflowProcess workflowProcess,
		WorkflowCase workflowCase,
		Participant performer,
		int itemStatus)
		throws WorkflowException;

	public List getWorkflowWorkList(
		String sessionID,
		WorkflowProcess workflowProcess,
		UserTransaction userTransaction,
		WorkflowCase workflowCase,
		Participant performer,
		int itemStatus)
		throws WorkflowException;

}
