//----------------------------BEGIN LICENSE----------------------------
/* 
 * Willow : the Open Source WorkFlow Project
 * Distributable under GNU LGPL license by gun.org
 *
 * Copyright (C) 2004-2010 huihoo.org 
 * Copyright (C) 2004-2010  ZosaTapo <dertyang@hotmail.com> 
 * 
 * ====================================================================
 * Project Homepage : http://www.huihoo.org/willow
 * Source Forge     : http://sourceforge.net/projects/huihoo
 * Mailing list     : willow@lists.sourceforge.net 
 */
//----------------------------END  LICENSE-----------------------------
package org.huihoo.workflow.store;
import org.huihoo.workflow.WorkflowComponent;
import org.huihoo.workflow.server.WorkflowSession;
import org.huihoo.workflow.server.WorkflowWork;

public interface WorkflowWorkValidator extends WorkflowComponent
{
	public WorkflowTemplate getWorkflowTemplate();
	public void setWorkflowTemplate(WorkflowTemplate workflowTemplate);
	
	public boolean checkAccept(WorkflowSession workflowSession, WorkflowWork workflowWork) throws ValidationException;

	public boolean checkFetch(WorkflowSession workflowSession, WorkflowWork workflowWork) throws ValidationException;

	public boolean checkBacktrack(WorkflowSession workflowSession, WorkflowWork workflowWork) throws ValidationException;
	
	public boolean checkReverse(WorkflowSession workflowSession, WorkflowWork workflowWork) throws ValidationException;

	public boolean checkSubmit(WorkflowSession workflowSession, WorkflowWork workflowWork) throws ValidationException;

	public boolean checkFind(WorkflowSession workflowSession, WorkflowWork workflowItem) throws ValidationException;
}
