Index: lams_build/lib/lams/lams-learning.jar =================================================================== diff -u -rc8ada738d232f17c286242d2e86081d116ed1e94 -r56dc9e59c9512b28858b2da10f756103010d9cca Binary files differ Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -rdae4a8667e5202762e22b18d152dcb112c78b982 -r56dc9e59c9512b28858b2da10f756103010d9cca Binary files differ Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml =================================================================== diff -u -r01a4035d52575ebe0a8467b4e589998196353962 -r56dc9e59c9512b28858b2da10f756103010d9cca --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml (.../Activity.hbm.xml) (revision 01a4035d52575ebe0a8467b4e589998196353962) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml (.../Activity.hbm.xml) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -156,7 +156,7 @@ @hibernate.class - + @hibernate.property column="create_grouping_ui_id" length="11" Index: lams_common/conf/language/ApplicationResources.properties =================================================================== diff -u -r70cf04183bd09ee740203e876fd31a317badcbca -r56dc9e59c9512b28858b2da10f756103010d9cca --- lams_common/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 70cf04183bd09ee740203e876fd31a317badcbca) +++ lams_common/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -35,4 +35,7 @@ # Audit entry made when a staff member hides a learner entry (in monitoring) audit.hide.entry=Hide entry for user {0}. Entry was {1} # Audit entry made when a staff member shows a learner entry (in monitoring) -audit.show.entry=Show entry for user {0}. Entry was {1} \ No newline at end of file +audit.show.entry=Show entry for user {0}. Entry was {1} + +# When a random or chosen group is created, this word is used as part of the name e.g. Group 1, Group 2. +group.name.prefix=Group \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouper.java =================================================================== diff -u -r9e48cd166db0ae5aeac3f8b864a7d5c44c1a94b4 -r56dc9e59c9512b28858b2da10f756103010d9cca --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouper.java (.../ChosenGrouper.java) (revision 9e48cd166db0ae5aeac3f8b864a7d5c44c1a94b4) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouper.java (.../ChosenGrouper.java) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -30,6 +30,7 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.util.MessageService; /** @@ -41,9 +42,10 @@ * @version 1.1 * */ -public class ChosenGrouper implements Grouper,Serializable +public class ChosenGrouper extends Grouper implements Serializable { + private static final long serialVersionUID = -8498560084860150033L; private static Logger log = Logger.getLogger(ChosenGrouper.class); /** Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupComparator.java =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupComparator.java (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupComparator.java (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -0,0 +1,53 @@ +/*************************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * 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 + * ***********************************************************************/ +/* $$Id$$ */ +package org.lamsfoundation.lams.learningdesign; + +import java.io.Serializable; +import java.util.Comparator; + +import org.apache.commons.collections.comparators.NullComparator; + +/** + * The grouping comparator used for any ordered collection. Order is done on the alphabetic order of the group name. + * Input objects must be of type Group. + */ +public class GroupComparator implements Comparator, Serializable { + + private static final long serialVersionUID = 4127022514966256114L; + + /** + * Compare the group names + * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) + */ + public int compare(Object o1, Object o2) { + Group grp1 = (Group)o1; + String grp1Name = grp1 != null ? grp1.getGroupName() : null; + + Group grp2 = (Group)o2; + String grp2Name = grp2!= null ? grp2.getGroupName() : null; + + NullComparator comparator = new NullComparator(false); + return comparator.compare(grp1Name,grp2Name); + } + +} Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouper.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r56dc9e59c9512b28858b2da10f756103010d9cca --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouper.java (.../Grouper.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouper.java (.../Grouper.java) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -26,6 +26,7 @@ import java.util.List; import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.util.MessageService; @@ -34,27 +35,55 @@ * This is interface that defines the contract for performing grouping * algorithm. * + * It would be nicer to get the message service directly from within the classes, rather than havea setter. + * But can't think of a way to directly access it when the grouper object doesn't + * have any link to the Spring context. (Fiona Malikoff) + * * @author Jacky Fang * @since 2005-3-24 * @version 1.1 * */ -public interface Grouper +public abstract class Grouper { - /** - * Do the grouping for a list of learners that the teacher requested. + String DEFAULT_GROUP_NAME_PREFIX_I18N = "group.name.prefix"; + private MessageService commonMessageService; + + /** Set the message service, needed for the I18N of the default group name prefix. + * Should call this method before calling doGrouping() or getPrefix() */ + public void setCommonMessageService(MessageService commonMessageService) { + this.commonMessageService = commonMessageService; + } + + protected MessageService getCommonMessageService() { + return commonMessageService; + } + + /** + * Do the grouping for a list of learners that the teacher requested. * @param grouping the grouping that is used to perform groups creation. * @param name for this group * @param learners the list of learners that the teacher requested. */ - public void doGrouping(Grouping grouping, String groupName, List learners); + public abstract void doGrouping(Grouping grouping, String groupName, List learners); /** - * Do the grouping for a single learner. + * Do the grouping for a single learner. Should call setCommonMessageService() before calling this method. * @param grouping the grouping that is used to perform groups creation. * @param name for this group * @param learner the learner teacher want to add. + * @param commonMessageService the message service from lams.jar. Needed for prefix for the group names. */ - public void doGrouping(Grouping grouping, String groupName, User learner); - + public abstract void doGrouping(Grouping grouping, String groupName, User learnere); + + /** + * Get the default group name prefix + * @return default group name prefix + */ + public String getPrefix() { + String prefix = commonMessageService != null ? commonMessageService.getMessage(DEFAULT_GROUP_NAME_PREFIX_I18N) : ""; + prefix = prefix.trim(); + return prefix.length()>0 ? prefix : "Group"; + } + } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r56dc9e59c9512b28858b2da10f756103010d9cca --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java (.../Grouping.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java (.../Grouping.java) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -37,6 +37,7 @@ import org.lamsfoundation.lams.learningdesign.dto.GroupingDTO; import org.lamsfoundation.lams.lesson.LessonClass; import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.util.MessageService; /** * @@ -301,46 +302,7 @@ */ public abstract boolean isLearnerGroup(Group group); - /** - * Create or update groups for this grouping with a list of new learners. Name of group - * will generate automatically. - * @param learners the list of learners need to be grouped. - */ - public void doGrouping(List learners) - { - doGrouping(null,learners); - } - - /** - * Create or updates groups for this grouping with a single new learner.Name of group - * will generate automatically. - * @param learner the new learner needs to be grouped. - */ - public void doGrouping(User learner) - { - doGrouping(null,learner); - } - /** - * Create or update groups for this grouping with a list of new learners. - * @param name of this group. - * @param learners the list of learners need to be grouped. - */ - public void doGrouping(String groupName,List learners) - { - this.grouper.doGrouping(this,groupName,learners); - } - /** - * Create or updates groups for this grouping with a single new learner. - * @param name of this group. - * @param learner the new learner needs to be grouped. - */ - public void doGrouping(String groupName,User learner) - { - this.grouper.doGrouping(this,groupName,learner); - } - - /** * Return whether a learner is a existing learner for this grouping or not. * @param learner the current leaner * @return the boolean result @@ -375,4 +337,12 @@ { return getGroupingTypeId() == CLASS_GROUPING_TYPE; } + + public Grouper getGrouper() { + return grouper; + } + + public void setGrouper(Grouper grouper) { + this.grouper = grouper; + } } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouper.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r56dc9e59c9512b28858b2da10f756103010d9cca --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouper.java (.../RandomGrouper.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouper.java (.../RandomGrouper.java) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -28,6 +28,7 @@ import java.util.Iterator; import java.util.List; +import org.apache.log4j.Logger; import org.lamsfoundation.lams.usermanagement.User; @@ -56,9 +57,12 @@ * @version 1.1 * */ -public class RandomGrouper implements Grouper , Serializable +public class RandomGrouper extends Grouper implements Serializable { - private static final String GROUP_NAME_PREFIX = "Group "; + private static final long serialVersionUID = -3696368461795411181L; + + private static Logger log = Logger.getLogger(RandomGrouper.class); + //--------------------------------------------------------------------- // Grouping algorithm Implementation Method //--------------------------------------------------------------------- @@ -74,7 +78,7 @@ //delegate to do grouping for a list of learners. doGrouping(randomGrouping,groupName,learners); } - + /** * Do the grouping for a list of new learners. * @see org.lamsfoundation.lams.learningdesign.Grouper#doGrouping(org.lamsfoundation.lams.learningdesign.Grouping,java.lang.String, java.util.List) @@ -102,7 +106,7 @@ /** * Compute the number of new groups needs to be created based on passed * in grouping. It figures out group by number of groups or group by - * learner per group automatically. + * learner per group automatically. * * @param randomGrouping the grouping we used to group learner * @param learners the list of learners need to be grouped @@ -112,31 +116,35 @@ List learners, boolean isInitialization) { - if(randomGrouping.getNumberOfGroups()!=null) - return getNewGroupsByNumberOfGroups(randomGrouping, isInitialization); - else if(randomGrouping.getLearnersPerGroup()!=null) + if(randomGrouping.getNumberOfGroups()!=null) { + return getNewGroupsByNumberOfGroups(randomGrouping, randomGrouping.getNumberOfGroups(), isInitialization); + } else if(randomGrouping.getLearnersPerGroup()!=null) { return getNewGroupsByLearnerPerGroup(randomGrouping,learners); - //TODO need to be changed to customized exception. - throw new RuntimeException("At least one random grouping algorithm" + - "needs to be defined."); + } else { + log.warn("Random Grouping id="+randomGrouping.getGroupingId()+" is missing both the number of groups and learners per group. Defaulting to two groups."); + return getNewGroupsByNumberOfGroups(randomGrouping, 2, isInitialization); + } } /** - * Create new groups and insert them into the grouping. + * Create new groups and insert them into the grouping. Group names + * are Group 1, Group 2, etc. * @param randomGrouping the requested grouping. * @param numOfGroupsTobeCreated the number new groups need to be created. */ private void createGroups(RandomGrouping randomGrouping, int numOfGroupsTobeCreated) { + String prefix = getPrefix(); int size = randomGrouping.getGroups().size(); - for(int i=0;i0?numberOfNewGroups:0; } Index: lams_common/src/java/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml =================================================================== diff -u -r7e8b71604044e851c877e918e7d6570a9942a356 -r56dc9e59c9512b28858b2da10f756103010d9cca --- lams_common/src/java/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml (.../lessonApplicationContext.xml) (revision 7e8b71604044e851c877e918e7d6570a9942a356) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml (.../lessonApplicationContext.xml) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -25,6 +25,8 @@ + + @@ -35,7 +37,8 @@ PROPAGATION_REQUIRED PROPAGATION_REQUIRED - PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java =================================================================== diff -u -r7fe9774aaa83d47d9cd66dca7daf4a30cbb4f3ec -r56dc9e59c9512b28858b2da10f756103010d9cca --- lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision 7fe9774aaa83d47d9cd66dca7daf4a30cbb4f3ec) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -27,6 +27,9 @@ import java.util.Collection; import java.util.List; +import org.lamsfoundation.lams.learningdesign.Grouper; +import org.lamsfoundation.lams.learningdesign.Grouping; +import org.lamsfoundation.lams.learningdesign.GroupingActivity; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.dto.LessonDTO; import org.lamsfoundation.lams.lesson.dto.LessonDetailsDTO; @@ -87,4 +90,23 @@ */ public abstract LessonDTO getLessonData(Long lessonId); + /** + * If the supplied learner is not already in a group, then perform grouping for + * the learners who have started the lesson, based on the grouping activity. + * This method should be used when we do have an grouping activity and learner that is + * already part of the Hibernate session. (e.g. from the ForceComplete) + * + * @param lessonId lesson id (mandatory) + * @param groupingActivity the activity that has create grouping. (mandatory) + * @param learner the learner to be check before grouping. (mandatory) + */ + public void performGrouping(Long lessonId, GroupingActivity groupingActivity, User learner) throws LessonServiceException; + + /** + * Perform grouping for all the learners who have started the lesson, based on the grouping activity. + * @param lessonId lesson id (mandatory) + * @param groupingActivityId the activity that has create grouping. (mandatory) + */ + public void performChosenGrouping(GroupingActivity groupingActivity, List learners) throws LessonServiceException; + } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java =================================================================== diff -u -r7fe9774aaa83d47d9cd66dca7daf4a30cbb4f3ec -r56dc9e59c9512b28858b2da10f756103010d9cca --- lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision 7fe9774aaa83d47d9cd66dca7daf4a30cbb4f3ec) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -29,11 +29,19 @@ import java.util.HashMap; import java.util.List; +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.learningdesign.Grouper; +import org.lamsfoundation.lams.learningdesign.Grouping; +import org.lamsfoundation.lams.learningdesign.GroupingActivity; +import org.lamsfoundation.lams.learningdesign.dao.IActivityDAO; +import org.lamsfoundation.lams.learningdesign.dao.IGroupingDAO; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.dao.ILessonDAO; import org.lamsfoundation.lams.lesson.dto.LessonDTO; import org.lamsfoundation.lams.lesson.dto.LessonDetailsDTO; import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.util.MessageService; /** @@ -58,10 +66,30 @@ */ public class LessonService implements ILessonService { - private ILessonDAO lessonDAO; + private static Logger log = Logger.getLogger(LessonService.class); + + private ILessonDAO lessonDAO; + private IGroupingDAO groupingDAO; + private MessageService messageService; private HashMap lessonMaps = new HashMap(); // contains maps of lesson users - /* (non-Javadoc) + /* ******* Spring injection methods ***************************************/ + public void setLessonDAO(ILessonDAO lessonDAO) { + this.lessonDAO = lessonDAO; + } + + public void setGroupingDAO(IGroupingDAO groupingDAO) { + this.groupingDAO = groupingDAO; + } + + + public void setMessageService(MessageService messageService) { + this.messageService = messageService; + } + + + /* *********** Service methods ***********************************************/ + /* (non-Javadoc) * @see org.lamsfoundation.lams.lesson.service.ILessonService#cacheLessonUser(org.lamsfoundation.lams.lesson.Lesson, org.lamsfoundation.lams.usermanagement.User) */ public void cacheLessonUser(Lesson lesson, User learner) @@ -127,10 +155,6 @@ } - public void setLessonDAO(ILessonDAO lessonDAO) { - this.lessonDAO = lessonDAO; - } - /* (non-Javadoc) * @see org.lamsfoundation.lams.lesson.service.ILessonService#getLessonDetails(java.lang.Long) */ @@ -157,4 +181,64 @@ return dto; } + /** + * If the supplied learner is not already in a group, then perform grouping for + * the learners who have started the lesson, based on the grouping activity. + * The grouper decides who goes in which group. + * + * Can only be run on a Random Grouping + * + * @param lessonId lesson id (mandatory) + * @param groupingActivity the activity that has create grouping. (mandatory) + * @param learner the learner to be check before grouping. (mandatory) + */ + public void performGrouping(Long lessonId, GroupingActivity groupingActivity, User learner) throws LessonServiceException + { + Grouping grouping = groupingActivity.getCreateGrouping(); + if ( grouping != null && grouping.isRandomGrouping() ) { + // get the real objects, not the CGLIB version + grouping = groupingDAO.getGroupingById(grouping.getGroupingId()); + Grouper grouper = grouping.getGrouper(); + if ( grouper != null ) { + grouper.setCommonMessageService(messageService); + if ( grouping.getGroups().size() == 0 ) { + // no grouping done yet - do everyone already in the lesson. + List usersInLesson = getActiveLessonLearners(lessonId); + grouper.doGrouping(grouping, null, usersInLesson); + } else if ( ! grouping.doesLearnerExist(learner) ) { + // done the others, just do the one user + grouper.doGrouping(grouping, null, learner); + } + groupingDAO.update(grouping); + } + } else { + String error = "The method performGrouping supports only grouping methods where the grouper decides the groups (currently only RandomGrouping). Called with a groupingActivity with the wrong grouper "+groupingActivity.getActivityId(); + log.error(error); + throw new LessonServiceException(error); + } + } + + /** + * Perform the grouping, setting the given list of learners as one group. + * @param groupingActivityId the activity that has create grouping. (mandatory) + * @param learners to form one group + */ + public void performChosenGrouping(GroupingActivity groupingActivity, List learners) throws LessonServiceException { + + Grouping grouping = groupingActivity.getCreateGrouping(); + if ( grouping != null && grouping.isChosenGrouping() ) { + Grouper grouper = grouping.getGrouper(); + if ( grouper != null ) { + grouper.setCommonMessageService(messageService); + grouper.doGrouping(grouping, null, learners); + groupingDAO.update(grouping); + } + } else { + String error = "The method performChosenGrouping supports only grouping methods where the supplied list should be used as a single group (currently only ChosenGrouping). Called with a groupingActivity with the wrong grouper "+groupingActivity.getActivityId(); + log.error(error); + throw new LessonServiceException(error); + } + } + + } Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonServiceException.java =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonServiceException.java (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonServiceException.java (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -0,0 +1,73 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * 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 + * **************************************************************** + */ +/* $$Id$$ */ +package org.lamsfoundation.lams.lesson.service; + +/** + * Type of exception thrown by Tool operations and interfaces. + * @author chris + */ +public class LessonServiceException extends java.lang.Exception +{ + + /** + * Creates a new instance of LessonServiceException without detail message. + */ + public LessonServiceException() + { + } + + + /** + * Constructs an instance of LessonServiceException with the specified detail message. + * @param msg the detail message. + */ + public LessonServiceException(String msg) + { + super(msg); + } + + /** + * Constructs an instance of LessonServiceException + * for wrapping both the customized error message and + * throwable exception object. + * @param message + * @param cause + */ + public LessonServiceException(String message, Throwable cause) + { + super(message, cause); + } + + /** + * Constructs an instance of LessonServiceException + * for wrapping an throwable exception object. + * @param message + * @param cause + */ + public LessonServiceException(Throwable cause) + { + super(cause); + } + +} Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestChosenGrouper.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r56dc9e59c9512b28858b2da10f756103010d9cca --- lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestChosenGrouper.java (.../TestChosenGrouper.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestChosenGrouper.java (.../TestChosenGrouper.java) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -85,7 +85,7 @@ */ public void testDoGroupingLearnerList() { - chosenGrouping.doGrouping("testgroup",userList); + chosenGrouping.getGrouper().doGrouping(chosenGrouping,"testgroup",userList); List groups = new ArrayList(chosenGrouping.getGroups()); Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestRandomGrouper.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r56dc9e59c9512b28858b2da10f756103010d9cca --- lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestRandomGrouper.java (.../TestRandomGrouper.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestRandomGrouper.java (.../TestRandomGrouper.java) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -99,7 +99,7 @@ */ public void testDoGroupingLearnerListByNumOfGroups() { - this.groupingByNumofGroups.doGrouping(userList); + this.groupingByNumofGroups.getGrouper().doGrouping(groupingByNumofGroups,null,userList); Group groupWithLeastMember = groupingByNumofGroups.getGroupWithLeastMember(); for(Iterator i = groupingByNumofGroups.getGroups().iterator();i.hasNext();) @@ -117,7 +117,7 @@ */ public void testDoGroupingOneLearnerByNumOfGroups() { - this.groupingByNumofGroups.doGrouping((User)userList.get(5)); + this.groupingByNumofGroups.getGrouper().doGrouping(groupingByNumofGroups, null, (User)userList.get(5)); Group groupWithLeastMember = groupingByNumofGroups.getGroupWithLeastMember(); for(Iterator i = groupingByNumofGroups.getGroups().iterator();i.hasNext();) @@ -135,7 +135,7 @@ */ public void testDoGroupingLearnerListByLearnerPerGroups() { - this.groupingByLearnerPerGroups.doGrouping(userList); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, userList); Group groupWithLeastMember = groupingByLearnerPerGroups.getGroupWithLeastMember(); for(Iterator i = groupingByLearnerPerGroups.getGroups().iterator();i.hasNext();) @@ -155,7 +155,7 @@ */ public void testDoGroupingOneLearnerByLearnerPerGroups() { - this.groupingByLearnerPerGroups.doGrouping((User)userList.get(5)); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, (User)userList.get(5)); Group groupWithLeastMember = groupingByLearnerPerGroups.getGroupWithLeastMember(); for(Iterator i = groupingByLearnerPerGroups.getGroups().iterator();i.hasNext();) @@ -168,13 +168,13 @@ assertEquals("verify group with least member",1,groupWithLeastMember.getUsers().size()); - this.groupingByLearnerPerGroups.doGrouping((User)userList.get(1)); - this.groupingByLearnerPerGroups.doGrouping((User)userList.get(2)); - this.groupingByLearnerPerGroups.doGrouping((User)userList.get(3)); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, (User)userList.get(1)); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, (User)userList.get(2)); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, (User)userList.get(3)); groupWithLeastMember = groupingByLearnerPerGroups.getGroupWithLeastMember(); assertEquals("verify group with least member",4,groupWithLeastMember.getUsers().size()); - this.groupingByLearnerPerGroups.doGrouping((User)userList.get(4)); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, (User)userList.get(4)); groupWithLeastMember = groupingByLearnerPerGroups.getGroupWithLeastMember(); assertEquals("verify group with least member",1,groupWithLeastMember.getUsers().size()); @@ -185,7 +185,7 @@ */ public void testDoGroupingDuplicateLearnerByLearnerPerGroups() { - this.groupingByLearnerPerGroups.doGrouping(userList); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, userList); Group groupWithLeastMember = groupingByLearnerPerGroups.getGroupWithLeastMember(); for(Iterator i = groupingByLearnerPerGroups.getGroups().iterator();i.hasNext();) @@ -197,12 +197,12 @@ assertEquals("verify number of groups created",3,groupingByLearnerPerGroups.getGroups().size()); assertEquals("verify group with least member",3,groupWithLeastMember.getUsers().size()); - this.groupingByLearnerPerGroups.doGrouping(createUser(new Integer(11),"test11")); - this.groupingByLearnerPerGroups.doGrouping(createUser(new Integer(12),"test12")); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, createUser(new Integer(11),"test11")); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, createUser(new Integer(12),"test12")); assertEquals("verify number of groups created",3,groupingByLearnerPerGroups.getGroups().size()); - this.groupingByLearnerPerGroups.doGrouping(createUser(new Integer(11),"test11")); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, createUser(new Integer(11),"test11")); assertEquals("verify number of groups created",3,groupingByLearnerPerGroups.getGroups().size()); - this.groupingByLearnerPerGroups.doGrouping(createUser(new Integer(15),"test15")); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, createUser(new Integer(15),"test15")); assertEquals("verify number of groups created",4,groupingByLearnerPerGroups.getGroups().size()); } Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestGroupingDAO.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r56dc9e59c9512b28858b2da10f756103010d9cca --- lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestGroupingDAO.java (.../TestGroupingDAO.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestGroupingDAO.java (.../TestGroupingDAO.java) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) @@ -86,7 +86,7 @@ public void testUpdateGrouping() { - testGrouping.doGrouping("testgroup",testUser); + testGrouping.getGrouper().doGrouping(testGrouping, "testgroup", testUser); groupingDAO.update(testGrouping);