package ee.telekom.workflow.graph.core; import java.util.Date; import java.util.Map; import ee.telekom.workflow.graph.GraphWorkItem; import ee.telekom.workflow.graph.Token; import ee.telekom.workflow.graph.WorkItemStatus; public class GraphWorkItemImpl implements GraphWorkItem{ private Long externalId; private Long externalGraphIntanceId; private Token token; private String signal; private Date dueDate; private String bean; private String method; private String role; private String user; private Object arguments; private Object result; private WorkItemStatus status; public static GraphWorkItemImpl createSignalItem( Token token, String signal ){ GraphWorkItemImpl result = new GraphWorkItemImpl(); result.setExternalGraphInstanceId( token.getInstance().getExternalId() ); result.setToken( token ); result.setStatus( WorkItemStatus.NEW ); result.setSignal( signal ); return result; } public static GraphWorkItemImpl createTimerItem( Token token, Date dueDate ){ GraphWorkItemImpl result = new GraphWorkItemImpl(); result.setExternalGraphInstanceId( token.getInstance().getExternalId() ); result.setToken( token ); result.setStatus( WorkItemStatus.NEW ); result.setDueDate( dueDate ); return result; } public static GraphWorkItemImpl createTaskItem( Token token, String bean, String method, Object[] arguments ){ GraphWorkItemImpl result = new GraphWorkItemImpl(); result.setExternalGraphInstanceId( token.getInstance().getExternalId() ); result.setToken( token ); result.setStatus( WorkItemStatus.NEW ); result.setBean( bean ); result.setMethod( method ); result.setArguments( arguments ); return result; } public static GraphWorkItemImpl createHumanTaskItem( Token token, String role, String user, Map<String, Object> arguments ){ GraphWorkItemImpl result = new GraphWorkItemImpl(); result.setExternalGraphInstanceId( token.getInstance().getExternalId() ); result.setToken( token ); result.setStatus( WorkItemStatus.NEW ); result.setRole( role ); result.setUser( user ); result.setArguments( arguments ); return result; } @Override public Long getExternalId(){ return externalId; } public void setExternalId( Long externalId ){ this.externalId = externalId; } @Override public Long getExternalGraphInstanceId(){ return externalGraphIntanceId; } public void setExternalGraphInstanceId( Long externalGraphIntanceId ){ this.externalGraphIntanceId = externalGraphIntanceId; } @Override public Token getToken(){ return token; } public void setToken( Token token ){ this.token = token; } @Override public String getSignal(){ return signal; } public void setSignal( String signal ){ this.signal = signal; } @Override public Date getDueDate(){ return dueDate; } public void setDueDate( Date dueDate ){ this.dueDate = dueDate; } @Override public String getBean(){ return bean; } public void setBean( String bean ){ this.bean = bean; } @Override public String getMethod(){ return method; } public void setMethod( String method ){ this.method = method; } @Override public String getRole(){ return role; } public void setRole( String role ){ this.role = role; } @Override public String getUser(){ return user; } public void setUser( String user ){ this.user = user; } @Override public Object[] getTaskArguments(){ return (Object[])arguments; } @Override public Map<String, Object> getHumanTaskArguments(){ @SuppressWarnings("unchecked") Map<String, Object> result = (Map<String, Object>)arguments; return result; } public void setArguments( Object arguments ){ this.arguments = arguments; } @Override public Object getResult(){ return result; } @Override public void setResult( Object result ){ this.result = result; } @Override public WorkItemStatus getStatus(){ return status; } @Override public void setStatus( WorkItemStatus status ){ this.status = status; } }