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
+ *
Organisation
+ * or User
+ * 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);
}
+
}