package net.sourceforge.seqware.common.dao.hibernate;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
import net.sourceforge.seqware.common.dao.ShareWorkflowRunDAO;
import net.sourceforge.seqware.common.model.ShareWorkflowRun;
import net.sourceforge.seqware.common.model.WorkflowRun;
import net.sourceforge.seqware.common.util.NullBeanUtils;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* <p>
* ShareWorkflowRunDAOHibernate class.
* </p>
*
* @author boconnor
* @version $Id: $Id
*/
public class ShareWorkflowRunDAOHibernate extends HibernateDaoSupport implements ShareWorkflowRunDAO {
/**
* <p>
* Constructor for ShareWorkflowRunDAOHibernate.
* </p>
*/
public ShareWorkflowRunDAOHibernate() {
super();
}
/**
* {@inheritDoc}
*
* Inserts an instance of ShareWorkflowRun into the database.
*/
@Override
public void insert(ShareWorkflowRun shareWorkflowRun) {
this.getHibernateTemplate().save(shareWorkflowRun);
}
/**
* {@inheritDoc}
*
* Updates an instance of ShareWorkflowRun in the database.
*/
@Override
public void update(ShareWorkflowRun shareWorkflowRun) {
this.getHibernateTemplate().update(shareWorkflowRun);
}
/**
* {@inheritDoc}
*
* Updates an instance of ShareWorkflowRun in the database.
*/
@Override
public void delete(ShareWorkflowRun shareWorkflowRun) {
this.getHibernateTemplate().delete(shareWorkflowRun);
}
/**
* {@inheritDoc}
*
* Finds an instance of ShareWorkflowRun in the database by the ShareWorkflowRun ID.
*/
@Override
public ShareWorkflowRun findByWorkflowRunIdAndRegistrationId(Integer workflowRunId, Integer registrationId) {
String query = "from ShareWorkflowRun as shareWorkflowRun where shareWorkflowRun.workflowRunId = ? and shareWorkflowRun.registration.registrationId = ?";
ShareWorkflowRun shareWorkflowRun = null;
Object[] parameters = { workflowRunId, registrationId };
List list = this.getHibernateTemplate().find(query, parameters);
if (list.size() > 0) {
shareWorkflowRun = (ShareWorkflowRun) list.get(0);
}
return shareWorkflowRun;
}
/**
* {@inheritDoc}
*
* Finds an instance of ShareWorkflowRun in the database by the ShareWorkflowRun ID.
*/
@Override
public ShareWorkflowRun findByID(Integer id) {
String query = "from ShareWorkflowRun as shareWorkflowRun where shareWorkflowRun.shareWorkflowRunId = ?";
ShareWorkflowRun shareWorkflowRun = null;
Object[] parameters = { id };
List list = this.getHibernateTemplate().find(query, parameters);
if (list.size() > 0) {
shareWorkflowRun = (ShareWorkflowRun) list.get(0);
}
return shareWorkflowRun;
}
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override
public ShareWorkflowRun findBySWAccession(Integer swAccession) {
String query = "from ShareWorkflowRun as shareWorkflowRun where shareWorkflowRun.swAccession = ?";
ShareWorkflowRun shareWorkflowRun = null;
Object[] parameters = { swAccession };
List<ShareWorkflowRun> list = this.getHibernateTemplate().find(query, parameters);
if (list.size() > 0) {
shareWorkflowRun = (ShareWorkflowRun) list.get(0);
}
return shareWorkflowRun;
}
/** {@inheritDoc} */
@Override
public List<ShareWorkflowRun> list(WorkflowRun workflowRun) {
List<ShareWorkflowRun> shareWorkflowRuns = new ArrayList<>();
String query = "from ShareWorkflowRun as shareWorkflowRun where shareWorkflowRun.workflowRunId = ?";
Object[] parameters = { workflowRun.getWorkflowRunId() };
List list = this.getHibernateTemplate().find(query, parameters);
for (Object shareWorkflowRun : list) {
shareWorkflowRuns.add((ShareWorkflowRun) shareWorkflowRun);
}
return shareWorkflowRuns;
}
/** {@inheritDoc} */
@Override
public ShareWorkflowRun getShareWorkflowRun(String email, WorkflowRun workflowRun) {
String query = "from ShareWorkflowRun as shareWorkflowRun where shareWorkflowRun.workflowRunId = ? and shareWorkflowRun.email = ?";
ShareWorkflowRun shareWorkflowRun = null;
Object[] parameters = { workflowRun.getWorkflowRunId(), email };
List list = this.getHibernateTemplate().find(query, parameters);
if (list.size() > 0) {
shareWorkflowRun = (ShareWorkflowRun) list.get(0);
}
return shareWorkflowRun;
}
/** {@inheritDoc} */
@Override
public ShareWorkflowRun updateDetached(ShareWorkflowRun shareWorkflowRun) {
ShareWorkflowRun dbObject = findByID(shareWorkflowRun.getShareWorkflowRunId());
try {
BeanUtilsBean beanUtils = new NullBeanUtils();
beanUtils.copyProperties(dbObject, shareWorkflowRun);
return (ShareWorkflowRun) this.getHibernateTemplate().merge(dbObject);
} catch (IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
return null;
}
/** {@inheritDoc} */
@Override
public List<ShareWorkflowRun> list() {
throw new UnsupportedOperationException("Not supported yet.");
}
}