package ee.telekom.workflow.core.workitem; import java.io.Serializable; import java.util.Date; import ee.telekom.workflow.facade.WorkflowEngineFacade; import ee.telekom.workflow.graph.GraphWorkItem; import ee.telekom.workflow.graph.WorkItemStatus; /** * A work item is handle/reference to an uncompleted graph node execution in order * to complete it at some future point in time. * <p> * A {@link WorkItem} is the persisted correspondent of a {@link GraphWorkItem}. * <p> * This class is intended for internal usage within this module and should not * be passed to external clients via the {@link WorkflowEngineFacade}. * * @author Christian Klock */ public class WorkItem implements Serializable{ private static final long serialVersionUID = 1L; private Long refNum; private Long woinRefNum; private int tokenId; private WorkItemStatus status; private String signal; private Date dueDate; private String bean; private String method; private String role; private String userName; private String arguments; private String result; public Long getRefNum(){ return refNum; } public void setRefNum( Long refNum ){ this.refNum = refNum; } public Long getWoinRefNum(){ return woinRefNum; } public void setWoinRefNum( Long woinRefNum ){ this.woinRefNum = woinRefNum; } public int getTokenId(){ return tokenId; } public void setTokenId( int tokenId ){ this.tokenId = tokenId; } public WorkItemStatus getStatus(){ return status; } public void setStatus( WorkItemStatus status ){ this.status = status; } public String getSignal(){ return signal; } public void setSignal( String signal ){ this.signal = signal; } public Date getDueDate(){ return dueDate; } public void setDueDate( Date dueDate ){ this.dueDate = dueDate; } public String getBean(){ return bean; } public void setBean( String bean ){ this.bean = bean; } public String getMethod(){ return method; } public void setMethod( String method ){ this.method = method; } public String getRole(){ return role; } public void setRole( String role ){ this.role = role; } public String getUserName(){ return userName; } public void setUserName( String userName ){ this.userName = userName; } public String getArguments(){ return arguments; } public void setArguments( String arguments ){ this.arguments = arguments; } public String getResult(){ return result; } public void setResult( String result ){ this.result = result; } public WorkItemType getType(){ if( signal != null ){ return WorkItemType.SIGNAL; } else if( dueDate != null ){ return WorkItemType.TIMER; } else if( bean != null && method != null ){ return WorkItemType.TASK; } else if( role != null || userName != null ){ return WorkItemType.HUMAN_TASK; } else{ throw new IllegalStateException( "Unknown work item type" ); } } }