/*
 * Created on 2004-1-22
 *
 * To change the template for this generated file go to
 * Window - Preferences - Java - Code Generation - Code and Comments
 */
package workflow.wfmc.xpdl;

import java.util.List;

import workflow.wfmc.xpdl.event.WorkListener;
import workflow.wfmc.xpdl.activity.ActivityType;
import workflow.wfmc.xpdl.activity.Implementation;
import workflow.wfmc.xpdl.activity.JoinType;
import workflow.wfmc.xpdl.activity.PerformerType;
import workflow.wfmc.xpdl.activity.SplitType;
import workflow.wfmc.xpdl.util.Duration;
/**
 * @author reic
 *
 * To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Generation - Code and Comments
 */
public interface WorkflowActivity extends XPDLElement
{  
//------------------------------------------------------------------------------------------------
  public Duration    getDuration();
  public void        setDuration(Duration duration);
  public void        setDuration(String duration);
  
  public WorkflowProcess   getWorkflowProcess(); 
  public void              setWorkflowProcess(WorkflowProcess workflowProcess);  
  
//------------------------------------------------------------------------------------------------
  public List     getInTransitions();
  
  public List     getOutTransitions();

	public SplitType  getSplitType();
	public void       setSplitType(SplitType splitType);
	public void       setSplitType(String splitType);
	  
  public JoinType  getJoinType();
  public void      setJoinType(JoinType joinType);
  public void      setJoinType(String joinType);
 
	public ActivityType   getActivityType();
	public void           setActivityType(ActivityType activityType);
	public void           setActivityType(String activityType);
	 
//------------------------------------------------------------------------------------------------   
  public Implementation   getImplementation();  
  public void             setImplementation(Implementation impl); 
  
  public List             getPerformers();
  public void             parsePerformers(String performers);
  
  public PerformerType    getPerformerType();
  public void             setPerformerType(PerformerType performerType );
  
  
  public void addWorkListener(WorkListener listener);
  public void removeWorkListener(WorkListener listener);  
  public WorkListener[] getWorkListeners(); 
}
