Index: lams_tool_sbmt/build.xml =================================================================== diff -u -ra8637bbd49b901ff6a00b2d6fb048d94429aba3f -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/build.xml (.../build.xml) (revision a8637bbd49b901ff6a00b2d6fb048d94429aba3f) +++ lams_tool_sbmt/build.xml (.../build.xml) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -85,7 +85,7 @@ - + - - - - - - - - - - - - - + Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmissionDetails.java =================================================================== diff -u -reb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8 -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmissionDetails.java (.../SubmissionDetails.java) (revision eb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmissionDetails.java (.../SubmissionDetails.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -2,16 +2,18 @@ import java.io.Serializable; import java.util.Date; - import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.log4j.Logger; + /** * @hibernate.class table="tl_lasbmt11_submission_details" */ -public class SubmissionDetails implements Serializable { - +public class SubmissionDetails implements Serializable,Cloneable{ + private static Logger log = Logger.getLogger(SubmissionDetails.class); + /** identifier field */ private Long submissionID; @@ -32,9 +34,6 @@ /** persistent field */ private Long versionID; - - /** persistent field */ - private SubmitFilesContent content; /** persistent field */ private SubmitFilesReport report; @@ -49,7 +48,6 @@ this.dateOfSubmission = dateOfSubmission; this.uuid = uuid; this.versionID = versionID; - this.content = content; this.report = report; this.userID = userID; } @@ -61,14 +59,13 @@ /** minimal constructor */ public SubmissionDetails(String filePath,String fileDescription, Date dateOfSubmission, Long uuid, - Long versionID,Long userID, SubmitFilesContent content) { + Long versionID,Long userID) { this.filePath = filePath; this.fileDescription = fileDescription; this.dateOfSubmission = dateOfSubmission; this.uuid = uuid; this.versionID = versionID; this.userID = userID; - this.content = content; } /** @@ -138,19 +135,6 @@ this.versionID = versionID; } - /** - * @hibernate.many-to-one not-null="true" - * @hibernate.column name="content_id" - * - */ - public SubmitFilesContent getContent() { - return this.content; - } - - public void setContent(SubmitFilesContent content) { - this.content = content; - } - public String toString() { return new ToStringBuilder(this) .append("submissionID",getSubmissionID()).append("filePath", getFilePath()) @@ -175,7 +159,6 @@ this.getDateOfSubmission(), castOther.getDateOfSubmission()) .append(this.getUuid(), castOther.getUuid()) .append(this.getVersionID(), castOther.getVersionID()) - .append(this.getContent(), castOther.getContent()) .append(this.getReport(),castOther.getReport()) .append(this.getUserID(),castOther.getUserID()) .isEquals(); @@ -185,10 +168,12 @@ return new HashCodeBuilder().append(getSubmissionID()).append( getFilePath()).append(getFileDescription()).append( getDateOfSubmission()).append(getUuid()).append(getVersionID()) - .append(getContent()).append(getReport()).append(getUserID()).toHashCode(); + .append(getReport()).append(getUserID()).toHashCode(); } /** + * @hibernate.many-to-one not-null="true" + * @hibernate.column name="report_id" * @return Returns the report. */ public SubmitFilesReport getReport() { @@ -213,4 +198,18 @@ public void setUserID(Long userID) { this.userID = userID; } + + /* (non-Javadoc) + * @see java.lang.Object#clone() + */ + protected Object clone() throws CloneNotSupportedException { + Object obj = null; + try { + obj = super.clone(); + ((SubmissionDetails)obj).report = (SubmitFilesReport) this.report.clone(); + } catch (CloneNotSupportedException e) { + log.error("When clone " + SubmissionDetails.class + " failed"); + } + return obj; + } } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.java =================================================================== diff -u -reb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8 -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.java (.../SubmitFilesContent.java) (revision eb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.java (.../SubmitFilesContent.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -1,18 +1,21 @@ package org.lamsfoundation.lams.tool.sbmt; import java.io.Serializable; +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; +import org.apache.log4j.Logger; + /** * @hibernate.class table="tl_lasbmt11_content" */ -public class SubmitFilesContent implements Serializable { - +public class SubmitFilesContent implements Serializable,Cloneable { + private static Logger log = Logger.getLogger(SubmitFilesContent.class); /** identifier field */ private Long contentID; @@ -28,6 +31,12 @@ /** persistent field */ private Set submissionDetails; + /** persistent field */ + private boolean defineLater; + /** persistent field */ + private boolean runOffline; + + /** full constructor */ public SubmitFilesContent(String title, String instructions, Set toolSession,Set submissionDetails) { @@ -151,6 +160,8 @@ } /** + * @hibernate.collection-one-to-many + * * @return Returns the submissionDetails. */ public Set getSubmissionDetails() { @@ -162,4 +173,57 @@ public void setSubmissionDetails(Set submissionDetails) { this.submissionDetails = submissionDetails; } -} \ No newline at end of file + /** + * @hibernate.property column="defineLater" length="1" + * + */ + public boolean isDefineLater() + { + return this.defineLater; + } + + public void setDefineLater(boolean defineLater) + { + this.defineLater = defineLater; + } + + /** + * @hibernate.property column="runOffline" length="1" + * + */ + public boolean isRunOffline() + { + return this.runOffline; + } + + public void setRunOffline(boolean runOffline) + { + this.runOffline = runOffline; + } + + public Object clone(){ + Object obj = null; + try { + obj = super.clone(); + //clone SubmitFIleSession object + Iterator iter = toolSession.iterator(); + Set set = new TreeSet(); + while(iter.hasNext()) + set.add(((SubmitFilesSession)iter.next()).clone()); + ((SubmitFilesContent)obj).toolSession = set; + + //clone SubmissionDetails object + iter = submissionDetails.iterator(); + set = new TreeSet(); + while(iter.hasNext()) + set.add(((SubmissionDetails)iter.next()).clone()); + ((SubmitFilesContent)obj).submissionDetails = set; + + } catch (CloneNotSupportedException e) { + log.error("When clone " + SubmissionDetails.class + " failed"); + } + + return obj; + } + +} Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesReport.java =================================================================== diff -u -reb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8 -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesReport.java (.../SubmitFilesReport.java) (revision eb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesReport.java (.../SubmitFilesReport.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -2,16 +2,17 @@ import java.io.Serializable; import java.util.Date; -import org.apache.commons.lang.builder.EqualsBuilder; -import org.apache.commons.lang.builder.HashCodeBuilder; + import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.log4j.Logger; /** * @hibernate.class table="tl_lasbmt11_report" */ -public class SubmitFilesReport implements Serializable { - +public class SubmitFilesReport implements Serializable,Cloneable{ + private static Logger log = Logger.getLogger(SubmitFilesReport.class); + /** identifier field */ private Long reportID; @@ -24,26 +25,16 @@ /** nullable persistent field */ private Date dateMarksReleased; - /** persistent field */ - private SubmissionDetails submissionDetails; - /** full constructor */ - public SubmitFilesReport(String comments, Long marks, Date dateMarksReleased, SubmissionDetails submissionDetails) { + public SubmitFilesReport(String comments, Long marks, Date dateMarksReleased) { this.comments = comments; this.marks = marks; - this.dateMarksReleased = dateMarksReleased; - this.submissionDetails = submissionDetails; + this.dateMarksReleased = dateMarksReleased; } /** default constructor */ public SubmitFilesReport() { - } - - /** minimal constructor */ - public SubmitFilesReport(SubmissionDetails submissionDetails) { - this.submissionDetails = submissionDetails; - } - + } /** * @hibernate.id generator-class="identity" type="java.lang.Long" column="report_id" */ @@ -87,25 +78,26 @@ public void setDateMarksReleased(Date dateMarksReleased) { this.dateMarksReleased = dateMarksReleased; } - - /** - * @hibernate.many-to-one not-null="true" - * @hibernate.column name="submission_id" - */ - public SubmissionDetails getSubmissionDetails() { - return this.submissionDetails; - } - - public void setSubmissionDetails(SubmissionDetails submissionDetails) { - this.submissionDetails = submissionDetails; - } - public String toString() { return new ToStringBuilder(this) .append("reportID", getReportID()) .append("comments", getComments()) .append("marks", getMarks()) .append("dateMarksReleased", getDateMarksReleased()) .toString(); - } + } + + /* (non-Javadoc) + * @see java.lang.Object#clone() + */ + protected Object clone() throws CloneNotSupportedException { + + Object obj = null; + try { + obj = super.clone(); + } catch (CloneNotSupportedException e) { + log.error("When clone " + SubmitFilesReport.class + " failed"); + } + return obj; + } } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesSession.java =================================================================== diff -u -reb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8 -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesSession.java (.../SubmitFilesSession.java) (revision eb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesSession.java (.../SubmitFilesSession.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -4,26 +4,28 @@ import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.log4j.Logger; /** * @hibernate.class table="tl_lasbmt11_session" */ -public class SubmitFilesSession implements Serializable { +public class SubmitFilesSession implements Serializable{ + private static Logger log = Logger.getLogger(SubmitFilesSession.class); + + public final static int INCOMPLETE = 0; + public final static int COMPLETED = 1; /** identifier field */ private Long sessionID; /** persistent field */ private Integer status; - /** persistent field */ - private SubmitFilesContent contentID; - /** full constructor */ - public SubmitFilesSession(Integer status, SubmitFilesContent contentID) { - this.status = status; - this.contentID = contentID; + public SubmitFilesSession(Long sessionID,int status) { + this.sessionID = sessionID; + this.status = new Integer(status); } /** default constructor */ @@ -52,19 +54,7 @@ this.status = status; } - /** - * @hibernate.many-to-one not-null="true" - * @hibernate.column name="content_id" - * - */ - public SubmitFilesContent getContentID() { - return this.contentID; - } - public void setContentID(SubmitFilesContent contentID) { - this.contentID = contentID; - } - public String toString() { return new ToStringBuilder(this) .append("sessionID", getSessionID()) @@ -79,16 +69,26 @@ return new EqualsBuilder() .append(this.getSessionID(), castOther.getSessionID()) .append(this.getStatus(), castOther.getStatus()) - .append(this.getContentID(), castOther.getContentID()) .isEquals(); } public int hashCode() { return new HashCodeBuilder() .append(getSessionID()) .append(getStatus()) - .append(getContentID()) .toHashCode(); } + /* (non-Javadoc) + * @see java.lang.Object#clone() + */ + protected Object clone() throws CloneNotSupportedException { + Object obj = null; + try { + obj = super.clone(); + } catch (CloneNotSupportedException e) { + log.error("When clone " + SubmissionDetails.class + " failed"); + } + return obj; + } } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesContentDAO.java =================================================================== diff -u -reb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8 -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesContentDAO.java (.../ISubmitFilesContentDAO.java) (revision eb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesContentDAO.java (.../ISubmitFilesContentDAO.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -21,6 +21,14 @@ * @param contentID The contentID to be looked up * @return SubmitFilesContent The required populated object */ - public SubmitFilesContent getContentByID(Long contentID); + public SubmitFilesContent getContentByID(Long contentID); + + /** + * Save the given content. If the content existed, then update the old + * content by new given content. + * + * @param content + */ + public void save(SubmitFilesContent content); } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesSessionDAO.java =================================================================== diff -u -reb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8 -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesSessionDAO.java (.../ISubmitFilesSessionDAO.java) (revision eb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesSessionDAO.java (.../ISubmitFilesSessionDAO.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -23,4 +23,10 @@ */ public SubmitFilesSession getSessionByID(Long sessionID); + /** + * @param submitSession + */ + public void createSession(SubmitFilesSession submitSession); + + } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesContentDAO.java =================================================================== diff -u -reb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8 -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesContentDAO.java (.../SubmitFilesContentDAO.java) (revision eb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesContentDAO.java (.../SubmitFilesContentDAO.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -22,4 +22,11 @@ public SubmitFilesContent getContentByID(Long contentID) { return (SubmitFilesContent) super.find(SubmitFilesContent.class,contentID); } + + /* (non-Javadoc) + * @see org.lamsfoundation.lams.tool.sbmt.dao.ISubmitFilesContentDAO#save(org.lamsfoundation.lams.tool.sbmt.SubmitFilesContent) + */ + public void save(SubmitFilesContent content) { + this.getHibernateTemplate().save(content); + } } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesSessionDAO.java =================================================================== diff -u -reb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8 -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesSessionDAO.java (.../SubmitFilesSessionDAO.java) (revision eb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesSessionDAO.java (.../SubmitFilesSessionDAO.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -24,4 +24,11 @@ return (SubmitFilesSession) super.find(SubmitFilesSession.class,sessionID); } + /* (non-Javadoc) + * @see org.lamsfoundation.lams.tool.sbmt.dao.ISubmitFilesSessionDAO#createSession(org.lamsfoundation.lams.tool.sbmt.SubmitFilesSession) + */ + public void createSession(SubmitFilesSession submitSession) { + this.getHibernateTemplate().save(submitSession); + } + } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dto/FileDetailsDTO.java =================================================================== diff -u -reb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8 -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dto/FileDetailsDTO.java (.../FileDetailsDTO.java) (revision eb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dto/FileDetailsDTO.java (.../FileDetailsDTO.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -68,7 +68,22 @@ this.comments = report.getComments(); this.marks = report.getMarks(); } - + public FileDetailsDTO(SubmissionDetails details){ + + this.filePath = details.getFilePath(); + this.fileDescription = details.getFileDescription(); + this.dateOfSubmission = details.getDateOfSubmission(); + this.uuID = details.getUuid(); + this.versionID = details.getVersionID(); + + SubmitFilesReport report = details.getReport(); + if(report != null){ + this.reportID = report.getReportID(); + this.dateMarksReleased = report.getDateMarksReleased(); + this.comments = report.getComments(); + this.marks = report.getMarks(); + } + } /** * @return Returns the reportID. */ Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java =================================================================== diff -u -r09c9fa0ac21227610deb68479356ca37513ae74e -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java (.../ISubmitFilesService.java) (revision 09c9fa0ac21227610deb68479356ca37513ae74e) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java (.../ISubmitFilesService.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -139,7 +139,7 @@ public UserDTO getUserDetails(Long userID); - public FileDetailsDTO getFileDetails(Long reportID); + public FileDetailsDTO getFileDetails(Long detailID); public InputStream downloadFile(Long uuid, Long versionID); } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java =================================================================== diff -u -r09c9fa0ac21227610deb68479356ca37513ae74e -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision 09c9fa0ac21227610deb68479356ca37513ae74e) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -31,7 +31,9 @@ import java.util.Hashtable; import java.util.Iterator; import java.util.List; +import java.util.TreeSet; +import org.apache.log4j.Logger; import org.lamsfoundation.lams.contentrepository.AccessDeniedException; import org.lamsfoundation.lams.contentrepository.FileException; import org.lamsfoundation.lams.contentrepository.ICredentials; @@ -52,25 +54,29 @@ import org.lamsfoundation.lams.tool.sbmt.SubmissionDetails; import org.lamsfoundation.lams.tool.sbmt.SubmitFilesContent; import org.lamsfoundation.lams.tool.sbmt.SubmitFilesReport; -import org.lamsfoundation.lams.tool.sbmt.dto.LearnerDetailsDTO; -import org.lamsfoundation.lams.tool.sbmt.dto.StatusReportDTO; -import org.lamsfoundation.lams.tool.sbmt.dto.FileDetailsDTO; +import org.lamsfoundation.lams.tool.sbmt.SubmitFilesSession; import org.lamsfoundation.lams.tool.sbmt.dao.ISubmissionDetailsDAO; import org.lamsfoundation.lams.tool.sbmt.dao.ISubmitFilesContentDAO; import org.lamsfoundation.lams.tool.sbmt.dao.ISubmitFilesReportDAO; import org.lamsfoundation.lams.tool.sbmt.dao.ISubmitFilesSessionDAO; +import org.lamsfoundation.lams.tool.sbmt.dto.FileDetailsDTO; +import org.lamsfoundation.lams.tool.sbmt.dto.LearnerDetailsDTO; +import org.lamsfoundation.lams.tool.sbmt.dto.StatusReportDTO; import org.lamsfoundation.lams.tool.sbmt.exception.SubmitFilesException; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dao.IUserDAO; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.wddx.FlashMessage; +import org.springframework.dao.DataAccessException; /** * @author Manpreet Minhas */ public class SubmitFilesService implements ToolContentManager, ToolSessionManager, ISubmitFilesService { + private static Logger log = Logger.getLogger(SubmitFilesService.class); + private ISubmitFilesContentDAO submitFilesContentDAO; private ISubmitFilesReportDAO submitFilesReportDAO; @@ -144,34 +150,66 @@ SubmitFilesContent fromContent = submitFilesContentDAO .getContentByID(fromContentId); - SubmitFilesContent toContent = SubmitFilesContent.newInstance( - fromContent, toContentId); + SubmitFilesContent toContent = (SubmitFilesContent) fromContent.clone(); + //reset some new attributes for toContent + toContent.setContentID(toContentId); + toContent.setToolSession(new TreeSet()); + submitFilesContentDAO.insert(toContent); } - + /** + * @see org.lamsfoundation.lams.tool.ToolContentManager#setAsRunOffline(java.lang.Long) + */ + public void setAsRunOffline(Long toolContentId) + { + //pre-condition validation + if (toolContentId == null) + throw new SubmitFilesException("Fail to set tool content to run offline - " + + " based on null toolContentId"); + try + { + SubmitFilesContent content = submitFilesContentDAO.getContentByID(toolContentId); + if ( content == null ) { + content = duplicateDefaultToolContent(toolContentId); + } + content.setRunOffline(true); + submitFilesContentDAO.save(content); + } + catch (DataAccessException e) + { + throw new SubmitFilesException("Exception occured when LAMS is setting content to run offline" + + e.getMessage(),e); + } + } + /** - * (non-Javadoc) - * - * @see org.lamsfoundation.lams.tool.ToolContentManager#setAsDefineLater(java.lang.Long) - */ - public void setAsDefineLater(Long toolContentId) { - // TODO Auto-generated method stub + * @see org.lamsfoundation.lams.tool.ToolContentManager#setAsDefineLater(java.lang.Long) + */ + public void setAsDefineLater(Long toolContentId) { + //pre-condition validation + if (toolContentId == null) + throw new SubmitFilesException("Fail to set tool content to define later - " + + " based on null toolContentId"); + try + { + SubmitFilesContent content = submitFilesContentDAO.getContentByID(toolContentId); + if ( content == null ) { + content = duplicateDefaultToolContent(toolContentId); + } + content.setDefineLater(true); + submitFilesContentDAO.save(content); + } + catch (DataAccessException e) + { + throw new SubmitFilesException("Exception occured when LAMS is setting content to run define later" + + e.getMessage(),e); + } + + } - } - /** * (non-Javadoc) * - * @see org.lamsfoundation.lams.tool.ToolContentManager#setAsRunOffline(java.lang.Long) - */ - public void setAsRunOffline(Long toolContentId) { - // TODO Auto-generated method stub - - } - - /** - * (non-Javadoc) - * * @see org.lamsfoundation.lams.tool.ToolContentManager#removeToolContent(java.lang.Long) */ public void removeToolContent(Long toolContentId, boolean removeSessionData)throws DataMissingException { @@ -341,9 +379,9 @@ NodeKey nodeKey = uploadFileToRepository(stream, fileName, mimeType); SubmissionDetails details = new SubmissionDetails(filePath,fileDescription,dateOfSubmission, nodeKey.getUuid(),nodeKey.getVersion(), - userID,content); + userID); submissionDetailsDAO.insert(details); - submitFilesReportDAO.insert(new SubmitFilesReport(details)); + submitFilesReportDAO.insert(details.getReport()); } } @@ -383,8 +421,31 @@ * java.lang.Long) */ public void createToolSession(Long toolSessionId, Long toolContentId) { - // TODO Auto-generated method stub + //pre-condition validation + if (toolSessionId == null || toolContentId == null) + throw new SubmitFilesException("Fail to create a submission session" + + " based on null toolSessionId or toolContentId"); + log.debug("Start to create submission session based on toolSessionId[" + + toolSessionId.longValue() + "] and toolContentId[" + + toolContentId.longValue() + "]"); + try + { + SubmitFilesContent submitContent = submitFilesContentDAO.getContentByID(toolContentId); + + SubmitFilesSession submitSession = new SubmitFilesSession (toolSessionId, + SubmitFilesSession.INCOMPLETE); + + submitFilesSessionDAO.createSession(submitSession); + log.debug("Survey session created"); + } + catch (DataAccessException e) + { + throw new SubmitFilesException("Exception occured when lams is creating" + + " a submission Session: " + + e.getMessage(),e); + } + } /** @@ -483,13 +544,9 @@ } return details; } - public FileDetailsDTO getFileDetails(Long reportID){ - SubmitFilesReport report = submitFilesReportDAO.getReportByID(reportID); - if(report!=null){ - SubmissionDetails details = report.getSubmissionDetails(); - return new FileDetailsDTO(details,report); - }else - return null; + public FileDetailsDTO getFileDetails(Long detailID){ + SubmissionDetails details = submissionDetailsDAO.getSubmissionDetailsByID(detailID); + return new FileDetailsDTO(details); } /** * (non-Javadoc) @@ -611,5 +668,14 @@ throw new SubmitFilesException("ItemNotFoundException occured while trying to download file " + ie.getMessage()); } } + /** + * @param toolContentId + * @return + */ + private SubmitFilesContent duplicateDefaultToolContent(Long toolContentId) { + // TODO Auto-generated method stub + return null; + } + } \ No newline at end of file Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/MonitoringAction.java =================================================================== diff -u -r09c9fa0ac21227610deb68479356ca37513ae74e -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/MonitoringAction.java (.../MonitoringAction.java) (revision 09c9fa0ac21227610deb68479356ca37513ae74e) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/MonitoringAction.java (.../MonitoringAction.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -146,15 +146,15 @@ HttpServletResponse response){ Long contentID =new Long(WebUtil.readLongParam(request,"contentID")); Long userID = new Long(WebUtil.readLongParam(request,"userID")); - Long reportID = new Long(WebUtil.readLongParam(request,"reportID")); + Long detailID = new Long(WebUtil.readLongParam(request,"detailID")); submitFilesService = getSubmitFilesService(); request.getSession().setAttribute("contentID",contentID); request.getSession().setAttribute("user", submitFilesService.getUserDetails(userID)); request.getSession().setAttribute("fileDetails", - submitFilesService.getFileDetails(reportID)); + submitFilesService.getFileDetails(detailID)); return mapping.findForward("updateMarks"); } Index: lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestSubmissionDetailsDAO.java =================================================================== diff -u -reb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8 -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestSubmissionDetailsDAO.java (.../TestSubmissionDetailsDAO.java) (revision eb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8) +++ lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestSubmissionDetailsDAO.java (.../TestSubmissionDetailsDAO.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -53,8 +53,7 @@ public void testAddDetails(){ SubmitFilesContent content = submitFilesContentDAO.getContentByID(new Long(1)); SubmissionDetails details = new SubmissionDetails("filePath","fileDescription",new Date(), - new Long(1),new Long(1),new Long(1), - content); + new Long(1),new Long(1),new Long(1)); submissionDetailsDAO.insert(details); assertNotNull(details.getSubmissionID()); } Index: lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestSubmitFilesReportDAO.java =================================================================== diff -u -reb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8 -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestSubmitFilesReportDAO.java (.../TestSubmitFilesReportDAO.java) (revision eb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8) +++ lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestSubmitFilesReportDAO.java (.../TestSubmitFilesReportDAO.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -51,7 +51,7 @@ public void testAddSubmitFilesReport(){ submitFilesContent = submitFilesContentDAO.getContentByID(new Long(1)); - submitFilesReport = new SubmitFilesReport(submissionDetailsDAO.getSubmissionDetailsByID(new Long(1))); + submitFilesReport = submissionDetailsDAO.getSubmissionDetailsByID(new Long(1)).getReport(); submitFilesReportDAO.insert(submitFilesReport); assertNotNull(submitFilesReport.getReportID()); } Index: lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestSubmitFilesSession.java =================================================================== diff -u -reb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8 -rb496f01cb0de2c2968b080bced80c36ce24bb323 --- lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestSubmitFilesSession.java (.../TestSubmitFilesSession.java) (revision eb8df38a09efc89ecb2524cb7cf70ad9f3ec69d8) +++ lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestSubmitFilesSession.java (.../TestSubmitFilesSession.java) (revision b496f01cb0de2c2968b080bced80c36ce24bb323) @@ -50,7 +50,7 @@ } public void testAddSubmitFilesSession(){ submitFilesContent = submitFilesContentDAO.getContentByID(new Long(1)); - submitFilesSession = new SubmitFilesSession(new Integer(1),submitFilesContent); + submitFilesSession = new SubmitFilesSession(new Long(1),SubmitFilesSession.INCOMPLETE); submitFilesSessionDAO.insert(submitFilesSession); assertNotNull(submitFilesSession.getSessionID()); }