Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java =================================================================== diff -u -r18704961d531a547a8a96928980c43a3bf169fd2 -rd6e24451f694815d6138e6189fa8ba2294ee6944 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision 18704961d531a547a8a96928980c43a3bf169fd2) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision d6e24451f694815d6138e6189fa8ba2294ee6944) @@ -9,6 +9,8 @@ import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; +import org.lamsfoundation.lams.lesson.LessonClass; +import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.util.Nullable; /** @@ -457,4 +459,19 @@ return toolActivities; } + + public Group getGroupFor(User learner) + { + if(this.getGrouping()==null) + throw new IllegalArgumentException("Exception occured in " + + "getGroupFor, no grouping has been defined"); + for(Iterator i=this.getGrouping().getGroups().iterator();i.hasNext();) + { + Group group = (Group)i.next(); + if(this.getGrouping().isLearnerGroup(group)&&group.hasLearner(learner)) + return group; + } + + return new NullGroup(); + } } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouping.java =================================================================== diff -u -rd7f8bd90added31c1bbadc8ebd51e301d13965b6 -rd6e24451f694815d6138e6189fa8ba2294ee6944 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouping.java (.../ChosenGrouping.java) (revision d7f8bd90added31c1bbadc8ebd51e301d13965b6) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouping.java (.../ChosenGrouping.java) (revision d6e24451f694815d6138e6189fa8ba2294ee6944) @@ -30,7 +30,7 @@ * So it always return true. * @see org.lamsfoundation.lams.learningdesign.Grouping#isLearnerGroup(org.lamsfoundation.lams.learningdesign.Group) */ - protected boolean isLearnerGroup(Group group) + public boolean isLearnerGroup(Group group) { return true; } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Group.java =================================================================== diff -u -r1d40a310039a2975dc474f61e9a732f90f86c707 -rd6e24451f694815d6138e6189fa8ba2294ee6944 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Group.java (.../Group.java) (revision 1d40a310039a2975dc474f61e9a732f90f86c707) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Group.java (.../Group.java) (revision d6e24451f694815d6138e6189fa8ba2294ee6944) @@ -2,18 +2,21 @@ import java.io.Serializable; import java.util.HashSet; +import java.util.Iterator; 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; +import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.util.Nullable; /** * @hibernate.class * table="lams_group" * */ -public class Group implements Serializable { +public class Group implements Serializable,Nullable { public final static int STAFF_GROUP_ORDER_ID = 1; @@ -192,4 +195,28 @@ .toHashCode(); } + /** + * Return whether the target user is in this group or not. + * @param learner the target user + * @return boolean value to indicate whether the user is in. + */ + public boolean hasLearner(User learner) + { + for(Iterator i=this.getUsers().iterator();i.hasNext();) + { + User user = (User)i.next(); + if(user.getUserId().intValue()==learner.getUserId().intValue()) + return true; + } + return false; + } + + /** + * @see org.lamsfoundation.lams.util.Nullable#isNull() + */ + public boolean isNull() + { + return false; + } + } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java =================================================================== diff -u -rd7f8bd90added31c1bbadc8ebd51e301d13965b6 -rd6e24451f694815d6138e6189fa8ba2294ee6944 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java (.../Grouping.java) (revision d7f8bd90added31c1bbadc8ebd51e301d13965b6) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java (.../Grouping.java) (revision d6e24451f694815d6138e6189fa8ba2294ee6944) @@ -196,6 +196,6 @@ /** * @return */ - protected abstract boolean isLearnerGroup(Group group); + public abstract boolean isLearnerGroup(Group group); } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/NullGroup.java =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/NullGroup.java (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/NullGroup.java (revision d6e24451f694815d6138e6189fa8ba2294ee6944) @@ -0,0 +1,45 @@ +/* + Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA + + http://www.gnu.org/licenses/gpl.txt +*/ +package org.lamsfoundation.lams.learningdesign; + +/** + * + * @author Jacky Fang 2005-2-21 + * + */ +public class NullGroup extends Group +{ + /** + * + */ + public NullGroup() + { + super(); + } + + /** + * @see org.lamsfoundation.lams.util.Nullable#isNull() + */ + public boolean isNull() + { + return true; + } +} Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java =================================================================== diff -u -rd7f8bd90added31c1bbadc8ebd51e301d13965b6 -rd6e24451f694815d6138e6189fa8ba2294ee6944 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java (.../RandomGrouping.java) (revision d7f8bd90added31c1bbadc8ebd51e301d13965b6) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java (.../RandomGrouping.java) (revision d6e24451f694815d6138e6189fa8ba2294ee6944) @@ -66,7 +66,7 @@ * So it always return true. * @see org.lamsfoundation.lams.learningdesign.Grouping#isLearnerGroup(org.lamsfoundation.lams.learningdesign.Group) */ - protected boolean isLearnerGroup(Group group) + public boolean isLearnerGroup(Group group) { return true; } Index: lams_common/src/java/org/lamsfoundation/lams/lesson/LessonClass.java =================================================================== diff -u -rd7f8bd90added31c1bbadc8ebd51e301d13965b6 -rd6e24451f694815d6138e6189fa8ba2294ee6944 --- lams_common/src/java/org/lamsfoundation/lams/lesson/LessonClass.java (.../LessonClass.java) (revision d7f8bd90added31c1bbadc8ebd51e301d13965b6) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/LessonClass.java (.../LessonClass.java) (revision d6e24451f694815d6138e6189fa8ba2294ee6944) @@ -52,7 +52,7 @@ /** * @see org.lamsfoundation.lams.learningdesign.Grouping#isLearnerGroup(org.lamsfoundation.lams.learningdesign.Group) */ - protected boolean isLearnerGroup(Group group) + public boolean isLearnerGroup(Group group) { if(group.getGroupId()==null||staffGroup.getGroupId()==null) throw new IllegalArgumentException("Can't check up whether group" +