001: /**
002: *
003: */package org.emforge.projectmanager.dao;
004:
005: import java.util.Collection;
006: import java.util.Date;
007: import java.util.List;
008:
009: import org.emforge.projectmanager.base.MilestoneDO;
010: import org.emforge.projectmanager.base.ProjectDO;
011: import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
012:
013: /**
014: * @author YShevchenko
015: *
016: */
017: public class MilestoneDAOHibernateImpl extends HibernateDaoSupport
018: implements MilestoneDAO {
019:
020: @SuppressWarnings("unchecked")
021: public Collection<MilestoneDO> getMilestones() {
022: return getHibernateTemplate().loadAll(MilestoneDO.class);
023: }
024:
025: public MilestoneDO getMilestoneById(Long id) {
026: return (MilestoneDO) getHibernateTemplate().get(
027: MilestoneDO.class, id);
028: }
029:
030: @SuppressWarnings("unchecked")
031: public Collection<MilestoneDO> getMilestonesByProject(
032: ProjectDO project) {
033: return getHibernateTemplate().findByNamedQuery(
034: "Milestone.findMilestonesByProject", project);
035: }
036:
037: @SuppressWarnings("unchecked")
038: public Collection<MilestoneDO> getOpenedMilestonesByProject(
039: ProjectDO project) {
040: return getHibernateTemplate().findByNamedQuery(
041: "Milestone.findOpenedMilestonesByProject", project);
042: }
043:
044: @SuppressWarnings("unchecked")
045: public Collection<MilestoneDO> getClosedMilestonesByProject(
046: ProjectDO project) {
047: return getHibernateTemplate().findByNamedQuery(
048: "Milestone.findClosedMilestonesByProject", project);
049: }
050:
051: @SuppressWarnings("unchecked")
052: public MilestoneDO getMilestoneByName(String i_name) {
053: List<MilestoneDO> milestones = getHibernateTemplate()
054: .findByNamedQuery("Milestone.findMilestoneByName",
055: i_name);
056:
057: if (milestones.size() == 0) {
058: // no any milestone with specified name found
059: return null;
060: } else if (milestones.size() > 0) {
061: //@todo Later we will check for multiple milestones selected
062: return milestones.get(0);
063: }
064:
065: return null;
066: }
067:
068: public MilestoneDO saveMilestone(MilestoneDO milestone) {
069: /*
070: if (milestone.getWikiName() == null || milestone.getWikiName().length() == 0) {
071: milestone.setWikiName(MarkupParser.cleanLink(milestone.getName()));
072: }
073: */
074:
075: getHibernateTemplate().saveOrUpdate(milestone);
076: return milestone;
077: }
078:
079: public MilestoneDO closeMilestone(MilestoneDO i_milestone) {
080: MilestoneDO milestone = (MilestoneDO) getHibernateTemplate()
081: .get(MilestoneDO.class, i_milestone.getId());
082: milestone.setClosedStatus(true);
083: milestone.setActualDate(new Date());
084: getHibernateTemplate().update(milestone);
085: return milestone;
086: }
087:
088: public MilestoneDO reopenMilestone(MilestoneDO i_milestone) {
089: MilestoneDO milestone = (MilestoneDO) getHibernateTemplate()
090: .get(MilestoneDO.class, i_milestone.getId());
091: if (milestone.getId() != null && milestone.getClosedStatus()) {
092: milestone.setClosedStatus(false);
093: milestone.setActualDate(null);
094: getHibernateTemplate().update(milestone);
095: }
096: return milestone;
097: }
098:
099: public void deleteMilestone(MilestoneDO milestone) {
100: getHibernateTemplate().delete(milestone);
101: }
102:
103: }
|