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;
+ }
+
+
+
}