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.4 -r1.5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouping.java 21 Feb 2005 06:53:21 -0000 1.4 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouping.java 24 Feb 2005 05:46:03 -0000 1.5 @@ -24,6 +24,20 @@ { super(groupingId, groups, activities); } + + /** + * This method creates a deep copy of the Grouping passed + * as an argument. + * + * @param originalGrouping The Grouping object to be deep copied + * @return ChosenGrouping The deep copied Grouping object + */ + public static ChosenGrouping createCopy(ChosenGrouping originalGrouping){ + ChosenGrouping chosenGrouping = new ChosenGrouping(); + chosenGrouping.setMaxNumberOfGroups(originalGrouping.getMaxNumberOfGroups()); + chosenGrouping.setGroupingUIID(originalGrouping.getGroupingUIID()); + return chosenGrouping; + } /** * This type of grouping doesn't have groups other than learner groups. Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupingActivity.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupingActivity.java,v diff -u -r1.5 -r1.6 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupingActivity.java 23 Feb 2005 05:17:34 -0000 1.5 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupingActivity.java 24 Feb 2005 05:46:03 -0000 1.6 @@ -1,6 +1,7 @@ package org.lamsfoundation.lams.learningdesign; import java.io.Serializable; +import java.util.Date; import org.apache.commons.lang.builder.ToStringBuilder; @@ -97,7 +98,34 @@ this.createGrouping = createGrouping; this.createGroupingUIID = create_grouping_ui_id; } - + /** + * This function creates a deep copy of the GroupingActivity passed + * as an argument. However each time a GroupingActivity is deep copied + * it would result in creation of new Groups as well. + * @param originalActivity + * @return + */ + public static GroupingActivity createCopy(GroupingActivity originalActivity){ + GroupingActivity groupingActivity = new GroupingActivity(); + + groupingActivity.setActivityUIID(originalActivity.getActivityUIID()); + groupingActivity.setDescription(originalActivity.getDescription()); + groupingActivity.setTitle(originalActivity.getTitle()); + groupingActivity.setHelpText(originalActivity.getHelpText()); + groupingActivity.setXcoord(originalActivity.getXcoord()); + groupingActivity.setYcoord(originalActivity.getYcoord()); + groupingActivity.setDefineLater(originalActivity.getDefineLater()); + groupingActivity.setCreateDateTime(new Date()); + groupingActivity.setLibraryActivityUiImage(originalActivity.getLibraryActivityUiImage()); + Grouping oldGrouping = originalActivity.getGrouping(); + + if(oldGrouping.getGroupingTypeId()==Grouping.CHOSEN_GROUPING_TYPE) + groupingActivity.setGrouping(ChosenGrouping.createCopy((ChosenGrouping)oldGrouping)); + else + groupingActivity.setGrouping(RandomGrouping.createCopy((RandomGrouping)oldGrouping)); + + return groupingActivity; + } public String toString() { return new ToStringBuilder(this) 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.4 -r1.5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java 21 Feb 2005 06:53:21 -0000 1.4 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java 24 Feb 2005 05:46:03 -0000 1.5 @@ -70,4 +70,23 @@ { return true; } + /** + * This method creates a deep copy of the Grouping passed + * as an argument. + * + * @param originalGrouping The Grouping object to be deep copied + * @return RandomGrouping The deep copied Grouping object + */ + public static RandomGrouping createCopy(RandomGrouping originalGrouping){ + RandomGrouping randomGrouping = new RandomGrouping(); + + randomGrouping.setMaxNumberOfGroups(originalGrouping.getMaxNumberOfGroups()); + randomGrouping.setGroupingUIID(originalGrouping.getGroupingUIID()); + + randomGrouping.setNumberOfGroups(originalGrouping.getNumberOfGroups()); + randomGrouping.setLearnersPerGroup(originalGrouping.getLearnersPerGroup()); + + return randomGrouping; + } + }