Package ch.bsgroup.scrumit.dao.impl

Source Code of ch.bsgroup.scrumit.dao.impl.UserStoryDaoImplHibernate

package ch.bsgroup.scrumit.dao.impl;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import ch.bsgroup.scrumit.domain.Sprint;
import ch.bsgroup.scrumit.domain.UserStory;
import ch.bsgroup.scrumit.dao.IUserStoryDao;
import ch.bsgroup.scrumit.utils.HibernateUtil;

/**
* UserStory Dao Hibernate Implementation
*/
public class UserStoryDaoImplHibernate implements IUserStoryDao {
  /**
   * Add UserStory
   */
  public UserStory addUserStory(UserStory u) {
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session sess = sessionFactory.getCurrentSession();

    Transaction tx = sess.beginTransaction();
    sess.save(u);
    sess.flush();
    tx.commit();

    return u;
  }

  /**
   * Update UserStory
   */
  public void updateUserStory(UserStory u) {
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session sess = sessionFactory.getCurrentSession();

    Transaction tx = sess.beginTransaction();
    sess.update(u);
    tx.commit();
  }

  /**
   * Delete UserStory
   */
  public void removeUserStory(int userstoryId){
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session sess = sessionFactory.getCurrentSession();

    Transaction tx = sess.beginTransaction();

    try {
      UserStory u = (UserStory)sess.createQuery("from UserStory where id = "+userstoryId).list().get(0);
      Set<Sprint> sprints = u.getSprints();
      for (Sprint sprint : sprints) {
        if (sprint.getUserStories().contains(u)) {
          sprint.getUserStories().remove(u);
              sess.saveOrUpdate(sprint);
        }
      }
      sess.delete(u);
        tx.commit();
    }
    catch (Exception ex) {
      System.err.println("Failed deleting Person: "+ex.getMessage());
    }
  }

  /**
   * Get all UserStories
   */
  public Set<UserStory> getAllUserStorys() {
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session sess = sessionFactory.getCurrentSession();

    Transaction tx = sess.beginTransaction();
    @SuppressWarnings("unchecked")
    List<UserStory> list = sess.createQuery("from UserStory").list();
    Set<UserStory> userstorys = new HashSet<UserStory>(list);
    tx.commit();

    return userstorys;
  }

  /**
   * Find UserStory by ID
   */
  public UserStory findUserStoryById(int userstoryId) {
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session sess = sessionFactory.getCurrentSession();

    Transaction tx = sess.beginTransaction();
    try {
      UserStory userstory = (UserStory)sess.createQuery("from UserStory where id = "+userstoryId).list().get(0);
      tx.commit();
      return userstory;
    }
    catch (IndexOutOfBoundsException ex) {
      return null;
    }
  }

  /**
   * Get all UserStories by Sprint(Id)
   */
  public Set<UserStory> getAllUserStorysBySprintId(int sprintId) {
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session sess = sessionFactory.getCurrentSession();

    Transaction tx = sess.beginTransaction();
    @SuppressWarnings("unchecked")
    List<UserStory> list = sess.createQuery("select u from UserStory u join u.sprints spri where spri.id = :id").setParameter("id", sprintId).list()
   
    Set<UserStory> userstorys = new HashSet<UserStory>(list);
    tx.commit();

    return userstorys;
  }
}
TOP

Related Classes of ch.bsgroup.scrumit.dao.impl.UserStoryDaoImplHibernate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.