Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java,v
diff -u -r1.12 -r1.13
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java 20 Apr 2006 04:44:16 -0000 1.12
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java 20 Apr 2006 05:31:42 -0000 1.13
@@ -27,6 +27,8 @@
public static final String TOOL_SIGNNATURE = "larsrc11";
public static final String RESOURCE_SERVICE = "resourceService";
+ public static final int COMPLETED = 1;
+
//resource type;
public static final short RESOURCE_TYPE_URL = 1;
public static final short RESOURCE_TYPE_FILE = 2;
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/rsrcApplicationContext.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/rsrcApplicationContext.xml,v
diff -u -r1.3 -r1.4
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/rsrcApplicationContext.xml 4 Apr 2006 07:05:55 -0000 1.3
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/rsrcApplicationContext.xml 20 Apr 2006 05:31:42 -0000 1.4
@@ -107,7 +107,10 @@
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
+ PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
+ PROPAGATION_REQUIRED,-java.lang.Exception
+ PROPAGATION_REQUIRED,-java.lang.Exception
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceDAO.java,v
diff -u -r1.3 -r1.4
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceDAO.java 3 Apr 2006 13:24:23 -0000 1.3
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceDAO.java 20 Apr 2006 05:31:42 -0000 1.4
@@ -31,4 +31,6 @@
Resource getByUid(Long resourceUid);
+ void delete(Resource resource);
+
}
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceSessionDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceSessionDAO.java,v
diff -u -r1.3 -r1.4
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceSessionDAO.java 20 Apr 2006 04:44:16 -0000 1.3
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceSessionDAO.java 20 Apr 2006 05:31:42 -0000 1.4
@@ -23,10 +23,18 @@
/* $$Id$$ */
package org.lamsfoundation.lams.tool.rsrc.dao;
+import java.util.List;
+
import org.lamsfoundation.lams.tool.rsrc.model.ResourceSession;
public interface ResourceSessionDAO extends DAO {
ResourceSession getSessionBySessionId(Long sessionId);
+ List getByContentId(Long toolContentId);
+
+ void delete(ResourceSession session);
+
+ void deleteBySessionId(Long toolSessionId);
+
}
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceDAOHibernate.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceDAOHibernate.java,v
diff -u -r1.4 -r1.5
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceDAOHibernate.java 3 Apr 2006 13:24:23 -0000 1.4
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceDAOHibernate.java 20 Apr 2006 05:31:42 -0000 1.5
@@ -49,4 +49,8 @@
return (Resource) getObject(Resource.class,resourceUid);
}
+ public void delete(Resource resource) {
+ this.getHibernateTemplate().delete(resource);
+ }
+
}
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceSessionDAOHibernate.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceSessionDAOHibernate.java,v
diff -u -r1.3 -r1.4
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceSessionDAOHibernate.java 20 Apr 2006 04:44:16 -0000 1.3
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceSessionDAOHibernate.java 20 Apr 2006 05:31:42 -0000 1.4
@@ -32,11 +32,23 @@
public class ResourceSessionDAOHibernate extends BaseDAOHibernate implements ResourceSessionDAO{
private static final String FIND_BY_SESSION_ID = "from " + ResourceSession.class.getName() + " as p where p.sessionId=?";
+ private static final String FIND_BY_CONTENT_ID = "from " + ResourceSession.class.getName() + " as p where p.resource_uid=?";
+
public ResourceSession getSessionBySessionId(Long sessionId) {
List list = getHibernateTemplate().find(FIND_BY_SESSION_ID,sessionId);
if(list == null || list.size() == 0)
return null;
return (ResourceSession) list.get(0);
}
+ public List getByContentId(Long toolContentId) {
+ return getHibernateTemplate().find(FIND_BY_CONTENT_ID,toolContentId);
+ }
+
+ public void delete(ResourceSession session) {
+ this.getHibernateTemplate().delete(session);
+ }
+ public void deleteBySessionId(Long toolSessionId) {
+ this.removeObject(ResourceSession.class,toolSessionId);
+ }
}
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java,v
diff -u -r1.10 -r1.11
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java 20 Apr 2006 04:44:16 -0000 1.10
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java 20 Apr 2006 05:31:42 -0000 1.11
@@ -28,7 +28,9 @@
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
@@ -46,6 +48,12 @@
import org.lamsfoundation.lams.contentrepository.service.IRepositoryService;
import org.lamsfoundation.lams.contentrepository.service.SimpleCredentials;
import org.lamsfoundation.lams.learning.service.ILearnerService;
+import org.lamsfoundation.lams.tool.ToolContentManager;
+import org.lamsfoundation.lams.tool.ToolSessionExportOutputData;
+import org.lamsfoundation.lams.tool.ToolSessionManager;
+import org.lamsfoundation.lams.tool.exception.DataMissingException;
+import org.lamsfoundation.lams.tool.exception.SessionDataExistsException;
+import org.lamsfoundation.lams.tool.exception.ToolException;
import org.lamsfoundation.lams.tool.rsrc.ResourceConstants;
import org.lamsfoundation.lams.tool.rsrc.dao.ResourceAttachmentDAO;
import org.lamsfoundation.lams.tool.rsrc.dao.ResourceDAO;
@@ -73,7 +81,7 @@
*
*/
public class ResourceServiceImpl implements
- IResourceService
+ IResourceService,ToolContentManager, ToolSessionManager
{
static Logger log = Logger.getLogger(ResourceServiceImpl.class.getName());
@@ -142,15 +150,15 @@
}
}
/**
- * This method verifies the credentials of the SubmitFiles Tool and gives it
+ * This method verifies the credentials of the Share Resource Tool and gives it
* the Ticket
to login and access the Content Repository.
*
* A valid ticket is needed in order to access the content from the
* repository. This method would be called evertime the tool needs to
* upload/download files from the content repository.
*
* @return ITicket The ticket for repostory access
- * @throws SubmitFilesException
+ * @throws ResourceApplicationException
*/
private ITicket getRepositoryLoginTicket() throws ResourceApplicationException {
ICredentials credentials = new SimpleCredentials(
@@ -329,7 +337,6 @@
/**
* Process an uploaded file.
*
- * @param forumForm
* @throws ResourceApplicationException
* @throws FileNotFoundException
* @throws IOException
@@ -487,4 +494,115 @@
this.toolService = toolService;
}
+ //*******************************************************************************
+ //ToolContentManager, ToolSessionManager methods
+ //*******************************************************************************
+ public void copyToolContent(Long fromContentId, Long toContentId) throws ToolException {
+ if (fromContentId == null || toContentId == null)
+ throw new ToolException(
+ "Failed to create the SharedResourceFiles tool seession");
+
+ Resource resource = resourceDao.getByContentId(fromContentId);
+ if ( resource == null ) {
+ try {
+ resource = getDefaultContent(fromContentId);
+ } catch (ResourceApplicationException e) {
+ throw new ToolException(e);
+ }
+ }
+ Resource toContent = Resource.newInstance(resource,toContentId,resourceToolContentHandler);
+ resourceDao.saveObject(toContent);
+
+ //save resource items
+ Set items = toContent.getResourceItems();
+ if(items != null){
+ Iterator iter = items.iterator();
+ while(iter.hasNext()){
+ ResourceItem item = (ResourceItem) iter.next();
+// createRootTopic(toContent.getUid(),null,msg);
+ }
+ }
+ }
+
+
+ public void setAsDefineLater(Long toolContentId) throws DataMissingException, ToolException {
+ Resource resource = resourceDao.getByContentId(toolContentId);
+ if(resource == null){
+ throw new ToolException("No found tool content by given content ID:" + toolContentId);
+ }
+ resource.setDefineLater(true);
+ }
+
+
+ public void setAsRunOffline(Long toolContentId) throws DataMissingException, ToolException {
+ Resource resource = resourceDao.getByContentId(toolContentId);
+ if(resource == null){
+ throw new ToolException("No found tool content by given content ID:" + toolContentId);
+ }
+ resource.setRunOffline(true);
+ }
+
+
+ public void removeToolContent(Long toolContentId, boolean removeSessionData) throws SessionDataExistsException, ToolException {
+ Resource resource = resourceDao.getByContentId(toolContentId);
+ if(removeSessionData){
+ List list = resourceSessionDao.getByContentId(toolContentId);
+ Iterator iter = list.iterator();
+ while(iter.hasNext()){
+ ResourceSession session = (ResourceSession ) iter.next();
+ resourceSessionDao.delete(session);
+ }
+ }
+ resourceDao.delete(resource);
+ }
+
+
+ public void createToolSession(Long toolSessionId, String toolSessionName, Long toolContentId) throws ToolException {
+ ResourceSession session = new ResourceSession();
+ session.setSessionId(toolSessionId);
+ session.setSessionName(toolSessionName);
+ Resource resource = resourceDao.getByContentId(toolContentId);
+ session.setResource(resource);
+ resourceSessionDao.saveObject(session);
+ }
+
+
+ public String leaveToolSession(Long toolSessionId, Long learnerId) throws DataMissingException, ToolException {
+ if(toolSessionId == null){
+ log.error("Fail to leave tool Session based on null tool session id.");
+ throw new ToolException("Fail to remove tool Session based on null tool session id.");
+ }
+ if(learnerId == null){
+ log.error("Fail to leave tool Session based on null learner.");
+ throw new ToolException("Fail to remove tool Session based on null learner.");
+ }
+
+ ResourceSession session = resourceSessionDao.getSessionBySessionId(toolSessionId);
+ if(session != null){
+ session.setStatus(ResourceConstants.COMPLETED);
+ resourceSessionDao.saveObject(session);
+ }else{
+ log.error("Fail to leave tool Session.Could not find shared resources " +
+ "session by given session id: "+toolSessionId);
+ throw new DataMissingException("Fail to leave tool Session." +
+ "Could not find shared resource session by given session id: "+toolSessionId);
+ }
+ return learnerService.completeToolSession(toolSessionId,learnerId);
+ }
+
+
+ public ToolSessionExportOutputData exportToolSession(Long toolSessionId) throws DataMissingException, ToolException {
+ return null;
+ }
+
+
+ public ToolSessionExportOutputData exportToolSession(List toolSessionIds) throws DataMissingException, ToolException {
+ return null;
+ }
+
+
+ public void removeToolSession(Long toolSessionId) throws DataMissingException, ToolException {
+ resourceSessionDao.deleteBySessionId(toolSessionId);
+ }
+
}