Index: lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java =================================================================== diff -u -r19c9010eff6be2e29657beed94349a978088650f -r38a1b0822e267ca7ade5a78244b4b34525dd1b19 --- lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java (.../LearnerProgress.java) (revision 19c9010eff6be2e29657beed94349a978088650f) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java (.../LearnerProgress.java) (revision 38a1b0822e267ca7ade5a78244b4b34525dd1b19) @@ -1,149 +1,247 @@ package org.lamsfoundation.lams.lesson; import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.learningdesign.Activity; import java.io.Serializable; import java.util.Set; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; -/** - * Temp roll back to rev 1.2 - * @hibernate.class - * table="lams_learner_progress" - * -*/ -public class LearnerProgress implements Serializable { +/** + * Holds data that describes the Users progress through a lesson. + * + */ +public class LearnerProgress implements Serializable +{ + /** Indicates activity has been completed */ + public static final byte ACTIVITY_COMPLETED = 1; - /** identifier field */ - private Long learnerProgressId; + /** Indicates activity has been attempted but not completed */ + public static final byte ACTIVITY_ATTEMPTED = 2; - /** persistent field */ + /** Indicates activity has not been attempted yet */ + public static final byte ACTIVITY_NOT_ATTEMPTED = 3; + + /** Identifier field */ + private Long learnerProgressId; + + /** The User to whom this progress data belongs. */ private User user; + + /** The Lesson this progress data is for*/ + private Lesson lesson; + + /** Set of attempted activities */ + private Set attemptedActivities; + + /** Set of completed activities */ + private Set completedActivities; + + /** The current activity */ + private Activity currentActivity; - /** persistent field */ - private org.lamsfoundation.lams.lesson.Lesson lesson; + /** + * Indicates is the User has completed this lesson. + */ + private boolean lessonComplete; - /** persistent field */ - private Set progressCurrents; - - /** persistent field */ - private Set progressCompleteds; - + /** + * Non persistent field. + */ + private Activity nextActivity; + /** full constructor */ - public LearnerProgress(Long learnerProgressId, User user, org.lamsfoundation.lams.lesson.Lesson lesson, Set progressCurrents, Set progressCompleteds) { + public LearnerProgress(Long learnerProgressId, User user, Lesson lesson, Set attemptedActivities, Set completedActivities) + { this.learnerProgressId = learnerProgressId; this.user = user; this.lesson = lesson; - this.progressCurrents = progressCurrents; - this.progressCompleteds = progressCompleteds; + this.attemptedActivities = attemptedActivities; + this.completedActivities = completedActivities; } - + /** default constructor */ - public LearnerProgress() { + public LearnerProgress() + { } - - /** - * @hibernate.id - * generator-class="identity" - * type="java.lang.Long" - * column="learner_progress_id" - * + + /** + * + * */ - public Long getLearnerProgressId() { + public Long getLearnerProgressId() + { return this.learnerProgressId; } - - public void setLearnerProgressId(Long learnerProgressId) { + + public void setLearnerProgressId(Long learnerProgressId) + { this.learnerProgressId = learnerProgressId; } - - /** - * @hibernate.many-to-one - * not-null="true" - * @hibernate.column name="user_id" - * + + /** + * */ - public User getUser() { + public User getUser() + { return this.user; } - - public void setUser(User user) { + + public void setUser(User user) + { this.user = user; } - - /** - * @hibernate.many-to-one - * not-null="true" - * @hibernate.column name="lesson_id" - * + + /** + * */ - public org.lamsfoundation.lams.lesson.Lesson getLesson() { + public Lesson getLesson() + { return this.lesson; } - - public void setLesson(org.lamsfoundation.lams.lesson.Lesson lesson) { + + public void setLesson(Lesson lesson) + { this.lesson = lesson; } - - /** - * @hibernate.set - * lazy="true" - * inverse="true" - * cascade="none" - * @hibernate.collection-key - * column="learner_progress_id" - * @hibernate.collection-one-to-many - * class="org.lamsfoundation.lams.lesson.ProgressCurrent" - * + + /** + * + * */ - public Set getProgressCurrents() { - return this.progressCurrents; + public Set getAttemptedActivities() + { + + return this.attemptedActivities; } - - public void setProgressCurrents(Set progressCurrents) { - this.progressCurrents = progressCurrents; + + public void setAttemptedActivities(java.util.Set attemptedActivities) + { + + this.attemptedActivities = attemptedActivities; } - - /** - * @hibernate.set - * lazy="true" - * inverse="true" - * cascade="none" - * @hibernate.collection-key - * column="learner_progress_id" - * @hibernate.collection-one-to-many - * class="org.lamsfoundation.lams.lesson.ProgressCompleted" - * + + /** + * + * */ - public Set getProgressCompleteds() { - return this.progressCompleteds; + public Set getCompletedActivities() + { + + return this.completedActivities; } - - public void setProgressCompleteds(Set progressCompleteds) { - this.progressCompleteds = progressCompleteds; + + public void setCompletedActivities(java.util.Set completedActivities) + { + + this.completedActivities = completedActivities; } - - public String toString() { + + public String toString() + { return new ToStringBuilder(this) - .append("learnerProgressId", getLearnerProgressId()) - .toString(); + .append("learnerProgressId", getLearnerProgressId()) + .toString(); } - - public boolean equals(Object other) { + + public boolean equals(Object other) + { if ( (this == other ) ) return true; if ( !(other instanceof LearnerProgress) ) return false; LearnerProgress castOther = (LearnerProgress) other; return new EqualsBuilder() - .append(this.getLearnerProgressId(), castOther.getLearnerProgressId()) - .isEquals(); + .append(this.getLearnerProgressId(), castOther.getLearnerProgressId()) + .isEquals(); } - - public int hashCode() { + + public int hashCode() + { return new HashCodeBuilder() - .append(getLearnerProgressId()) - .toHashCode(); + .append(getLearnerProgressId()) + .toHashCode(); } + + /** + * Getter for property currentActivity. + * @return Value of property currentActivity. + */ + public Activity getCurrentActivity() + { + return this.currentActivity; + } + + /** + * Setter for property currentActivity. + * @param currentActivity New value of property currentActivity. + */ + public void setCurrentActivity(Activity currentActivity) + { + this.currentActivity = currentActivity; + } + /** + * Gives the progress state of the specific activity. + * @param the activity whose progress state is required. + * @return ACTIVITY_COMPLETED, ACTIVITY_ATTEMPTED or ACTIVITY_NOT_ATTEMPTED. + */ + public byte getProgressState(Activity activity) + { + if (completedActivities.contains(activity)) + { + return ACTIVITY_COMPLETED; + } + else if (attemptedActivities.contains(activity)) + { + return ACTIVITY_ATTEMPTED; + } + else + { + return ACTIVITY_NOT_ATTEMPTED; + } + } + + /** + * Getter for property lessonComplete. + * @return Value of property lessonComplete. + */ + public boolean isLessonComplete() + { + + return this.lessonComplete; + } + + /** + * Setter for property lessonComplete. + * @param lessonComplete New value of property lessonComplete. + */ + public void setLessonComplete(boolean lessonComplete) + { + + this.lessonComplete = lessonComplete; + } + + /** + * Getter for property nextActivity. + * @return Value of property nextActivity. + */ + public Activity getNextActivity() + { + + return this.nextActivity; + } + + /** + * Setter for property nextActivity. + * @param nextActivity New value of property nextActivity. + */ + public void setNextActivity(Activity nextActivity) + { + + this.nextActivity = nextActivity; + } + + + }