package net.sourceforge.seqware.common.business.impl;
import java.util.Date;
import java.util.List;
import java.util.SortedSet;
import net.sourceforge.seqware.common.business.WorkflowService;
import net.sourceforge.seqware.common.dao.WorkflowDAO;
import net.sourceforge.seqware.common.model.Registration;
import net.sourceforge.seqware.common.model.SequencerRun;
import net.sourceforge.seqware.common.model.Workflow;
import net.sourceforge.seqware.common.model.WorkflowParam;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* <p>
* WorkflowServiceImpl class.
* </p>
*
* @author boconnor
* @version $Id: $Id
*/
public class WorkflowServiceImpl implements WorkflowService {
private WorkflowDAO workflowDAO = null;
private static final Log LOG = LogFactory.getLog(WorkflowServiceImpl.class);
/**
* <p>
* Constructor for WorkflowServiceImpl.
* </p>
*/
public WorkflowServiceImpl() {
super();
}
/**
* {@inheritDoc}
*
* Sets a private member variable with an instance of an implementation of WorkflowDAO. This method is called by the Spring framework at
* run time.
*
* @see WorkflowDAO
*/
@Override
public void setWorkflowDAO(WorkflowDAO workflowDAO) {
this.workflowDAO = workflowDAO;
}
/** {@inheritDoc} */
@Override
public Integer insert(Workflow workflow) {
workflow.setCreateTimestamp(new Date());
return workflowDAO.insert(workflow);
}
/** {@inheritDoc} */
@Override
public void update(Workflow workflow) {
workflowDAO.update(workflow);
}
/** {@inheritDoc} */
@Override
public void delete(Workflow workflow) {
workflowDAO.delete(workflow);
}
/**
* <p>
* list.
* </p>
*
* @return a {@link java.util.List} object.
*/
@Override
public List<Workflow> list() {
return workflowDAO.list();
}
/** {@inheritDoc} */
@Override
public List<Workflow> list(Registration registration) {
return workflowDAO.list(registration);
}
/** {@inheritDoc} */
@Override
public List<Workflow> listMyShared(Registration registration) {
return workflowDAO.listMyShared(registration);
}
/** {@inheritDoc} */
@Override
public List<Workflow> listSharedWithMe(Registration registration) {
return workflowDAO.listSharedWithMe(registration);
}
/** {@inheritDoc} */
@Override
public List<Workflow> listSequencerRunsWorkflows(SequencerRun sr) {
return workflowDAO.listWorkflows(sr);
}
/** {@inheritDoc} */
@Override
public List<Workflow> findByName(String name) {
List<Workflow> workflows = null;
if (name != null) {
try {
workflows = workflowDAO.findByName(name.trim());
} catch (Exception exception) {
LOG.debug("Cannot find Workflow by name " + name);
}
}
return workflows;
}
/** {@inheritDoc} */
@Override
public Workflow findByID(Integer wfID) {
Workflow workflow = null;
if (wfID != null) {
try {
workflow = workflowDAO.findByID(wfID);
} catch (Exception exception) {
LOG.error("Cannot find Workflow by wfID " + wfID);
LOG.error(exception.getMessage());
}
}
return workflow;
}
/** {@inheritDoc} */
@Override
public Workflow findByIDWithParams(Integer wfID) {
Workflow workflow = findByID(wfID);
if (workflow != null) {
SortedSet<WorkflowParam> params = workflow.getWorkflowParams();
for (WorkflowParam param : params) {
param.getWorkflowParamId();
}
}
return workflow;
}
/** {@inheritDoc} */
@Override
public Workflow findBySWAccession(Integer swAccession) {
Workflow workflow = null;
if (swAccession != null) {
try {
workflow = workflowDAO.findBySWAccession(swAccession);
} catch (Exception exception) {
LOG.error("Cannot find Workflow by swAccession " + swAccession);
LOG.error(exception.getMessage());
}
}
return workflow;
}
/** {@inheritDoc} */
@Override
public List<Workflow> findByCriteria(String criteria, boolean isCaseSens) {
return workflowDAO.findByCriteria(criteria, isCaseSens);
}
/** {@inheritDoc} */
@Override
public Workflow updateDetached(Workflow workflow) {
return workflowDAO.updateDetached(workflow);
}
/** {@inheritDoc} */
@Override
public Integer insert(Registration registration, Workflow workflow) {
workflow.setCreateTimestamp(new Date());
return workflowDAO.insert(registration, workflow);
}
/** {@inheritDoc} */
@Override
public Workflow updateDetached(Registration registration, Workflow workflow) {
return workflowDAO.updateDetached(registration, workflow);
}
/** {@inheritDoc} */
@Override
public void update(Registration registration, Workflow workflow) {
workflowDAO.update(registration, workflow);
}
}
// ex:sw=4:ts=4: