Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml,v diff -u -r1.7 -r1.8 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml 25 Feb 2005 01:36:54 -0000 1.7 +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml 13 Mar 2005 22:47:44 -0000 1.8 @@ -26,6 +26,9 @@ column="waiting_flag" /> + + Index: lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java,v diff -u -r1.10 -r1.11 --- lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java 7 Mar 2005 02:58:01 -0000 1.10 +++ lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java 13 Mar 2005 22:47:56 -0000 1.11 @@ -24,8 +24,11 @@ import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.ActivityOrderComparator; +import org.lamsfoundation.lams.lesson.dto.LearnerProgressDTO; import java.io.Serializable; +import java.util.ArrayList; +import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Set; @@ -123,6 +126,9 @@ */ private List currentCompletedActivitiesList; + /**Indicate whether the learning progress is restarting or not*/ + private boolean restarting; + //--------------------------------------------------------------------- // Constructors //--------------------------------------------------------------------- @@ -149,7 +155,9 @@ this.attemptedActivities = attemptedActivities; this.completedActivities = completedActivities; } - + //--------------------------------------------------------------------- + // Getters and Setters + //--------------------------------------------------------------------- /** * * @@ -394,4 +402,59 @@ this.currentCompletedActivitiesList = new LinkedList(); this.currentCompletedActivitiesList.addAll(completedActivitiesList); } + /** + * @return Returns the isRestarting. + */ + public boolean isRestarting() + { + return restarting; + } + /** + * @param isRestarting The isRestarting to set. + */ + public void setRestarting(boolean restarting) + { + this.restarting = restarting; + } + //--------------------------------------------------------------------- + // Service methods + //--------------------------------------------------------------------- + /** + * Returns the learner progress data transfer object. + */ + public LearnerProgressDTO getLearnerProgressData() + { + + return new LearnerProgressDTO(this.lesson.getLessonId(), + this.lesson.getLessonName(), + this.user.getLogin(), + this.user.getUserId(), + this.currentActivity.getActivityId(), + this.createIdArrayFrom(this.attemptedActivities), + this.createIdArrayFrom(this.completedActivities)); + } + + //--------------------------------------------------------------------- + // Helper methods + //--------------------------------------------------------------------- + /** + * Extract the Id from activities and set them into an array. + * @param activities the activities that is being used to create the + * array. + */ + private Long[] createIdArrayFrom(Set activities) + { + if(activities == null) + throw new IllegalArgumentException("Fail to create id array" + + " from null activity set"); + + ArrayList activitiesIds = new ArrayList(); + for(Iterator i= activities.iterator();i.hasNext();) + { + Activity activity = (Activity)i.next(); + activitiesIds.add(activity.getActivityId()); + } + + return (Long [])activitiesIds.toArray(new Long[activitiesIds.size()]); + } } Index: lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLearnerProgressDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/lesson/dao/Attic/TestLearnerProgressDAO.java,v diff -u -r1.6 -r1.7 --- lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLearnerProgressDAO.java 24 Feb 2005 01:29:09 -0000 1.6 +++ lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLearnerProgressDAO.java 13 Mar 2005 22:51:23 -0000 1.7 @@ -77,6 +77,7 @@ assertNull("should not get any progress data",progress); } + public void testSaveLearnerProgress() throws HibernateException { super.learnerProgressDao.saveLearnerProgress(this.testLearnerProgress); @@ -134,18 +135,20 @@ progress.setProgressState(firstActivity,LearnerProgress.ACTIVITY_COMPLETED); progress.setProgressState(testParallelActivity,LearnerProgress.ACTIVITY_COMPLETED); progress.setProgressState(testToolActivity,LearnerProgress.ACTIVITY_ATTEMPTED); + progress.setRestarting(true); super.learnerProgressDao.updateLearnerProgress(progress); LearnerProgress updatedProgress= learnerProgressDao.getLearnerProgressByLearner(testUser,testLesson); assertLearnerProgressInitialization(progress); assertEquals("verify completed activity",2,updatedProgress.getCompletedActivities().size()); assertEquals("verify attempted activity",1,updatedProgress.getAttemptedActivities().size()); - + assertTrue("is restarting",updatedProgress.isRestarting()); super.learnerProgressDao.deleteLearnerProgress(testLearnerProgress); super.getSession().flush(); } + /** * @param progress */