Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/WorkspaceFolder.java =================================================================== diff -u -rfc77ed7c05214a99c9d9148a55e160d2d4a455ad -re584edf69cf772af93c4bc9444088abecb6f5520 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/WorkspaceFolder.java (.../WorkspaceFolder.java) (revision fc77ed7c05214a99c9d9148a55e160d2d4a455ad) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/WorkspaceFolder.java (.../WorkspaceFolder.java) (revision e584edf69cf772af93c4bc9444088abecb6f5520) @@ -312,9 +312,30 @@ * current workspaces contains subFolders */ public boolean hasSubFolders(){ - if (this.childWorkspaceFolders!=null || childWorkspaceFolders.size()!=0) + if (this.childWorkspaceFolders!=null && childWorkspaceFolders.size()!=0) return true; else return false; } + /** + * This is a utility function which checks whether the given + * workspace Folder is empty or not. + * + * TODO As of now it is being assumed that a workspace folder + * can contain only subFolders and Learning designs as its contents. + * For now, other kinds of contents like flat files, zip files, + * documents etc. have not been taken into consideration. + * + * @return boolean A boolean value indicating whether this + * folder is empty orit contains Learning Designs + */ + public boolean isEmpty(){ + if(!hasSubFolders()){ + if(this.learningDesigns==null || this.learningDesigns.size()==0) + return true; + else + return false; + }else + return false; + } } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/dao/IWorkspaceDAO.java =================================================================== diff -u -rfc77ed7c05214a99c9d9148a55e160d2d4a455ad -re584edf69cf772af93c4bc9444088abecb6f5520 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/dao/IWorkspaceDAO.java (.../IWorkspaceDAO.java) (revision fc77ed7c05214a99c9d9148a55e160d2d4a455ad) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/dao/IWorkspaceDAO.java (.../IWorkspaceDAO.java) (revision e584edf69cf772af93c4bc9444088abecb6f5520) @@ -40,5 +40,15 @@ * @return Workspace The populated workspace object */ public Workspace getWorkspaceByID(Integer workspaceID); + + /** + * Returns the workspace corresponding to the given + * root_folder_id + * + * @param rootFolderID The root_folder_id of the workspace + * being looked for + * @return Workspace The populated workspace object + */ + public Workspace getWorkspaceByRootFolderID(Integer rootFolderID); } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/WorkspaceDAO.java =================================================================== diff -u -r79758294f0dfdfd6f805b9232fe3886b1a5b84ae -re584edf69cf772af93c4bc9444088abecb6f5520 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/WorkspaceDAO.java (.../WorkspaceDAO.java) (revision 79758294f0dfdfd6f805b9232fe3886b1a5b84ae) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/WorkspaceDAO.java (.../WorkspaceDAO.java) (revision e584edf69cf772af93c4bc9444088abecb6f5520) @@ -6,6 +6,7 @@ */ package org.lamsfoundation.lams.usermanagement.dao.hibernate; +import java.util.List; import org.lamsfoundation.lams.learningdesign.dao.hibernate.BaseDAO; import org.lamsfoundation.lams.usermanagement.Workspace; import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceDAO; @@ -17,6 +18,11 @@ * Window - Preferences - Java - Code Style - Code Templates */ public class WorkspaceDAO extends BaseDAO implements IWorkspaceDAO{ + + private static final String TABLENAME="lams_workspace"; + private static final String FIND_BY_ROOT_FOLDER = "from " + TABLENAME + " in class " + Workspace.class.getName() + + " where root_folder_id=?"; + /** * (non-Javadoc) @@ -26,4 +32,8 @@ return (Workspace) super.find(Workspace.class,workspaceID); } + public Workspace getWorkspaceByRootFolderID(Integer rootFolderID){ + List list = this.getHibernateTemplate().find(FIND_BY_ROOT_FOLDER,rootFolderID); + return (Workspace)list.get(0); + } } Index: lams_common/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java =================================================================== diff -u -r79758294f0dfdfd6f805b9232fe3886b1a5b84ae -re584edf69cf772af93c4bc9444088abecb6f5520 --- lams_common/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java (.../IWorkspaceManagementService.java) (revision 79758294f0dfdfd6f805b9232fe3886b1a5b84ae) +++ lams_common/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java (.../IWorkspaceManagementService.java) (revision e584edf69cf772af93c4bc9444088abecb6f5520) @@ -1,18 +1,9 @@ -/* - * Created on Apr 1, 2005 - * - * TODO To change the template for this generated file go to - * Window - Preferences - Java - Code Style - Code Templates - */ package org.lamsfoundation.lams.workspace.service; import java.io.IOException; /** - * @author Minhas - * - * TODO To change the template for this generated type comment go to - * Window - Preferences - Java - Code Style - Code Templates + * @author Manpreet Minhas */ public interface IWorkspaceManagementService { @@ -30,5 +21,27 @@ * @throws IOException */ public String createFolderForFlash(Integer parentFolderID, String name, Integer userID)throws IOException; + + + /** + * This method deletes the WorkspaceFolder with given + * workspaceFolderID. But before it does so it checks whether the + * User is authorized to perform this action
+ * + *

Note:

To be able to a delete a WorkspaceFolder + * successfully you have to keep the following things in mind + *

+ * + * @param workspaceFolderID The WorkspaceFolder to be deleted + * @param userID The User who has requested this operation + * @return String The acknowledgement/error message in WDDX format for FLASH + * @throws IOException + */ + public String deleteFolder(Integer workspaceFolderID, Integer userID)throws IOException; } Index: lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/TestWorkspaceDAO.java =================================================================== diff -u --- lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/TestWorkspaceDAO.java (revision 0) +++ lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/TestWorkspaceDAO.java (revision e584edf69cf772af93c4bc9444088abecb6f5520) @@ -0,0 +1,45 @@ +/* + * Created on Apr 15, 2005 + * + * TODO To change the template for this generated file go to + * Window - Preferences - Java - Code Style - Code Templates + */ +package org.lamsfoundation.lams.usermanagement.dao.hibernate; + +import org.lamsfoundation.lams.AbstractLamsTestCase; +import org.lamsfoundation.lams.usermanagement.Workspace; +import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceDAO; + +/** + * @author Minhas + * + * TODO To change the template for this generated type comment go to + * Window - Preferences - Java - Code Style - Code Templates + */ +public class TestWorkspaceDAO extends AbstractLamsTestCase { + + protected IWorkspaceDAO workspaceDAO; + + public TestWorkspaceDAO(String name){ + super(name); + } + protected String[] getContextConfigLocation() { + return new String[] {"WEB-INF/spring/applicationContext.xml","WEB-INF/spring/learningDesignApplicationContext.xml"}; + } + protected String getHibernateSessionFactoryName() { + return "coreSessionFactory"; + } + protected void setUp() throws Exception{ + super.setUp(); + workspaceDAO =(IWorkspaceDAO)context.getBean("workspaceDAO"); + } + public void testGetWorkspaceByRootFolderID(){ + boolean rootFolder = false; + Workspace workspace =workspaceDAO.getWorkspaceByRootFolderID(new Integer(8)); + if(workspace!=null) + rootFolder=true; + assertTrue(rootFolder); + } + + +} Index: lams_common/test/java/org/lamsfoundation/lams/workspace/TestWorkspaceManagement.java =================================================================== diff -u -r4a2deb79ebfd327cd6b7444f139de156eeb4434b -re584edf69cf772af93c4bc9444088abecb6f5520 --- lams_common/test/java/org/lamsfoundation/lams/workspace/TestWorkspaceManagement.java (.../TestWorkspaceManagement.java) (revision 4a2deb79ebfd327cd6b7444f139de156eeb4434b) +++ lams_common/test/java/org/lamsfoundation/lams/workspace/TestWorkspaceManagement.java (.../TestWorkspaceManagement.java) (revision e584edf69cf772af93c4bc9444088abecb6f5520) @@ -34,16 +34,21 @@ "WEB-INF/spring/learningDesignApplicationContext.xml", "WEB-INF/spring/applicationContext.xml"}; } - public void testGetFolderContents()throws IOException{ + protected String getHibernateSessionFactoryName() { + return "coreSessionFactory"; + } + /*public void testGetFolderContents()throws IOException{ String packet = workspaceManagementService.getFolderContents(new Integer(4),new Integer(2),WorkspaceManagementService.AUTHORING); System.out.println(packet); } public void testCopyFolder() throws IOException{ String packet = workspaceManagementService.copyFolder(new Integer(2),new Integer(8),new Integer(4)); System.out.println(packet); - } - protected String getHibernateSessionFactoryName() { - return "coreSessionFactory"; + }*/ + public void testDeleteFolder() throws IOException{ + String message = workspaceManagementService.deleteFolder(new Integer(7), new Integer(4)); + System.out.println(message); } + }