001: /**
002: * Report DAO implementation for Hibernate.
003: */package org.emforge.report.dao;
004:
005: import java.util.Collection;
006: import java.util.List;
007:
008: import org.emforge.xfer.ReportTO;
009: import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
010:
011: /**
012: * Report DAO implementation for Hibernate.
013: *
014: * @author szakusov, 10.04.2008: created.
015: */
016: public class ReportDaoHibernateImpl extends HibernateDaoSupport
017: implements ReportDaoInterface {
018:
019: /**
020: * @see org.emforge.projectmanager.dao.ReportDaoInterface#getAll()
021: */
022: @SuppressWarnings("unchecked")
023: public Collection<Report> getAll() {
024:
025: return getHibernateTemplate().loadAll(ReportDO.class);
026: }
027:
028: /**
029: * @see org.emforge.projectmanager.dao.ReportDaoInterface#getById(java.lang.Long)
030: */
031: public Report getById(Long i_id) {
032:
033: return (Report) getHibernateTemplate()
034: .get(ReportDO.class, i_id);
035: }
036:
037: /**
038: * @see org.emforge.projectmanager.dao.ReportDaoInterface#getByName(java.lang.String)
039: */
040: @SuppressWarnings("unchecked")
041: public Report getByName(String i_name) {
042:
043: Report result = null;
044: List<Report> reports = getHibernateTemplate().findByNamedQuery(
045: "Report.findByName", i_name);
046:
047: if (reports.size() > 0) {
048: result = reports.get(0);
049: }
050:
051: return result;
052: }
053:
054: /**
055: * @see org.emforge.projectmanager.dao.ReportDaoInterface#save(org.emforge.projectmanager.base.Report)
056: */
057: public Report save(Report i_report) {
058:
059: getHibernateTemplate().saveOrUpdate(i_report);
060: return i_report;
061: }
062:
063: /**
064: * @see org.emforge.report.dao.ReportDaoInterface#save(org.emforge.xfer.ReportTO)
065: */
066: public Report save(ReportTO i_report) {
067:
068: String wikiName = i_report.getName();
069: Report report = getByName(wikiName);
070: if (report == null) {
071: report = new ReportDO();
072: } else {
073: i_report.setId(report.getId());
074: }
075: report.setName(wikiName);
076: report.setVersion(i_report.getVersion());
077: report.setDisplayName(i_report.getDisplayName());
078: report.setDescription(i_report.getDescription());
079: report.setLink(i_report.getLink());
080:
081: return save(report);
082: }
083:
084: /**
085: * @see org.emforge.report.dao.ReportDaoInterface#delete(java.lang.String)
086: */
087: public void delete(String i_name) {
088:
089: delete(getByName(i_name));
090: }
091:
092: /**
093: * @see org.emforge.projectmanager.dao.ReportDaoInterface#delete(org.emforge.projectmanager.base.Report)
094: */
095: public void delete(Report i_report) {
096:
097: if (i_report != null) {
098: getHibernateTemplate().delete(i_report);
099: }
100: }
101: }
|