Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LearnerProgressDAO.java =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LearnerProgressDAO.java (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LearnerProgressDAO.java (revision dfee2e34d419c6b3504a2709bd0f076dfb419370) @@ -0,0 +1,50 @@ +/* + * LessonDAO.java + * + * Created on 13 January 2005, 10:32 + */ + +package org.lamsfoundation.lams.lesson.dao.hibernate; + +import org.springframework.orm.hibernate.support.HibernateDaoSupport; + +import org.lamsfoundation.lams.lesson.dao.ILearnerProgressDAO; +import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.lesson.LearnerProgress; +import org.lamsfoundation.lams.usermanagement.User; +/** + * Hibernate implementation of ILessonDAO + * @author chris + */ +public class LearnerProgressDAO extends HibernateDaoSupport implements ILearnerProgressDAO +{ + + /** + * Retrieves the Lesson + * @param lessonId identifies the lesson to get + * @return the lesson + */ + public LearnerProgress getLearnerProgress(Long learnerProgressId) + { + return (LearnerProgress)getHibernateTemplate().get(LearnerProgress.class, learnerProgressId); + } + + /** + * Saves or Updates learner progress data. + * @param learnerProgress holds the learne progress data + */ + public void saveOrUpdateLearnerProgress(LearnerProgress learnerProgress) + { + getHibernateTemplate().saveOrUpdate(learnerProgress); + } + + /** + * Deletes a LearnerProgress data permanently. + * @param learnerProgress + */ + public void deleteLearnerProgress(LearnerProgress learnerProgress) + { + getHibernateTemplate().delete(learnerProgress); + } + +} Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonClassDAO.java =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonClassDAO.java (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonClassDAO.java (revision dfee2e34d419c6b3504a2709bd0f076dfb419370) @@ -0,0 +1,44 @@ +/* + * LessonDAO.java + * + * Created on 13 January 2005, 10:32 + */ + +package org.lamsfoundation.lams.lesson.dao.hibernate; + +import org.springframework.orm.hibernate.support.HibernateDaoSupport; + +import org.lamsfoundation.lams.lesson.LessonClass; +import org.lamsfoundation.lams.lesson.dao.ILessonClassDAO; + +/** + * Hibernate implementation of ILessonDAO + * @author chris + */ +public class LessonClassDAO extends HibernateDaoSupport implements ILessonClassDAO +{ + + public LessonClass getLessonClass(Long lessonClassId) + { + return (LessonClass)getHibernateTemplate().get(LessonClass.class, lessonClassId); + } + + /** + * Saves or Updates a Lesson. + * @param lesson + */ + public void saveOrUpdateLessonClass(LessonClass lessonClass) + { + getHibernateTemplate().saveOrUpdate(lessonClass); + } + + /** + * Deletes a Lesson permanently. + * @param lesson + */ + public void deleteLessonClass(LessonClass lessonClass) + { + getHibernateTemplate().delete(lessonClass); + } + +} Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (revision dfee2e34d419c6b3504a2709bd0f076dfb419370) @@ -0,0 +1,91 @@ +/* + * LessonDAO.java + * + * Created on 13 January 2005, 10:32 + */ + +package org.lamsfoundation.lams.lesson.dao.hibernate; + +import java.util.List; +import java.util.Set; + +import net.sf.hibernate.HibernateException; +import net.sf.hibernate.Query; +import net.sf.hibernate.Session; + +import org.springframework.dao.DataAccessException; +import org.springframework.dao.DataRetrievalFailureException; +import org.springframework.orm.hibernate.support.HibernateDaoSupport; + +import org.lamsfoundation.lams.lesson.dao.ILessonDAO; +import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.lesson.LearnerProgress; +import org.lamsfoundation.lams.usermanagement.User; +/** + * Hibernate implementation of ILessonDAO + * @author chris + */ +public class LessonDAO extends HibernateDaoSupport implements ILessonDAO +{ + + /** + * Retrieves the Lesson + * @param lessonId identifies the lesson to get + * @return the lesson + */ + public Lesson getLesson(Long lessonId) + { + return (Lesson)getHibernateTemplate().get(Lesson.class, lessonId); + } + + /** + * Gets all lessons that are active for a learner. + * @param learner a User that identifies the learner. + * @return a List with all active lessons in it. + */ + public List getActiveLessonsForLearner(User learner) + { + List lessons = null; + Session session = this.getSession(); + try { + Query query = session.getNamedQuery("activeLessons"); + query.setInteger("userId", learner.getUserId().intValue()); + lessons = query.list(); + } + catch (HibernateException e) { + throw new DataRetrievalFailureException(e.getMessage(), e); + } + return lessons; + } + + /** + * Saves or Updates a Lesson. + * @param lesson + */ + public void saveOrUpdateLesson(Lesson lesson) + { + getHibernateTemplate().saveOrUpdate(lesson); + } + + /** + * Deletes a Lesson permanently. + * @param lesson + */ + public void deleteLesson(Lesson lesson) + { + getHibernateTemplate().delete(lesson); + } + + /** + * Retrieves the LearnerProgress + * @param learner the User in the Lesson + * @param lesson the Lesson + * @return LearnerProgess object containing the progress and state data. + */ + public LearnerProgress getLearnerProgress(User learner, Lesson lesson) + { + String queryString = "from LearnerProgress l where l.user = ? and l.lesson ! = ?"; + return (LearnerProgress) ((getHibernateTemplate().find(queryString, new Object[]{learner, lesson})).get(0));//shoud only ever be one of these + } + +}