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

import java.rmi.RemoteException;
import java.util.List;

import workflow.WorkflowException;
import workflow.live.LiveInterface;
import workflow.live.pm.LiveParticipant;
import workflow.live.rtm.LiveCase;
import workflow.live.rtm.LiveWork;
import workflow.live.xpdl.LiveProcess;
import workflow.store.persistence.PrimaryKey;


/**
 * @author Administrator
 *
 * To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Generation - Code and Comments
 */
public interface LiveCaseDatabase extends LiveInterface
{
//------------------------------------------------------------------------------------
// LiveCase utilities   
//------------------------------------------------------------------------------------                                        
	public  String             createLiveCase(String sessionID,LiveProcess liveProcess,LiveParticipant creator,java.util.Date creationTime,String primaryKey)throws WorkflowException,RemoteException;
	public  String             createLiveCase(String sessionID,LiveProcess liveProcess,LiveParticipant creator,java.util.Date creationTime,String primaryKey,String name)throws WorkflowException,RemoteException; 
	public  String             createLiveCase(String sessionID,LiveProcess liveProcess,LiveParticipant creator,java.util.Date creationTime,String primaryKey,String name,String description)throws WorkflowException,RemoteException;
  
	public  LiveCase           findLiveCase(String sessionID,LiveProcess liveProcess,String caseId)throws WorkflowException,RemoteException;                                  
	public  LiveCase           findLiveCase(String sessionID,LiveProcess liveProcess,PrimaryKey primaryKey)throws WorkflowException,RemoteException;
	public  List               getLiveCaseList(String sessionID,LiveProcess liveProcess,LiveParticipant creator)throws WorkflowException,RemoteException;
   
	public  void               deleteLiveCase(String sessionID,LiveProcess liveProcess,LiveCase liveCase)throws WorkflowException,RemoteException;                                   
	public  void               cancelLiveCase(String sessionID,LiveProcess liveProcess,LiveCase liveCase)throws WorkflowException,RemoteException;    
 	public  void               suspendLiveCase(String sessionID,LiveProcess liveProcess,LiveCase liveCase)throws WorkflowException,RemoteException; 
	public  void               resumeLiveCase(String sessionID,LiveProcess liveProcess,LiveCase liveCase)throws WorkflowException,RemoteException;

//------------------------------------------------------------------------------------
// LiveWork utilities
//------------------------------------------------------------------------------------      
	public  LiveWork           findLiveWork(String sessionID,LiveProcess liveProcess,LiveCase liveCase,String workId)throws WorkflowException,RemoteException;
	public  List               getLiveWorkList(String sessionID,LiveProcess liveProcess,LiveParticipant performer,int itemStatus)throws WorkflowException,RemoteException;                               
	public  List               getLiveWorkList(String sessionID,LiveProcess liveProcess,LiveCase liveCase,LiveParticipant performer,int itemStatus)throws WorkflowException,RemoteException;   

}
