Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Group.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Group.hbm.xml,v diff -u -r1.2 -r1.3 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Group.hbm.xml 3 Feb 2005 06:21:13 -0000 1.2 +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Group.hbm.xml 14 Feb 2005 01:56:39 -0000 1.3 @@ -58,7 +58,6 @@ 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.2 -r1.3 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouping.java 13 Feb 2005 22:13:33 -0000 1.2 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouping.java 14 Feb 2005 01:56:39 -0000 1.3 @@ -24,5 +24,15 @@ { super(groupingId, groups, activities); } - + + /** + * This type of grouping doesn't have groups other than learner groups. + * So it always return true. + * @see org.lamsfoundation.lams.learningdesign.Grouping#isLearnerGroup(org.lamsfoundation.lams.learningdesign.Group) + */ + protected boolean isLearnerGroup(Group group) + { + return true; + } + } 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.5 -r1.6 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java 13 Feb 2005 22:13:33 -0000 1.5 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java 14 Feb 2005 01:56:39 -0000 1.6 @@ -40,7 +40,7 @@ private Set activities; /** non-persistent field */ - private Set learners; + protected Set learners; /** full constructor */ public Grouping(Long groupingId, Set groups, Set activities) @@ -179,16 +179,23 @@ public Set getLearners() { //verify pre-condition - if(groups==null) + if(getGroups()==null) throw new IllegalArgumentException("Fail to get learnings from" + "a grouping without groups"); learners = new HashSet(); - for(Iterator i = groups.iterator();i.hasNext();) + for(Iterator i = getGroups().iterator();i.hasNext();) { Group group = (Group)i.next(); - learners.addAll(group.getUsers()); + if(isLearnerGroup(group)) + learners.addAll(group.getUsers()); } return learners; } + + /** + * @return + */ + protected abstract boolean isLearnerGroup(Group group); + } 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.2 -r1.3 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java 13 Feb 2005 22:13:33 -0000 1.2 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java 14 Feb 2005 01:56:39 -0000 1.3 @@ -61,4 +61,13 @@ this.numberOfGroups = numberOfGroups; } + /** + * This type of grouping doesn't have groups other than learner groups. + * So it always return true. + * @see org.lamsfoundation.lams.learningdesign.Grouping#isLearnerGroup(org.lamsfoundation.lams.learningdesign.Group) + */ + protected 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.4 -r1.5 --- lams_common/src/java/org/lamsfoundation/lams/lesson/LessonClass.java 13 Feb 2005 22:13:34 -0000 1.4 +++ lams_common/src/java/org/lamsfoundation/lams/lesson/LessonClass.java 14 Feb 2005 01:56:39 -0000 1.5 @@ -48,4 +48,17 @@ public void setLesson(Lesson lesson) { this.lesson = lesson; } + + /** + * @see org.lamsfoundation.lams.learningdesign.Grouping#isLearnerGroup(org.lamsfoundation.lams.learningdesign.Group) + */ + protected boolean isLearnerGroup(Group group) + { + if(group.getGroupId()==null||staffGroup.getGroupId()==null) + throw new IllegalArgumentException("Can't check up whether group" + + " is learner group without group id."); + + return staffGroup.getGroupId()!=group.getGroupId(); + } + } \ No newline at end of file Index: lams_common/test/java/org/lamsfoundation/lams/lesson/TestLessonClass.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/lesson/Attic/TestLessonClass.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_common/test/java/org/lamsfoundation/lams/lesson/TestLessonClass.java 14 Feb 2005 01:56:39 -0000 1.1 @@ -0,0 +1,81 @@ +/* ******************************************************************************** + * Copyright Notice + * ================= + * This file contains propriety information of LAMS Foundation. + * Copying or reproduction with prior written permission is prohibited. + * Copyright (c) 2005 + * Created on 14/02/2005 + ******************************************************************************** */ + +package org.lamsfoundation.lams.lesson; + +import java.util.HashSet; + +import org.lamsfoundation.lams.learningdesign.Group; +import org.lamsfoundation.lams.usermanagement.User; + +import junit.framework.TestCase; + + +/** + * + * @author Jacky Fang 14/02/2005 + * + */ +public class TestLessonClass extends TestCase +{ + + LessonClass lessonClass; + /* + * @see TestCase#setUp() + */ + protected void setUp() throws Exception + { + super.setUp(); + lessonClass = new LessonClass(); + lessonClass.setGroups(new HashSet()); + } + + /* + * @see TestCase#tearDown() + */ + protected void tearDown() throws Exception + { + super.tearDown(); + } + + /** + * Constructor for TestLessonClass. + * @param arg0 + */ + public TestLessonClass(String arg0) + { + super(arg0); + } + + public void testGetLearners() + { + User user1 = new User(); + user1.setUserId(new Integer(1)); + Group group1 = new Group(); + group1.setGroupId(new Long(1)); + group1.setUsers(new HashSet()); + group1.getUsers().add(user1); + group1.setOrderId(lessonClass.getNextGroupOrderId()); + lessonClass.getGroups().add(group1); + + User staff = new User(); + staff.setUserId(new Integer(3)); + Group staffGroup = new Group(); + staffGroup.setGroupId(new Long(2)); + staffGroup.setUsers(new HashSet()); + staffGroup.getUsers().add(staff); + staffGroup.setOrderId(lessonClass.getNextGroupOrderId()); + lessonClass.getGroups().add(staffGroup); + lessonClass.setStaffGroup(staffGroup); + + assertEquals("verify number of learners",1,lessonClass.getLearners().size()); + + } + +}