Index: lams_common/lib/ehcache/ehcache-1.0.jar =================================================================== RCS file: /usr/local/cvsroot/lams_common/lib/ehcache/Attic/ehcache-1.0.jar,v diff -u Binary files differ Index: lams_common/lib/hibernate/hibernate2.jar =================================================================== RCS file: /usr/local/cvsroot/lams_common/lib/hibernate/Attic/hibernate2.jar,v diff -u -r1.3 -r1.4 Binary files differ Index: lams_common/lib/hibernate/src/hibernate-src.zip =================================================================== RCS file: /usr/local/cvsroot/lams_common/lib/hibernate/src/Attic/hibernate-src.zip,v diff -u Binary files differ 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.6 -r1.7 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java 17 Feb 2005 04:20:35 -0000 1.6 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java 18 Feb 2005 04:37:43 -0000 1.7 @@ -2,6 +2,10 @@ import java.io.Serializable; import java.util.Date; +import java.util.Iterator; +import java.util.Set; +import java.util.TreeSet; + import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; @@ -419,4 +423,38 @@ public void setHelpText(String helpText) { this.helpText = helpText; } + + /** + * This method that get all tool activities belong to a particular activity. + * + * As the activity object structure might be infinite, we recursively loop + * through the entire structure and added all tool activities into the set + * that we want to return. + * + * @param activity the requested activity. + * @return the set of all tool activities. + */ + public Set getAllToolActivitiesFrom(Activity activity) + { + Set toolActivities = new TreeSet(new ActivityOrderComparator()); + //tool activity is usually leaf node activity, we return it right away + if(activity.getActivityTypeId().intValue()==Activity.TOOL_ACTIVITY_TYPE) + { + toolActivities.add(activity); + return toolActivities; + } + //recursively get tool activity from its children if it is complex activity. + else if(activity instanceof ComplexActivity) + { + ComplexActivity cActivity = (ComplexActivity)activity; + for(Iterator i = cActivity.getActivities().iterator();i.hasNext();) + { + Activity child = (Activity)i.next(); + toolActivities.addAll(getAllToolActivitiesFrom(child)); + } + } + + return toolActivities; + + } } \ No newline at end of file Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestActivity.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/learningdesign/Attic/TestActivity.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestActivity.java 18 Feb 2005 04:37:43 -0000 1.1 @@ -0,0 +1,83 @@ +/* ******************************************************************************** + * Copyright Notice + * ================= + * This file contains propriety information of LAMS Foundation. + * Copying or reproduction with prior written permission is prohibited. + * Copyright (c) 2005 + * Created on 2005-2-18 + ******************************************************************************** */ + +package org.lamsfoundation.lams.learningdesign; + +import java.util.Set; + +import org.lamsfoundation.lams.AbstractLamsTestCase; +import org.lamsfoundation.lams.learningdesign.dao.hibernate.ActivityDAO; + + +/** + * + * @author Jacky Fang 2005-2-18 + * + */ +public class TestActivity extends AbstractLamsTestCase +{ + protected ActivityDAO activityDAO; + + private static final Long TEST_SEQUENCE_ACTIVITY=new Long(14); + + private static final Long TEST_SURVEY_ACTIVITY = new Long(20); + /* + * @see AbstractLamsTestCase#setUp() + */ + protected void setUp() throws Exception + { + super.setUp(); + activityDAO =(ActivityDAO) context.getBean("activityDAO"); + } + + /* + * @see AbstractLamsTestCase#tearDown() + */ + protected void tearDown() throws Exception + { + super.tearDown(); + } + + /** + * Constructor for TestActivity. + * @param arg0 + */ + public TestActivity(String arg0) + { + super(arg0); + } + + public void testGetAllToolActivitiesFromComplexActivity() + { + Activity complexActivity = activityDAO.getActivityByActivityId(TEST_SEQUENCE_ACTIVITY); + + Set toolActivities = complexActivity.getAllToolActivitiesFrom(complexActivity); + + assertEquals("verify the number tool activity we should get",3,toolActivities.size()); + } + + public void testGetAllToolActivitiesFromToolActivity() + { + Activity simpleActivity = activityDAO.getActivityByActivityId(TEST_SURVEY_ACTIVITY); + + Set toolActivities = simpleActivity.getAllToolActivitiesFrom(simpleActivity); + + assertEquals("verify the number tool activity we should get",1,toolActivities.size()); + + } + /** + * @see org.lamsfoundation.lams.AbstractLamsTestCase#getContextConfigLocation() + */ + protected String[] getContextConfigLocation() + { + return new String[] {"/org/lamsfoundation/lams/learningdesign/learningDesignApplicationContext.xml", + "applicationContext.xml"}; + } + +} Index: lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/lesson/Attic/LessonDataAccessTestCase.java,v diff -u -r1.16 -r1.17 --- lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java 18 Feb 2005 01:14:48 -0000 1.16 +++ lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java 18 Feb 2005 04:37:44 -0000 1.17 @@ -16,7 +16,6 @@ import junit.framework.TestCase; import net.sf.hibernate.HibernateException; -import net.sf.hibernate.LockMode; import org.lamsfoundation.lams.AbstractLamsTestCase; import org.lamsfoundation.lams.learningdesign.Group;