package net.sourceforge.seqware.common.dao.hibernate;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import net.sourceforge.seqware.common.dao.ProcessingSequencerRunsDAO;
import net.sourceforge.seqware.common.model.Processing;
import net.sourceforge.seqware.common.model.ProcessingSequencerRuns;
import net.sourceforge.seqware.common.model.SequencerRun;
import net.sourceforge.seqware.common.util.NullBeanUtils;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* <p>
* ProcessingSequencerRunsDAOHibernate class.
* </p>
*
* @author boconnor
* @version $Id: $Id
*/
public class ProcessingSequencerRunsDAOHibernate extends HibernateDaoSupport implements ProcessingSequencerRunsDAO {
/** {@inheritDoc} */
@Override
public void insert(ProcessingSequencerRuns processingSequencerRuns) {
this.getHibernateTemplate().save(processingSequencerRuns);
}
/*
* (non-Javadoc)
*
* @see net.sourceforge.seqware.common.dao.hibernate.ProcessingSequencerRunsDAO #update (
* net.sourceforge.seqware.common.model.ProcessingSequencerRuns)
*/
/** {@inheritDoc} */
@Override
public void update(ProcessingSequencerRuns processingSequencerRuns) {
this.getHibernateTemplate().update(processingSequencerRuns);
}
/*
* (non-Javadoc)
*
* @see net.sourceforge.seqware.common.dao.hibernate.ProcessingSequencerRunsDAO #delete (
* net.sourceforge.seqware.common.model.ProcessingSequencerRuns)
*/
/** {@inheritDoc} */
@Override
public void delete(ProcessingSequencerRuns processingSequencerRuns) {
this.getHibernateTemplate().delete(processingSequencerRuns);
}
/*
* (non-Javadoc)
*
* @see net.sourceforge.seqware.common.dao.hibernate.ProcessingSequencerRunsDAO #findByProcessingSequencerRun
* (net.sourceforge.seqware.common.model.Processing, net.sourceforge.seqware.common.model.SequencerRun)
*/
/** {@inheritDoc} */
@Override
@SuppressWarnings("rawtypes")
public ProcessingSequencerRuns findByProcessingSequencerRun(Processing processing, SequencerRun sequencerRun) {
String query = "from ProcessingSequencerRuns as ps where ps.processing.processingId = ? and ps.sequencerRun.sequencerRunId = ?";
ProcessingSequencerRuns obj = null;
Object[] parameters = { processing.getProcessingId(), sequencerRun.getSequencerRunId() };
List list = this.getHibernateTemplate().find(query, parameters);
if (list.size() > 0) {
obj = (ProcessingSequencerRuns) list.get(0);
}
return obj;
}
/** {@inheritDoc} */
@Override
public ProcessingSequencerRuns updateDetached(ProcessingSequencerRuns processingSequencerRuns) {
ProcessingSequencerRuns dbObject = findByProcessingSequencerRun(processingSequencerRuns.getProcessing(),
processingSequencerRuns.getSequencerRun());
try {
BeanUtilsBean beanUtils = new NullBeanUtils();
beanUtils.copyProperties(dbObject, processingSequencerRuns);
return (ProcessingSequencerRuns) this.getHibernateTemplate().merge(dbObject);
} catch (IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
return null;
}
/** {@inheritDoc} */
@Override
public List<ProcessingSequencerRuns> list() {
throw new UnsupportedOperationException("Not supported yet.");
}
}