Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java,v diff -u -r1.7 -r1.8 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java 18 Feb 2005 04:37:43 -0000 1.7 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java 21 Feb 2005 06:53:21 -0000 1.8 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouping.java,v diff -u -r1.3 -r1.4 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouping.java 14 Feb 2005 01:56:39 -0000 1.3 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouping.java 21 Feb 2005 06:53:21 -0000 1.4 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/Group.java,v diff -u -r1.3 -r1.4 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Group.java 8 Feb 2005 01:27:06 -0000 1.3 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Group.java 21 Feb 2005 06:53:21 -0000 1.4 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java,v diff -u -r1.6 -r1.7 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java 14 Feb 2005 01:56:39 -0000 1.6 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java 21 Feb 2005 06:53:21 -0000 1.7 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/NullGroup.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/NullGroup.java 21 Feb 2005 06:53:21 -0000 1.1 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java,v diff -u -r1.3 -r1.4 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java 14 Feb 2005 01:56:39 -0000 1.3 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java 21 Feb 2005 06:53:21 -0000 1.4 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/lesson/LessonClass.java,v diff -u -r1.5 -r1.6 --- lams_common/src/java/org/lamsfoundation/lams/lesson/LessonClass.java 14 Feb 2005 01:56:39 -0000 1.5 +++ lams_common/src/java/org/lamsfoundation/lams/lesson/LessonClass.java 21 Feb 2005 06:53:21 -0000 1.6 @@ -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" +