Index: tool_adapters/moodle/lams_tool_mdlforum/.classpath =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/.classpath (.../.classpath) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/.classpath (.../.classpath) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -4,7 +4,6 @@ - Index: tool_adapters/moodle/lams_tool_mdlforum/.cvsignore =================================================================== diff -u --- tool_adapters/moodle/lams_tool_mdlforum/.cvsignore (revision 0) +++ tool_adapters/moodle/lams_tool_mdlforum/.cvsignore (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -0,0 +1,5 @@ +build +bin +.myeclipse +.mymetadata +.settings Index: tool_adapters/moodle/lams_tool_mdlforum/conf/language/ApplicationResources.properties =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -13,6 +13,7 @@ pageTitle.admin =Moodle Forum Configuration admin.extToolAdapterServletUrl =External tool adapter servlet URL admin.extServerId =External server id mapping +admin.extServerUrl =External server url admin.formError =There was an error processing the form, please ensure both fields are filled and click save again. admin.return =Return to maintain LAMS monitor.sessions =Sessions Index: tool_adapters/moodle/lams_tool_mdlforum/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -13,6 +13,7 @@ pageTitle.admin =Moodle Forum Configuration admin.extToolAdapterServletUrl =External tool adapter servlet URL admin.extServerId =External server id mapping +admin.extServerUrl =External server url admin.formError =There was an error processing the form, please ensure both fields are filled and click save again. admin.return =Return to maintain LAMS monitor.sessions =Sessions Index: tool_adapters/moodle/lams_tool_mdlforum/conf/language/rams/ApplicationResources.properties =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/conf/language/rams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/conf/language/rams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -13,6 +13,7 @@ pageTitle.admin =Moodle Forum Configuration admin.extToolAdapterServletUrl =External tool adapter servlet URL admin.extServerId =External server id mapping +admin.extServerUrl =External server url admin.formError =There was an error processing the form, please ensure both fields are filled and click save again. admin.return =Return to maintain LAMS monitor.sessions =Sessions Index: tool_adapters/moodle/lams_tool_mdlforum/conf/language/rams/ApplicationResources_en_AU.properties =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/conf/language/rams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/conf/language/rams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -13,6 +13,7 @@ pageTitle.admin =Moodle Forum Configuration admin.extToolAdapterServletUrl =External tool adapter servlet URL admin.extServerId =External server id mapping +admin.extServerUrl =External server url admin.formError =There was an error processing the form, please ensure both fields are filled and click save again. admin.return =Return to maintain LAMS monitor.sessions =Sessions Fisheye: Tag 08c312af0856bca0a580ddc8494c34bb5bbc4624 refers to a dead (removed) revision in file `tool_adapters/moodle/lams_tool_mdlforum/conf/middlegen/lams_tool_ladotLRNForum11-prefs.properties'. Fisheye: No comparison available. Pass `N' to diff? Index: tool_adapters/moodle/lams_tool_mdlforum/conf/middlegen/lams_tool_mdfrum10-prefs.properties =================================================================== diff -u --- tool_adapters/moodle/lams_tool_mdlforum/conf/middlegen/lams_tool_mdfrum10-prefs.properties (revision 0) +++ tool_adapters/moodle/lams_tool_mdlforum/conf/middlegen/lams_tool_mdfrum10-prefs.properties (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -0,0 +1,128 @@ +# Middlegen Preferences +hibernate.tables.tl_mdfrum10_attachment.base-class-name=MdlForumAttachment +hibernate.tables.tl_mdfrum10_attachment.columns.create_date.columnspecialty=property +hibernate.tables.tl_mdfrum10_attachment.columns.create_date.java-name=createDate +hibernate.tables.tl_mdfrum10_attachment.columns.create_date.java-type=java.sql.Timestamp +hibernate.tables.tl_mdfrum10_attachment.columns.mdlForum_uid.columnspecialty=foreign key +hibernate.tables.tl_mdfrum10_attachment.columns.mdlForum_uid.java-name=mdlForumUid +hibernate.tables.tl_mdfrum10_attachment.columns.mdlForum_uid.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_attachment.columns.file_name.inctostring=true +hibernate.tables.tl_mdfrum10_attachment.columns.file_name.java-name=fileName +hibernate.tables.tl_mdfrum10_attachment.columns.file_name.java-type=java.lang.String +hibernate.tables.tl_mdfrum10_attachment.columns.file_type.java-name=fileType +hibernate.tables.tl_mdfrum10_attachment.columns.file_type.java-type=java.lang.String +hibernate.tables.tl_mdfrum10_attachment.columns.file_uuid.columnspecialty=property +hibernate.tables.tl_mdfrum10_attachment.columns.file_uuid.incequals=false +hibernate.tables.tl_mdfrum10_attachment.columns.file_uuid.inctostring=true +hibernate.tables.tl_mdfrum10_attachment.columns.file_uuid.java-name=fileUuid +hibernate.tables.tl_mdfrum10_attachment.columns.file_uuid.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_attachment.columns.file_version_id.inctostring=true +hibernate.tables.tl_mdfrum10_attachment.columns.file_version_id.java-name=fileVersionId +hibernate.tables.tl_mdfrum10_attachment.columns.file_version_id.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_attachment.columns.uid.columnspecialty=key +hibernate.tables.tl_mdfrum10_attachment.columns.uid.incequals=true +hibernate.tables.tl_mdfrum10_attachment.columns.uid.inctostring=true +hibernate.tables.tl_mdfrum10_attachment.columns.uid.java-name=uid +hibernate.tables.tl_mdfrum10_attachment.columns.uid.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_attachment.equalshashcode=true +hibernate.tables.tl_mdfrum10_attachment.keygenerator=native +hibernate.tables.tl_mdfrum10_mdlForum.base-class-name=MdlForum +hibernate.tables.tl_mdfrum10_mdlForum.columns.content_in_use.java-name=contentInUse +hibernate.tables.tl_mdfrum10_mdlForum.columns.content_in_use.java-type=java.lang.Boolean +hibernate.tables.tl_mdfrum10_mdlForum.columns.create_by.java-name=createBy +hibernate.tables.tl_mdfrum10_mdlForum.columns.create_by.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_mdlForum.columns.create_date.java-name=createDate +hibernate.tables.tl_mdfrum10_mdlForum.columns.create_date.java-type=java.sql.Timestamp +hibernate.tables.tl_mdfrum10_mdlForum.columns.define_later.java-name=defineLater +hibernate.tables.tl_mdfrum10_mdlForum.columns.define_later.java-type=java.lang.Boolean +hibernate.tables.tl_mdfrum10_mdlForum.columns.instructions.inctostring=true +hibernate.tables.tl_mdfrum10_mdlForum.columns.instructions.java-name=instructions +hibernate.tables.tl_mdfrum10_mdlForum.columns.instructions.java-type=java.lang.String +hibernate.tables.tl_mdfrum10_mdlForum.columns.lock_on_finished.java-name=lockOnFinished +hibernate.tables.tl_mdfrum10_mdlForum.columns.lock_on_finished.java-type=java.lang.Boolean +hibernate.tables.tl_mdfrum10_mdlForum.columns.offline_instructions.java-name=offlineInstructions +hibernate.tables.tl_mdfrum10_mdlForum.columns.offline_instructions.java-type=java.lang.String +hibernate.tables.tl_mdfrum10_mdlForum.columns.online_instructions.java-name=onlineInstructions +hibernate.tables.tl_mdfrum10_mdlForum.columns.online_instructions.java-type=java.lang.String +hibernate.tables.tl_mdfrum10_mdlForum.columns.run_offline.java-name=runOffline +hibernate.tables.tl_mdfrum10_mdlForum.columns.run_offline.java-type=java.lang.Boolean +hibernate.tables.tl_mdfrum10_mdlForum.columns.title.inctostring=true +hibernate.tables.tl_mdfrum10_mdlForum.columns.title.java-name=title +hibernate.tables.tl_mdfrum10_mdlForum.columns.title.java-type=java.lang.String +hibernate.tables.tl_mdfrum10_mdlForum.columns.tool_content_id.inctostring=true +hibernate.tables.tl_mdfrum10_mdlForum.columns.tool_content_id.java-name=toolContentId +hibernate.tables.tl_mdfrum10_mdlForum.columns.tool_content_id.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_mdlForum.columns.uid.columnspecialty=key +hibernate.tables.tl_mdfrum10_mdlForum.columns.uid.incequals=true +hibernate.tables.tl_mdfrum10_mdlForum.columns.uid.inctostring=true +hibernate.tables.tl_mdfrum10_mdlForum.columns.uid.java-name=uid +hibernate.tables.tl_mdfrum10_mdlForum.columns.uid.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_mdlForum.columns.update_date.java-name=updateDate +hibernate.tables.tl_mdfrum10_mdlForum.columns.update_date.java-type=java.sql.Timestamp +hibernate.tables.tl_mdfrum10_mdlForum.dynamicInsert=false +hibernate.tables.tl_mdfrum10_mdlForum.equalshashcode=true +hibernate.tables.tl_mdfrum10_mdlForum.keygenerator=native +hibernate.tables.tl_mdfrum10_session.base-class-name=MdlForumSession +hibernate.tables.tl_mdfrum10_session.columns.mdlForum_uid.java-name=mdlForumUid +hibernate.tables.tl_mdfrum10_session.columns.mdlForum_uid.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_session.columns.session_end_date.inctostring=true +hibernate.tables.tl_mdfrum10_session.columns.session_end_date.java-name=sessionEndDate +hibernate.tables.tl_mdfrum10_session.columns.session_end_date.java-type=java.sql.Timestamp +hibernate.tables.tl_mdfrum10_session.columns.session_id.inctostring=true +hibernate.tables.tl_mdfrum10_session.columns.session_id.java-name=sessionId +hibernate.tables.tl_mdfrum10_session.columns.session_id.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_session.columns.session_name.inctostring=true +hibernate.tables.tl_mdfrum10_session.columns.session_name.java-name=sessionName +hibernate.tables.tl_mdfrum10_session.columns.session_name.java-type=java.lang.String +hibernate.tables.tl_mdfrum10_session.columns.session_start_date.inctostring=true +hibernate.tables.tl_mdfrum10_session.columns.session_start_date.java-name=sessionStartDate +hibernate.tables.tl_mdfrum10_session.columns.session_start_date.java-type=java.sql.Timestamp +hibernate.tables.tl_mdfrum10_session.columns.status.inctostring=true +hibernate.tables.tl_mdfrum10_session.columns.status.java-name=status +hibernate.tables.tl_mdfrum10_session.columns.status.java-type=java.lang.Integer +hibernate.tables.tl_mdfrum10_session.columns.uid.columnspecialty=key +hibernate.tables.tl_mdfrum10_session.columns.uid.incequals=true +hibernate.tables.tl_mdfrum10_session.columns.uid.inctostring=true +hibernate.tables.tl_mdfrum10_session.columns.uid.java-name=uid +hibernate.tables.tl_mdfrum10_session.columns.uid.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_session.equalshashcode=true +hibernate.tables.tl_mdfrum10_session.keygenerator=native +hibernate.tables.tl_mdfrum10_user.base-class-name=MdlForumUser +hibernate.tables.tl_mdfrum10_user.columns.first_name.java-name=firstName +hibernate.tables.tl_mdfrum10_user.columns.first_name.java-type=java.lang.String +hibernate.tables.tl_mdfrum10_user.columns.last_name.columnspecialty=property +hibernate.tables.tl_mdfrum10_user.columns.last_name.java-name=lastName +hibernate.tables.tl_mdfrum10_user.columns.last_name.java-type=java.lang.String +hibernate.tables.tl_mdfrum10_user.columns.session_id.inctostring=true +hibernate.tables.tl_mdfrum10_user.columns.session_id.java-name=sessionId +hibernate.tables.tl_mdfrum10_user.columns.session_id.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_user.columns.uid.columnspecialty=key +hibernate.tables.tl_mdfrum10_user.columns.uid.incequals=true +hibernate.tables.tl_mdfrum10_user.columns.uid.inctostring=true +hibernate.tables.tl_mdfrum10_user.columns.uid.java-name=uid +hibernate.tables.tl_mdfrum10_user.columns.uid.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_user.columns.user_id.inctostring=true +hibernate.tables.tl_mdfrum10_user.columns.user_id.java-name=userId +hibernate.tables.tl_mdfrum10_user.columns.user_id.java-type=java.lang.Long +hibernate.tables.tl_mdfrum10_user.equalshashcode=true +hibernate.tables.tl_mdfrum10_user.keygenerator=sequence +relations.tl_mdfrum10_mdlForum-tl_mdfrum10_attachment.tl_mdfrum10_attachment-has-tl_mdfrum10_mdlForum.enabled=true +relations.tl_mdfrum10_mdlForum-tl_mdfrum10_attachment.tl_mdfrum10_attachment-has-tl_mdfrum10_mdlForum.target-many=false +relations.tl_mdfrum10_mdlForum-tl_mdfrum10_attachment.tl_mdfrum10_mdlForum-has-tl_mdfrum10_attachment.enabled=true +relations.tl_mdfrum10_mdlForum-tl_mdfrum10_attachment.tl_mdfrum10_mdlForum-has-tl_mdfrum10_attachment.target-many=true +relations.tl_mdfrum10_mdlForum-tl_mdfrum10_session.tl_mdfrum10_mdlForum-has-tl_mdfrum10_session.enabled=true +relations.tl_mdfrum10_mdlForum-tl_mdfrum10_session.tl_mdfrum10_mdlForum-has-tl_mdfrum10_session.target-many=true +relations.tl_mdfrum10_mdlForum-tl_mdfrum10_session.tl_mdfrum10_session-has-tl_mdfrum10_mdlForum.enabled=true +relations.tl_mdfrum10_mdlForum-tl_mdfrum10_session.tl_mdfrum10_session-has-tl_mdfrum10_mdlForum.target-many=false +relations.tl_mdfrum10_session-tl_mdfrum10_user.tl_mdfrum10_session-has-tl_mdfrum10_user.enabled=true +relations.tl_mdfrum10_session-tl_mdfrum10_user.tl_mdfrum10_session-has-tl_mdfrum10_user.target-many=true +relations.tl_mdfrum10_session-tl_mdfrum10_user.tl_mdfrum10_user-has-tl_mdfrum10_session.enabled=true +relations.tl_mdfrum10_session-tl_mdfrum10_user.tl_mdfrum10_user-has-tl_mdfrum10_session.target-many=false +tables.tl_mdfrum10_attachment.x=566 +tables.tl_mdfrum10_attachment.y=173 +tables.tl_mdfrum10_mdlForum.x=308 +tables.tl_mdfrum10_mdlForum.y=176 +tables.tl_mdfrum10_session.x=70 +tables.tl_mdfrum10_session.y=70 +tables.tl_mdfrum10_user.x=460 +tables.tl_mdfrum10_user.y=28 Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/IMdlForumConfigItemDAO.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/IMdlForumConfigItemDAO.java (.../IMdlForumConfigItemDAO.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/IMdlForumConfigItemDAO.java (.../IMdlForumConfigItemDAO.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -1,11 +1,32 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ package org.lamsfoundation.lams.tool.mdfrum.dao; - import org.lamsfoundation.lams.dao.IBaseDAO; import org.lamsfoundation.lams.tool.mdfrum.model.MdlForumConfigItem; -public interface IMdlForumConfigItemDAO extends IBaseDAO -{ - void saveOrUpdate(MdlForumConfigItem toConfig); - public MdlForumConfigItem getConfigItemByKey(final String configKey); +public interface IMdlForumConfigItemDAO extends IBaseDAO { + void saveOrUpdate(MdlForumConfigItem toConfig); + + public MdlForumConfigItem getConfigItemByKey(final String configKey); } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/IMdlForumDAO.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/IMdlForumDAO.java (.../IMdlForumDAO.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/IMdlForumDAO.java (.../IMdlForumDAO.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -28,13 +28,13 @@ import org.lamsfoundation.lams.tool.mdfrum.model.MdlForum; /** - * DAO for accessing the MdlForum objects - interface defining - * methods to be implemented by the Hibernate or other implementation. + * DAO for accessing the MdlForum objects - interface defining methods to be + * implemented by the Hibernate or other implementation. */ -public interface IMdlForumDAO extends IBaseDAO{ +public interface IMdlForumDAO extends IBaseDAO { - MdlForum getByContentId(Long toolContentId); + MdlForum getByContentId(Long toolContentId); - void saveOrUpdate(MdlForum toContent); - + void saveOrUpdate(MdlForum toContent); + } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/IMdlForumSessionDAO.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/IMdlForumSessionDAO.java (.../IMdlForumSessionDAO.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/IMdlForumSessionDAO.java (.../IMdlForumSessionDAO.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -28,14 +28,14 @@ import org.lamsfoundation.lams.tool.mdfrum.model.MdlForumSession; /** - * DAO for accessing the MdlForumSession objects - interface defining - * methods to be implemented by the Hibernate or other implementation. + * DAO for accessing the MdlForumSession objects - interface defining methods to + * be implemented by the Hibernate or other implementation. */ -public interface IMdlForumSessionDAO extends IBaseDAO{ +public interface IMdlForumSessionDAO extends IBaseDAO { - void saveOrUpdate(MdlForumSession session); + void saveOrUpdate(MdlForumSession session); - MdlForumSession getBySessionId(Long toolSessionId); + MdlForumSession getBySessionId(Long toolSessionId); - void deleteBySessionID(Long toolSessionID); + void deleteBySessionID(Long toolSessionID); } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/IMdlForumUserDAO.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/IMdlForumUserDAO.java (.../IMdlForumUserDAO.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/IMdlForumUserDAO.java (.../IMdlForumUserDAO.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -28,33 +28,32 @@ import org.lamsfoundation.lams.tool.mdfrum.model.MdlForumUser; /** - * DAO for accessing the MdlForumUser objects - interface defining - * methods to be implemented by the Hibernate or other implementation. + * DAO for accessing the MdlForumUser objects - interface defining methods to be + * implemented by the Hibernate or other implementation. */ -public interface IMdlForumUserDAO extends IBaseDAO{ - /** - * - * @param userId - * @param toolSessionId - * @return - */ - MdlForumUser getByUserIdAndSessionId(Long userId, Long toolSessionId); +public interface IMdlForumUserDAO extends IBaseDAO { + /** + * + * @param userId + * @param toolSessionId + * @return + */ + MdlForumUser getByUserIdAndSessionId(Long userId, Long toolSessionId); - void saveOrUpdate(MdlForumUser mdlForumUser); + void saveOrUpdate(MdlForumUser mdlForumUser); - /** - * - * @param loginName - * @param sessionID - * @return - */ - MdlForumUser getByLoginNameAndSessionId(String loginName, Long toolSessionId); + /** + * + * @param loginName + * @param sessionID + * @return + */ + MdlForumUser getByLoginNameAndSessionId(String loginName, Long toolSessionId); - - /** - * - * @param uid - * @return - */ - MdlForumUser getByUID(Long uid); + /** + * + * @param uid + * @return + */ + MdlForumUser getByUID(Long uid); } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/hibernate/MdlForumConfigItemDAO.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/hibernate/MdlForumConfigItemDAO.java (.../MdlForumConfigItemDAO.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/hibernate/MdlForumConfigItemDAO.java (.../MdlForumConfigItemDAO.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -1,3 +1,25 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ package org.lamsfoundation.lams.tool.mdfrum.dao.hibernate; import org.hibernate.HibernateException; @@ -6,27 +28,22 @@ import org.lamsfoundation.lams.tool.mdfrum.dao.IMdlForumConfigItemDAO; import org.lamsfoundation.lams.tool.mdfrum.model.MdlForumConfigItem; import org.springframework.orm.hibernate3.HibernateCallback; -public class MdlForumConfigItemDAO extends BaseDAO implements IMdlForumConfigItemDAO -{ - private static final String LOAD_CONFIG_ITEM_BY_KEY = "from MdlForumConfigItem configuration" - + " where configuration.configKey=:key"; - - public MdlForumConfigItem getConfigItemByKey(final String configKey) - { - return (MdlForumConfigItem) getHibernateTemplate().execute(new HibernateCallback() - { - public Object doInHibernate(Session session) throws HibernateException - { - return session.createQuery(LOAD_CONFIG_ITEM_BY_KEY) - .setString("key",configKey) - .uniqueResult(); - } - }); - + +public class MdlForumConfigItemDAO extends BaseDAO implements IMdlForumConfigItemDAO { + private static final String LOAD_CONFIG_ITEM_BY_KEY = "from MdlForumConfigItem configuration" + + " where configuration.configKey=:key"; + + public MdlForumConfigItem getConfigItemByKey(final String configKey) { + return (MdlForumConfigItem) getHibernateTemplate().execute(new HibernateCallback() { + public Object doInHibernate(Session session) throws HibernateException { + return session.createQuery(LOAD_CONFIG_ITEM_BY_KEY).setString("key", configKey).uniqueResult(); + } + }); + } - - public void saveOrUpdate(MdlForumConfigItem mdlForumConfigItem) { - this.getHibernateTemplate().saveOrUpdate(mdlForumConfigItem); - this.getHibernateTemplate().flush(); - } + + public void saveOrUpdate(MdlForumConfigItem mdlForumConfigItem) { + this.getHibernateTemplate().saveOrUpdate(mdlForumConfigItem); + this.getHibernateTemplate().flush(); + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/hibernate/MdlForumDAO.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/hibernate/MdlForumDAO.java (.../MdlForumDAO.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/hibernate/MdlForumDAO.java (.../MdlForumDAO.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -35,20 +35,19 @@ */ public class MdlForumDAO extends BaseDAO implements IMdlForumDAO { - private static final String FIND_FORUM_BY_CONTENTID = "from MdlForum mdlForum where mdlForum.toolContentId=?"; + private static final String FIND_FORUM_BY_CONTENTID = "from MdlForum mdlForum where mdlForum.toolContentId=?"; + public MdlForum getByContentId(Long toolContentId) { + List list = getHibernateTemplate().find(FIND_FORUM_BY_CONTENTID, toolContentId); + if (list != null && list.size() > 0) + return (MdlForum) list.get(0); + else + return null; + } - public MdlForum getByContentId(Long toolContentId) { - List list = getHibernateTemplate().find(FIND_FORUM_BY_CONTENTID,toolContentId); - if (list != null && list.size() > 0) - return (MdlForum) list.get(0); - else - return null; - } + public void saveOrUpdate(MdlForum mdlForum) { + this.getHibernateTemplate().saveOrUpdate(mdlForum); + this.getHibernateTemplate().flush(); + } - public void saveOrUpdate(MdlForum mdlForum) { - this.getHibernateTemplate().saveOrUpdate(mdlForum); - this.getHibernateTemplate().flush(); - } - } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/hibernate/MdlForumSessionDAO.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/hibernate/MdlForumSessionDAO.java (.../MdlForumSessionDAO.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/hibernate/MdlForumSessionDAO.java (.../MdlForumSessionDAO.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -35,26 +35,26 @@ */ public class MdlForumSessionDAO extends BaseDAO implements IMdlForumSessionDAO { - public static final String SQL_QUERY_FIND_BY_SESSION_ID = "from " - + MdlForumSession.class.getName() + " where session_id=?"; + public static final String SQL_QUERY_FIND_BY_SESSION_ID = "from " + MdlForumSession.class.getName() + + " where session_id=?"; - public void saveOrUpdate(MdlForumSession session) { - this.getHibernateTemplate().saveOrUpdate(session); - this.getHibernateTemplate().flush(); - } + public void saveOrUpdate(MdlForumSession session) { + this.getHibernateTemplate().saveOrUpdate(session); + this.getHibernateTemplate().flush(); + } - public MdlForumSession getBySessionId(Long toolSessionId) { - List list = this.getHibernateTemplate().find(SQL_QUERY_FIND_BY_SESSION_ID, toolSessionId); - if (list == null || list.isEmpty()) - return null; - return (MdlForumSession) list.get(0); - } + public MdlForumSession getBySessionId(Long toolSessionId) { + List list = this.getHibernateTemplate().find(SQL_QUERY_FIND_BY_SESSION_ID, toolSessionId); + if (list == null || list.isEmpty()) + return null; + return (MdlForumSession) list.get(0); + } - public void deleteBySessionID(Long toolSessionID) { - MdlForumSession session = getBySessionId(toolSessionID); - if(session != null){ - this.getHibernateTemplate().delete(session); - this.getHibernateTemplate().flush(); - } + public void deleteBySessionID(Long toolSessionID) { + MdlForumSession session = getBySessionId(toolSessionID); + if (session != null) { + this.getHibernateTemplate().delete(session); + this.getHibernateTemplate().flush(); } + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/hibernate/MdlForumUserDAO.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/hibernate/MdlForumUserDAO.java (.../MdlForumUserDAO.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dao/hibernate/MdlForumUserDAO.java (.../MdlForumUserDAO.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -35,54 +35,47 @@ */ public class MdlForumUserDAO extends BaseDAO implements IMdlForumUserDAO { - public static final String SQL_QUERY_FIND_BY_USER_ID_SESSION_ID = "from " - + MdlForumUser.class.getName() + " as f" - + " where user_id=? and f.mdlForumSession.sessionId=?"; + public static final String SQL_QUERY_FIND_BY_USER_ID_SESSION_ID = "from " + MdlForumUser.class.getName() + " as f" + + " where user_id=? and f.mdlForumSession.sessionId=?"; - public static final String SQL_QUERY_FIND_BY_LOGIN_NAME_SESSION_ID = "from " - + MdlForumUser.class.getName() - + " as f where login_name=? and f.mdlForumSession.sessionId=?"; + public static final String SQL_QUERY_FIND_BY_LOGIN_NAME_SESSION_ID = "from " + MdlForumUser.class.getName() + + " as f where login_name=? and f.mdlForumSession.sessionId=?"; - private static final String SQL_QUERY_FIND_BY_UID = "from " - + MdlForumUser.class.getName() + " where uid=?"; + private static final String SQL_QUERY_FIND_BY_UID = "from " + MdlForumUser.class.getName() + " where uid=?"; - public MdlForumUser getByUserIdAndSessionId(Long userId, Long toolSessionId) { - List list = this.getHibernateTemplate().find( - SQL_QUERY_FIND_BY_USER_ID_SESSION_ID, - new Object[] { userId, toolSessionId }); + public MdlForumUser getByUserIdAndSessionId(Long userId, Long toolSessionId) { + List list = this.getHibernateTemplate().find(SQL_QUERY_FIND_BY_USER_ID_SESSION_ID, + new Object[] { userId, toolSessionId }); - if (list == null || list.isEmpty()) - return null; + if (list == null || list.isEmpty()) + return null; - return (MdlForumUser) list.get(0); - } + return (MdlForumUser) list.get(0); + } - public MdlForumUser getByLoginNameAndSessionId(String loginName, - Long toolSessionId) { + public MdlForumUser getByLoginNameAndSessionId(String loginName, Long toolSessionId) { - List list = this.getHibernateTemplate().find( - SQL_QUERY_FIND_BY_LOGIN_NAME_SESSION_ID, - new Object[] { loginName, toolSessionId }); + List list = this.getHibernateTemplate().find(SQL_QUERY_FIND_BY_LOGIN_NAME_SESSION_ID, + new Object[] { loginName, toolSessionId }); - if (list == null || list.isEmpty()) - return null; + if (list == null || list.isEmpty()) + return null; - return (MdlForumUser) list.get(0); + return (MdlForumUser) list.get(0); - } + } - public void saveOrUpdate(MdlForumUser mdlForumUser) { - this.getHibernateTemplate().saveOrUpdate(mdlForumUser); - this.getHibernateTemplate().flush(); - } + public void saveOrUpdate(MdlForumUser mdlForumUser) { + this.getHibernateTemplate().saveOrUpdate(mdlForumUser); + this.getHibernateTemplate().flush(); + } - public MdlForumUser getByUID(Long uid) { - List list = this.getHibernateTemplate().find(SQL_QUERY_FIND_BY_UID, - new Object[] { uid }); + public MdlForumUser getByUID(Long uid) { + List list = this.getHibernateTemplate().find(SQL_QUERY_FIND_BY_UID, new Object[] { uid }); - if (list == null || list.isEmpty()) - return null; + if (list == null || list.isEmpty()) + return null; - return (MdlForumUser) list.get(0); - } + return (MdlForumUser) list.get(0); + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dto/MdlForumDTO.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dto/MdlForumDTO.java (.../MdlForumDTO.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dto/MdlForumDTO.java (.../MdlForumDTO.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -35,128 +35,129 @@ public class MdlForumDTO { - private Long uid; - private Date createDate; - private Date updateDate; - private boolean defineLater; - private Long toolContentId; - private Long extToolContentId; - private String extUsername; - private String extCourseId; - private String extSection; + private Long uid; + private Date createDate; + private Date updateDate; + private boolean defineLater; + private Long toolContentId; + private Long extToolContentId; + private String extUsername; + private String extCourseId; + private String extSection; - public Set sessionDTOs = new TreeSet(); - - public Long currentTab; - - /* Constructors */ - public MdlForumDTO(){} - - public MdlForumDTO(MdlForum mdlForum) { - uid = mdlForum.getUid(); - createDate = mdlForum.getCreateDate(); - updateDate = mdlForum.getUpdateDate(); - defineLater = mdlForum.isDefineLater(); - toolContentId = mdlForum.getToolContentId(); - extToolContentId = mdlForum.getExtToolContentId(); - extUsername = mdlForum.getExtUsername(); - extCourseId = mdlForum.getExtCourseId(); - extSection = mdlForum.getExtSection(); - for (Iterator iter = mdlForum.getMdlForumSessions().iterator(); iter.hasNext();) { - MdlForumSession session = (MdlForumSession) iter.next(); - MdlForumSessionDTO sessionDTO = new MdlForumSessionDTO(session); - - sessionDTOs.add(sessionDTO); - } - } + public Set sessionDTOs = new TreeSet(); - /* Getters / Setters */ - public Set getSessionDTOs() { - return sessionDTOs; - } - - public void setSessionDTOs(Set sessionDTOs) { - this.sessionDTOs = sessionDTOs; - } + public Long currentTab; - public Long getToolContentId() { - return toolContentId; - } + /* Constructors */ + public MdlForumDTO() { + } - public void setToolContentId(Long toolContentID) { - this.toolContentId = toolContentID; - } + public MdlForumDTO(MdlForum mdlForum) { + uid = mdlForum.getUid(); + createDate = mdlForum.getCreateDate(); + updateDate = mdlForum.getUpdateDate(); + defineLater = mdlForum.isDefineLater(); + toolContentId = mdlForum.getToolContentId(); + extToolContentId = mdlForum.getExtToolContentId(); + extUsername = mdlForum.getExtUsername(); + extCourseId = mdlForum.getExtCourseId(); + extSection = mdlForum.getExtSection(); + for (Iterator iter = mdlForum.getMdlForumSessions().iterator(); iter.hasNext();) { + MdlForumSession session = (MdlForumSession) iter.next(); + MdlForumSessionDTO sessionDTO = new MdlForumSessionDTO(session); - public Long getCurrentTab() { - return currentTab; + sessionDTOs.add(sessionDTO); } + } - public void setCurrentTab(Long currentTab) { - this.currentTab = currentTab; - } + /* Getters / Setters */ + public Set getSessionDTOs() { + return sessionDTOs; + } - public Long getUid() { - return uid; - } + public void setSessionDTOs(Set sessionDTOs) { + this.sessionDTOs = sessionDTOs; + } - public void setUid(Long uid) { - this.uid = uid; - } + public Long getToolContentId() { + return toolContentId; + } - public Date getCreateDate() { - return createDate; - } + public void setToolContentId(Long toolContentID) { + this.toolContentId = toolContentID; + } - public void setCreateDate(Date createDate) { - this.createDate = createDate; - } + public Long getCurrentTab() { + return currentTab; + } - public Date getUpdateDate() { - return updateDate; - } + public void setCurrentTab(Long currentTab) { + this.currentTab = currentTab; + } - public void setUpdateDate(Date updateDate) { - this.updateDate = updateDate; - } + public Long getUid() { + return uid; + } - public boolean isDefineLater() { - return defineLater; - } + public void setUid(Long uid) { + this.uid = uid; + } - public void setDefineLater(boolean defineLater) { - this.defineLater = defineLater; - } + public Date getCreateDate() { + return createDate; + } - public Long getExtToolContentId() { - return extToolContentId; - } + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } - public void setExtToolContentId(Long extToolContentId) { - this.extToolContentId = extToolContentId; - } + public Date getUpdateDate() { + return updateDate; + } - public String getExtUsername() { - return extUsername; - } + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } - public void setExtUsername(String extUsername) { - this.extUsername = extUsername; - } + public boolean isDefineLater() { + return defineLater; + } - public String getExtCourseId() { - return extCourseId; - } + public void setDefineLater(boolean defineLater) { + this.defineLater = defineLater; + } - public void setExtCourseId(String extCourseId) { - this.extCourseId = extCourseId; - } + public Long getExtToolContentId() { + return extToolContentId; + } - public String getExtSection() { - return extSection; - } + public void setExtToolContentId(Long extToolContentId) { + this.extToolContentId = extToolContentId; + } - public void setExtSection(String extSection) { - this.extSection = extSection; - } - + public String getExtUsername() { + return extUsername; + } + + public void setExtUsername(String extUsername) { + this.extUsername = extUsername; + } + + public String getExtCourseId() { + return extCourseId; + } + + public void setExtCourseId(String extCourseId) { + this.extCourseId = extCourseId; + } + + public String getExtSection() { + return extSection; + } + + public void setExtSection(String extSection) { + this.extSection = extSection; + } + } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dto/MdlForumSessionDTO.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dto/MdlForumSessionDTO.java (.../MdlForumSessionDTO.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dto/MdlForumSessionDTO.java (.../MdlForumSessionDTO.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -33,103 +33,103 @@ import org.lamsfoundation.lams.tool.mdfrum.model.MdlForumUser; public class MdlForumSessionDTO implements Comparable { - - Long sessionID; - - Long extSessionID; - String sessionName; - - Set userDTOs = new TreeSet(); - - int numberOfLearners; - - int numberOfFinishedLearners; - - String runTimeUrl; - + Long sessionID; - public MdlForumSessionDTO(MdlForumSession session) { - this.sessionID = session.getSessionId(); - this.sessionName = session.getSessionName(); - this.extSessionID = session.getExtSessionId(); - numberOfFinishedLearners = 0; - - /* - for (Iterator iterator = session.getMdlForumUsers().iterator(); iterator.hasNext();) { - MdlForumUser user = (MdlForumUser) iterator.next(); - MdlForumUserDTO userDTO = new MdlForumUserDTO(user); - userDTOs.add(userDTO); - } - numberOfLearners = userDTOs.size(); - */ - } - - public MdlForumSessionDTO() {} - - public Long getSessionID() { - return sessionID; - } + Long extSessionID; - public void setSessionID(Long sessionID) { - this.sessionID = sessionID; - } + String sessionName; - public String getSessionName() { - return sessionName; - } + Set userDTOs = new TreeSet(); - public void setSessionName(String sessionName) { - this.sessionName = sessionName; - } + int numberOfLearners; - public int compareTo(Object o) { - int returnValue; - MdlForumSessionDTO toSession = (MdlForumSessionDTO)o; - returnValue = this.sessionName.compareTo(toSession.sessionName); - if (returnValue == 0) { - returnValue = this.sessionID.compareTo(toSession.sessionID); - } - return returnValue; - } + int numberOfFinishedLearners; - public Set getUserDTOs() { - return userDTOs; - } + String runTimeUrl; - public void setUserDTOs(Set mdlForumUsers) { - this.userDTOs = mdlForumUsers; - } + public MdlForumSessionDTO(MdlForumSession session) { + this.sessionID = session.getSessionId(); + this.sessionName = session.getSessionName(); + this.extSessionID = session.getExtSessionId(); + numberOfFinishedLearners = 0; - public int getNumberOfLearners() { - return numberOfLearners; + /* + for (Iterator iterator = session.getMdlForumUsers().iterator(); iterator.hasNext();) { + MdlForumUser user = (MdlForumUser) iterator.next(); + MdlForumUserDTO userDTO = new MdlForumUserDTO(user); + userDTOs.add(userDTO); } + numberOfLearners = userDTOs.size(); + */ + } - public void setNumberOfLearners(int numberOfLearners) { - this.numberOfLearners = numberOfLearners; - } + public MdlForumSessionDTO() { + } - public int getNumberOfFinishedLearners() { - return numberOfFinishedLearners; - } + public Long getSessionID() { + return sessionID; + } - public void setNumberOfFinishedLearners(int numberOfFinishedLearners) { - this.numberOfFinishedLearners = numberOfFinishedLearners; - } + public void setSessionID(Long sessionID) { + this.sessionID = sessionID; + } - public Long getExtSessionID() { - return extSessionID; - } + public String getSessionName() { + return sessionName; + } - public void setExtSessionID(Long extSessionID) { - this.extSessionID = extSessionID; - } + public void setSessionName(String sessionName) { + this.sessionName = sessionName; + } - public String getRunTimeUrl() { - return runTimeUrl; + public int compareTo(Object o) { + int returnValue; + MdlForumSessionDTO toSession = (MdlForumSessionDTO) o; + returnValue = this.sessionName.compareTo(toSession.sessionName); + if (returnValue == 0) { + returnValue = this.sessionID.compareTo(toSession.sessionID); } + return returnValue; + } - public void setRunTimeUrl(String runTimeUrl) { - this.runTimeUrl = runTimeUrl; - } + public Set getUserDTOs() { + return userDTOs; + } + + public void setUserDTOs(Set mdlForumUsers) { + this.userDTOs = mdlForumUsers; + } + + public int getNumberOfLearners() { + return numberOfLearners; + } + + public void setNumberOfLearners(int numberOfLearners) { + this.numberOfLearners = numberOfLearners; + } + + public int getNumberOfFinishedLearners() { + return numberOfFinishedLearners; + } + + public void setNumberOfFinishedLearners(int numberOfFinishedLearners) { + this.numberOfFinishedLearners = numberOfFinishedLearners; + } + + public Long getExtSessionID() { + return extSessionID; + } + + public void setExtSessionID(Long extSessionID) { + this.extSessionID = extSessionID; + } + + public String getRunTimeUrl() { + return runTimeUrl; + } + + public void setRunTimeUrl(String runTimeUrl) { + this.runTimeUrl = runTimeUrl; + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dto/MdlForumUserDTO.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dto/MdlForumUserDTO.java (.../MdlForumUserDTO.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/dto/MdlForumUserDTO.java (.../MdlForumUserDTO.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -27,75 +27,73 @@ import org.lamsfoundation.lams.tool.mdfrum.model.MdlForumUser; -public class MdlForumUserDTO{ - - public Long uid; - - public String loginName; - - public String firstName; - - public String lastName; - - public boolean finishedActivity; +public class MdlForumUserDTO { - - public MdlForumUserDTO(MdlForumUser user) { - this.uid = user.getUid(); - this.loginName = user.getLoginName(); - this.firstName = user.getFirstName(); - this.lastName = user.getLastName(); - this.finishedActivity = user.isFinishedActivity(); - } - + public Long uid; - public int compareTo(Object o) { - int returnValue; - MdlForumUserDTO toUser = (MdlForumUserDTO)o; - returnValue = this.lastName.compareTo(toUser.lastName); - if (returnValue == 0) { - returnValue = this.uid.compareTo(toUser.uid); - } - return returnValue; - } + public String loginName; - public String getFirstName() { - return firstName; - } + public String firstName; - public void setFirstName(String firstName) { - this.firstName = firstName; - } + public String lastName; - public String getLastName() { - return lastName; - } + public boolean finishedActivity; - public void setLastName(String lastName) { - this.lastName = lastName; - } + public MdlForumUserDTO(MdlForumUser user) { + this.uid = user.getUid(); + this.loginName = user.getLoginName(); + this.firstName = user.getFirstName(); + this.lastName = user.getLastName(); + this.finishedActivity = user.isFinishedActivity(); + } - public String getLoginName() { - return loginName; + public int compareTo(Object o) { + int returnValue; + MdlForumUserDTO toUser = (MdlForumUserDTO) o; + returnValue = this.lastName.compareTo(toUser.lastName); + if (returnValue == 0) { + returnValue = this.uid.compareTo(toUser.uid); } + return returnValue; + } - public void setLoginName(String loginName) { - this.loginName = loginName; - } + public String getFirstName() { + return firstName; + } - public Long getUid() { - return uid; - } + public void setFirstName(String firstName) { + this.firstName = firstName; + } - public void setUid(Long uid) { - this.uid = uid; - } + public String getLastName() { + return lastName; + } - public boolean isFinishedActivity() { - return finishedActivity; - } + public void setLastName(String lastName) { + this.lastName = lastName; + } - public void setFinishedActivity(boolean finishedActivity) { - this.finishedActivity = finishedActivity; - } + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public boolean isFinishedActivity() { + return finishedActivity; + } + + public void setFinishedActivity(boolean finishedActivity) { + this.finishedActivity = finishedActivity; + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/model/MdlForum.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/model/MdlForum.java (.../MdlForum.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/model/MdlForum.java (.../MdlForum.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -39,292 +39,283 @@ public class MdlForum implements java.io.Serializable, Cloneable { - /** - * - */ - private static final long serialVersionUID = 4093029387948273849L; + /** + * + */ + private static final long serialVersionUID = 4093029387948273849L; - static Logger log = Logger.getLogger(MdlForumService.class.getName()); + static Logger log = Logger.getLogger(MdlForumService.class.getName()); - private static final String CUSTOM_CSV_MAP_PARAM_USER = "user"; - private static final String CUSTOM_CSV_MAP_PARAM_COURSE = "course"; - private static final String CUSTOM_CSV_MAP_PARAM_SECTION = "section"; - - // Fields - /** - * - */ - private Long uid; - private Date createDate; - private Date updateDate; - private boolean defineLater; - private Long toolContentId; - private Long extToolContentId; - private Set mdlForumSessions; - private boolean runOffline; - private boolean contentInUse; - private String extUsername; - private String extCourseId; - private String extSection; - - //*********** NON Persistent fields - private IToolContentHandler toolContentHandler; + private static final String CUSTOM_CSV_MAP_PARAM_USER = "user"; + private static final String CUSTOM_CSV_MAP_PARAM_COURSE = "course"; + private static final String CUSTOM_CSV_MAP_PARAM_SECTION = "section"; - // Constructors - - - public MdlForum(Long uid, Date createDate, Date updateDate, - boolean defineLater, boolean runOffline, boolean contentInUse, - Long toolContentId, Long extToolContentId, String extUsername, - String extCourseId, String extSection, - Set mdlForumSessions, - IToolContentHandler toolContentHandler) { - super(); - this.uid = uid; - this.createDate = createDate; - this.updateDate = updateDate; - this.defineLater = defineLater; - this.toolContentId = toolContentId; - this.extToolContentId = extToolContentId; - this.mdlForumSessions = mdlForumSessions; - this.toolContentHandler = toolContentHandler; - this.runOffline = runOffline; - this.contentInUse = contentInUse; - this.extCourseId = extCourseId; - this.extUsername = extUsername; - this.extSection = extSection; - } + // Fields + /** + * + */ + private Long uid; + private Date createDate; + private Date updateDate; + private boolean defineLater; + private Long toolContentId; + private Long extToolContentId; + private Set mdlForumSessions; + private boolean runOffline; + private boolean contentInUse; + private String extUsername; + private String extCourseId; + private String extSection; - /** default constructor */ - public MdlForum() { - } + //*********** NON Persistent fields + private IToolContentHandler toolContentHandler; - // Property accessors - /** - * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" - * - */ - public Long getUid() { - return this.uid; - } + // Constructors - public void setUid(Long uid) { - this.uid = uid; - } + public MdlForum(Long uid, Date createDate, Date updateDate, boolean defineLater, boolean runOffline, + boolean contentInUse, Long toolContentId, Long extToolContentId, String extUsername, String extCourseId, + String extSection, Set mdlForumSessions, IToolContentHandler toolContentHandler) { + super(); + this.uid = uid; + this.createDate = createDate; + this.updateDate = updateDate; + this.defineLater = defineLater; + this.toolContentId = toolContentId; + this.extToolContentId = extToolContentId; + this.mdlForumSessions = mdlForumSessions; + this.toolContentHandler = toolContentHandler; + this.runOffline = runOffline; + this.contentInUse = contentInUse; + this.extCourseId = extCourseId; + this.extUsername = extUsername; + this.extSection = extSection; + } - /** - * @hibernate.property column="create_date" - * - */ - public Date getCreateDate() { - return this.createDate; - } + /** default constructor */ + public MdlForum() { + } - public void setCreateDate(Date createDate) { - this.createDate = createDate; - } + // Property accessors + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + * + */ + public Long getUid() { + return this.uid; + } - /** - * @hibernate.property column="update_date" - * - */ - public Date getUpdateDate() { - return this.updateDate; - } + public void setUid(Long uid) { + this.uid = uid; + } - public void setUpdateDate(Date updateDate) { - this.updateDate = updateDate; - } + /** + * @hibernate.property column="create_date" + * + */ + public Date getCreateDate() { + return this.createDate; + } - /** - * @hibernate.property column="define_later" length="1" - * - */ - public boolean isDefineLater() { - return this.defineLater; - } + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } - public void setDefineLater(boolean defineLater) { - this.defineLater = defineLater; - } - - - - /** - * @hibernate.property column="content_in_use" length="1" - * - */ - public boolean isContentInUse() { - return contentInUse; - } + /** + * @hibernate.property column="update_date" + * + */ + public Date getUpdateDate() { + return this.updateDate; + } - public void setContentInUse(boolean contentInUse) { - this.contentInUse = contentInUse; - } + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } - /** - * @hibernate.property column="run_offline" length="1" - * - */ - public boolean isRunOffline() { - return runOffline; - } + /** + * @hibernate.property column="define_later" length="1" + * + */ + public boolean isDefineLater() { + return this.defineLater; + } - public void setRunOffline(boolean runOffline) { - this.runOffline = runOffline; - } + public void setDefineLater(boolean defineLater) { + this.defineLater = defineLater; + } - /** - * @hibernate.property column="tool_content_id" length="20" - * - */ - public Long getToolContentId() { - return this.toolContentId; - } + /** + * @hibernate.property column="content_in_use" length="1" + * + */ + public boolean isContentInUse() { + return contentInUse; + } - public void setToolContentId(Long toolContentId) { - this.toolContentId = toolContentId; - } - - /** - * @hibernate.property column="ext_tool_content_id" length="20" - * - */ - public Long getExtToolContentId() { - return extToolContentId; - } + public void setContentInUse(boolean contentInUse) { + this.contentInUse = contentInUse; + } - public void setExtToolContentId(Long extToolContentId) { - this.extToolContentId = extToolContentId; - } - - /** - * @hibernate.property column="ext_user_name" length="255" - * - */ - public String getExtUsername() { - return extUsername; - } + /** + * @hibernate.property column="run_offline" length="1" + * + */ + public boolean isRunOffline() { + return runOffline; + } - public void setExtUsername(String extUsername) { - this.extUsername = extUsername; - } + public void setRunOffline(boolean runOffline) { + this.runOffline = runOffline; + } - /** - * @hibernate.property column="ext_course_id" length="255" - * - */ - public String getExtCourseId() { - return extCourseId; - } + /** + * @hibernate.property column="tool_content_id" length="20" + * + */ + public Long getToolContentId() { + return this.toolContentId; + } - public void setExtCourseId(String extCourseId) { - this.extCourseId = extCourseId; - } - - /** - * @hibernate.property column="ext_section" length="255" - * - */ - public String getExtSection() { - return extSection; - } + public void setToolContentId(Long toolContentId) { + this.toolContentId = toolContentId; + } - public void setExtSection(String extSection) { - this.extSection = extSection; - } + /** + * @hibernate.property column="ext_tool_content_id" length="20" + * + */ + public Long getExtToolContentId() { + return extToolContentId; + } - public static long getSerialVersionUID() { - return serialVersionUID; - } + public void setExtToolContentId(Long extToolContentId) { + this.extToolContentId = extToolContentId; + } - /** - * @hibernate.set lazy="true" inverse="true" cascade="none" - * @hibernate.collection-key column="mdlforum_uid" - * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.mdfrum.model.MdlForumSession" - * - */ - public Set getMdlForumSessions() { - return mdlForumSessions; - } + /** + * @hibernate.property column="ext_user_name" length="255" + * + */ + public String getExtUsername() { + return extUsername; + } - public void setMdlForumSessions(Set mdlForumSessions) { - this.mdlForumSessions = mdlForumSessions; - } - - public IToolContentHandler getToolContentHandler() { - return toolContentHandler; - } + public void setExtUsername(String extUsername) { + this.extUsername = extUsername; + } - public void setToolContentHandler(IToolContentHandler toolContentHandler) { - this.toolContentHandler = toolContentHandler; - } + /** + * @hibernate.property column="ext_course_id" length="255" + * + */ + public String getExtCourseId() { + return extCourseId; + } - /** - * toString - * - * @return String - */ - public String toString() { - StringBuffer buffer = new StringBuffer(); + public void setExtCourseId(String extCourseId) { + this.extCourseId = extCourseId; + } - buffer.append(getClass().getName()).append("@").append(Integer.toHexString(hashCode())).append(" ["); - buffer.append("toolContentId").append("='").append(getToolContentId()).append("' "); - buffer.append("exttoolContentId").append("='").append(getExtToolContentId()).append("' "); - buffer.append("]"); + /** + * @hibernate.property column="ext_section" length="255" + * + */ + public String getExtSection() { + return extSection; + } - return buffer.toString(); - } + public void setExtSection(String extSection) { + this.extSection = extSection; + } - public boolean equals(Object other) { - if ((this == other)) - return true; - if ((other == null)) - return false; - if (!(other instanceof MdlForum)) - return false; - MdlForum castOther = (MdlForum) other; + public static long getSerialVersionUID() { + return serialVersionUID; + } - return ((this.getUid() == castOther.getUid()) || (this.getUid() != null - && castOther.getUid() != null && this.getUid().equals( - castOther.getUid()))); - } + /** + * @hibernate.set lazy="true" inverse="true" cascade="none" + * @hibernate.collection-key column="mdlforum_uid" + * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.mdfrum.model.MdlForumSession" + * + */ + public Set getMdlForumSessions() { + return mdlForumSessions; + } - public int hashCode() { - int result = 17; - result = 37 * result - + (getUid() == null ? 0 : this.getUid().hashCode()); - return result; - } + public void setMdlForumSessions(Set mdlForumSessions) { + this.mdlForumSessions = mdlForumSessions; + } - public static MdlForum newInstance(MdlForum fromContent, Long toContentId, - IToolContentHandler mdlForumToolContentHandler) { - MdlForum toContent = new MdlForum(); - fromContent.toolContentHandler = mdlForumToolContentHandler; - toContent = (MdlForum) fromContent.clone(); - toContent.setToolContentId(toContentId); - toContent.setCreateDate(new Date()); - return toContent; - } + public IToolContentHandler getToolContentHandler() { + return toolContentHandler; + } - protected Object clone() { + public void setToolContentHandler(IToolContentHandler toolContentHandler) { + this.toolContentHandler = toolContentHandler; + } - MdlForum mdlForum = null; - try { - mdlForum = (MdlForum) super.clone(); - mdlForum.setUid(null); - mdlForum.mdlForumSessions = new HashSet(); + /** + * toString + * + * @return String + */ + public String toString() { + StringBuffer buffer = new StringBuffer(); - } catch (CloneNotSupportedException cnse) { - log.error("Error cloning " + MdlForum.class); - } - return mdlForum; + buffer.append(getClass().getName()).append("@").append(Integer.toHexString(hashCode())).append(" ["); + buffer.append("toolContentId").append("='").append(getToolContentId()).append("' "); + buffer.append("exttoolContentId").append("='").append(getExtToolContentId()).append("' "); + buffer.append("]"); + + return buffer.toString(); + } + + public boolean equals(Object other) { + if ((this == other)) + return true; + if ((other == null)) + return false; + if (!(other instanceof MdlForum)) + return false; + MdlForum castOther = (MdlForum) other; + + return ((this.getUid() == castOther.getUid()) || (this.getUid() != null && castOther.getUid() != null && this + .getUid().equals(castOther.getUid()))); + } + + public int hashCode() { + int result = 17; + result = 37 * result + (getUid() == null ? 0 : this.getUid().hashCode()); + return result; + } + + public static MdlForum newInstance(MdlForum fromContent, Long toContentId, + IToolContentHandler mdlForumToolContentHandler) { + MdlForum toContent = new MdlForum(); + fromContent.toolContentHandler = mdlForumToolContentHandler; + toContent = (MdlForum) fromContent.clone(); + toContent.setToolContentId(toContentId); + toContent.setCreateDate(new Date()); + return toContent; + } + + protected Object clone() { + + MdlForum mdlForum = null; + try { + mdlForum = (MdlForum) super.clone(); + mdlForum.setUid(null); + mdlForum.mdlForumSessions = new HashSet(); + + } catch (CloneNotSupportedException cnse) { + log.error("Error cloning " + MdlForum.class); } - - public void setByCustomCSVHashMap(HashMap params) - { - this.extUsername = params.get(CUSTOM_CSV_MAP_PARAM_USER); - this.extCourseId = params.get(CUSTOM_CSV_MAP_PARAM_COURSE); - this.extSection = params.get(CUSTOM_CSV_MAP_PARAM_SECTION); - } + return mdlForum; + } + + public void setByCustomCSVHashMap(HashMap params) { + this.extUsername = params.get(CUSTOM_CSV_MAP_PARAM_USER); + this.extCourseId = params.get(CUSTOM_CSV_MAP_PARAM_COURSE); + this.extSection = params.get(CUSTOM_CSV_MAP_PARAM_SECTION); + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/model/MdlForumConfigItem.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/model/MdlForumConfigItem.java (.../MdlForumConfigItem.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/model/MdlForumConfigItem.java (.../MdlForumConfigItem.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -1,65 +1,81 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ package org.lamsfoundation.lams.tool.mdfrum.model; import org.apache.log4j.Logger; /** * @hibernate.class table="tl_mdfrum10_configuration" */ -public class MdlForumConfigItem implements java.io.Serializable -{ +public class MdlForumConfigItem implements java.io.Serializable { - private static final long serialVersionUID = 2910983748293847627L; + private static final long serialVersionUID = 2910983748293847627L; - static Logger log = Logger.getLogger(MdlForumConfigItem.class.getName()); - - public static final String KEY_EXTERNAL_TOOL_SERVLET = "toolAdapterServlet"; - public static final String KEY_EXTERNAL_SERVER_URL = "extServerUrl"; - - Long id; - String configKey; - String configValue; - - // empty contsructor - public MdlForumConfigItem() {} + static Logger log = Logger.getLogger(MdlForumConfigItem.class.getName()); - - /** - * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" - * - */ - public Long getId() { - return id; - } + public static final String KEY_EXTERNAL_TOOL_SERVLET = "toolAdapterServlet"; + public static final String KEY_EXTERNAL_SERVER_URL = "extServerUrl"; + Long id; + String configKey; + String configValue; + // empty contsructor + public MdlForumConfigItem() { + } - public void setId(Long id) { - this.id = id; - } + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + * + */ + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } - - /** - * @hibernate.property column="config_key" length="30" - * not-null="false" unique="true" + /** + * @hibernate.property column="config_key" length="30" not-null="false" + * unique="true" */ - public String getConfigKey() { - return configKey; - } + public String getConfigKey() { + return configKey; + } - public void setConfigKey(String configKey) { - this.configKey = configKey; - } + public void setConfigKey(String configKey) { + this.configKey = configKey; + } - /** - * @hibernate.property column="config_value" length="255" - * not-null="false" + /** + * @hibernate.property column="config_value" length="255" not-null="false" */ - public String getConfigValue() { - return configValue; - } + public String getConfigValue() { + return configValue; + } - public void setConfigValue(String configValue) { - this.configValue = configValue; - } + public void setConfigValue(String configValue) { + this.configValue = configValue; + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/model/MdlForumSession.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/model/MdlForumSession.java (.../MdlForumSession.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/model/MdlForumSession.java (.../MdlForumSession.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -39,226 +39,217 @@ public class MdlForumSession implements java.io.Serializable { - private static Logger log = Logger.getLogger(MdlForumSession.class); - /** - * - */ - private static final long serialVersionUID = 2736481298379482738L; + private static Logger log = Logger.getLogger(MdlForumSession.class); + /** + * + */ + private static final long serialVersionUID = 2736481298379482738L; - // Fields - private Long uid; + // Fields + private Long uid; - private Date sessionEndDate; + private Date sessionEndDate; - private Date sessionStartDate; + private Date sessionStartDate; - private Integer status; + private Integer status; - private Long sessionId; - - private Long extSessionId; + private Long sessionId; - private String sessionName; + private Long extSessionId; - private MdlForum mdlForum; + private String sessionName; - private Set mdlForumUsers; + private MdlForum mdlForum; - // Constructors + private Set mdlForumUsers; - /** default constructor */ - public MdlForumSession() { - } + // Constructors - /** full constructor */ - public MdlForumSession(Date sessionEndDate, Date sessionStartDate, - Integer status, Long sessionId, Long extSessionId, String sessionName, MdlForum mdlForum, - Set mdlForumUsers) { - this.sessionEndDate = sessionEndDate; - this.sessionStartDate = sessionStartDate; - this.status = status; - this.sessionId = sessionId; - this.sessionName = sessionName; - this.mdlForum = mdlForum; - this.mdlForumUsers = mdlForumUsers; - } + /** default constructor */ + public MdlForumSession() { + } - // Property accessors - /** - * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" - * - */ + /** full constructor */ + public MdlForumSession(Date sessionEndDate, Date sessionStartDate, Integer status, Long sessionId, + Long extSessionId, String sessionName, MdlForum mdlForum, Set mdlForumUsers) { + this.sessionEndDate = sessionEndDate; + this.sessionStartDate = sessionStartDate; + this.status = status; + this.sessionId = sessionId; + this.sessionName = sessionName; + this.mdlForum = mdlForum; + this.mdlForumUsers = mdlForumUsers; + } - public Long getUid() { - return this.uid; - } + // Property accessors + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + * + */ - public void setUid(Long uid) { - this.uid = uid; - } + public Long getUid() { + return this.uid; + } - /** - * @hibernate.property column="session_end_date" - * - */ + public void setUid(Long uid) { + this.uid = uid; + } - public Date getSessionEndDate() { - return this.sessionEndDate; - } + /** + * @hibernate.property column="session_end_date" + * + */ - public void setSessionEndDate(Date sessionEndDate) { - this.sessionEndDate = sessionEndDate; - } + public Date getSessionEndDate() { + return this.sessionEndDate; + } - /** - * @hibernate.property column="session_start_date" - * - */ + public void setSessionEndDate(Date sessionEndDate) { + this.sessionEndDate = sessionEndDate; + } - public Date getSessionStartDate() { - return this.sessionStartDate; - } + /** + * @hibernate.property column="session_start_date" + * + */ - public void setSessionStartDate(Date sessionStartDate) { - this.sessionStartDate = sessionStartDate; - } + public Date getSessionStartDate() { + return this.sessionStartDate; + } - /** - * @hibernate.property column="status" length="11" - * - */ + public void setSessionStartDate(Date sessionStartDate) { + this.sessionStartDate = sessionStartDate; + } - public Integer getStatus() { - return this.status; - } + /** + * @hibernate.property column="status" length="11" + * + */ - public void setStatus(Integer status) { - this.status = status; - } + public Integer getStatus() { + return this.status; + } - /** - * @hibernate.property column="session_id" length="20" - * - */ + public void setStatus(Integer status) { + this.status = status; + } - public Long getSessionId() { - return this.sessionId; - } + /** + * @hibernate.property column="session_id" length="20" + * + */ - public void setSessionId(Long sessionId) { - this.sessionId = sessionId; - } - - - /** - * @hibernate.property column="ext_session_id" length="20" - * @return - */ - public Long getExtSessionId() { - return extSessionId; - } + public Long getSessionId() { + return this.sessionId; + } - public void setExtSessionId(Long extSessionId) { - this.extSessionId = extSessionId; - } + public void setSessionId(Long sessionId) { + this.sessionId = sessionId; + } - /** - * @hibernate.property column="session_name" length="250" - * - */ + /** + * @hibernate.property column="ext_session_id" length="20" + * @return + */ + public Long getExtSessionId() { + return extSessionId; + } - public String getSessionName() { - return this.sessionName; - } + public void setExtSessionId(Long extSessionId) { + this.extSessionId = extSessionId; + } - public void setSessionName(String sessionName) { - this.sessionName = sessionName; - } + /** + * @hibernate.property column="session_name" length="250" + * + */ - /** - * @hibernate.many-to-one not-null="true" - * @hibernate.column name="mdlForum_uid" - * - */ + public String getSessionName() { + return this.sessionName; + } - public MdlForum getMdlForum() { - return this.mdlForum; - } + public void setSessionName(String sessionName) { + this.sessionName = sessionName; + } - public void setMdlForum(MdlForum mdlForum) { - this.mdlForum = mdlForum; - } + /** + * @hibernate.many-to-one not-null="true" + * @hibernate.column name="mdlForum_uid" + * + */ - /** - * @hibernate.set lazy="true" inverse="true" cascade="none" - * @hibernate.collection-key column="mdlForum_session_uid" - * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.mdfrum.model.MdlForumUser" - * - */ + public MdlForum getMdlForum() { + return this.mdlForum; + } - public Set getMdlForumUsers() { - return this.mdlForumUsers; - } + public void setMdlForum(MdlForum mdlForum) { + this.mdlForum = mdlForum; + } - public void setMdlForumUsers(Set mdlForumUsers) { - this.mdlForumUsers = mdlForumUsers; - } + /** + * @hibernate.set lazy="true" inverse="true" cascade="none" + * @hibernate.collection-key column="mdlForum_session_uid" + * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.mdfrum.model.MdlForumUser" + * + */ - /** - * toString - * - * @return String - */ - public String toString() { - StringBuffer buffer = new StringBuffer(); + public Set getMdlForumUsers() { + return this.mdlForumUsers; + } - buffer.append(getClass().getName()).append("@").append( - Integer.toHexString(hashCode())).append(" ["); - buffer.append("sessionEndDate").append("='") - .append(getSessionEndDate()).append("' "); - buffer.append("sessionStartDate").append("='").append( - getSessionStartDate()).append("' "); - buffer.append("status").append("='").append(getStatus()).append("' "); - buffer.append("sessionID").append("='").append(getSessionId()).append( - "' "); - buffer.append("sessionName").append("='").append(getSessionName()) - .append("' "); - buffer.append("]"); + public void setMdlForumUsers(Set mdlForumUsers) { + this.mdlForumUsers = mdlForumUsers; + } - return buffer.toString(); - } + /** + * toString + * + * @return String + */ + public String toString() { + StringBuffer buffer = new StringBuffer(); - public boolean equals(Object other) { - if ((this == other)) - return true; - if ((other == null)) - return false; - if (!(other instanceof MdlForumSession)) - return false; - MdlForumSession castOther = (MdlForumSession) other; + buffer.append(getClass().getName()).append("@").append(Integer.toHexString(hashCode())).append(" ["); + buffer.append("sessionEndDate").append("='").append(getSessionEndDate()).append("' "); + buffer.append("sessionStartDate").append("='").append(getSessionStartDate()).append("' "); + buffer.append("status").append("='").append(getStatus()).append("' "); + buffer.append("sessionID").append("='").append(getSessionId()).append("' "); + buffer.append("sessionName").append("='").append(getSessionName()).append("' "); + buffer.append("]"); - return ((this.getUid() == castOther.getUid()) || (this.getUid() != null - && castOther.getUid() != null && this.getUid().equals( - castOther.getUid()))); - } + return buffer.toString(); + } - public int hashCode() { - int result = 17; - result = 37 * result - + (getUid() == null ? 0 : this.getUid().hashCode()); - return result; - } + public boolean equals(Object other) { + if ((this == other)) + return true; + if ((other == null)) + return false; + if (!(other instanceof MdlForumSession)) + return false; + MdlForumSession castOther = (MdlForumSession) other; - public Object clone(){ - - MdlForumSession session = null; - try{ - session = (MdlForumSession) super.clone(); - session.mdlForumUsers = new HashSet(); - } catch (CloneNotSupportedException e) { - log.error("When clone " + MdlForumSession.class + " failed"); - } - return session; - } + return ((this.getUid() == castOther.getUid()) || (this.getUid() != null && castOther.getUid() != null && this + .getUid().equals(castOther.getUid()))); + } + public int hashCode() { + int result = 17; + result = 37 * result + (getUid() == null ? 0 : this.getUid().hashCode()); + return result; + } + + public Object clone() { + + MdlForumSession session = null; + try { + session = (MdlForumSession) super.clone(); + session.mdlForumUsers = new HashSet(); + } catch (CloneNotSupportedException e) { + log.error("When clone " + MdlForumSession.class + " failed"); + } + return session; + } + } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/model/MdlForumUser.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/model/MdlForumUser.java (.../MdlForumUser.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/model/MdlForumUser.java (.../MdlForumUser.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -37,180 +37,177 @@ public class MdlForumUser implements java.io.Serializable { - /** - * - */ - private static final long serialVersionUID = 928378476276354672L; + /** + * + */ + private static final long serialVersionUID = 928378476276354672L; - // Fields - private Long uid; + // Fields + private Long uid; - private Long userId; + private Long userId; - private String lastName; + private String lastName; - private String firstName; + private String firstName; - private String loginName; + private String loginName; - private MdlForumSession mdlForumSession; - - private boolean finishedActivity; - - private Long entryUID; + private MdlForumSession mdlForumSession; - // Constructors + private boolean finishedActivity; - /** default constructor */ - public MdlForumUser() { - } + private Long entryUID; - public MdlForumUser(UserDTO user, MdlForumSession mdlForumSession) { - this.userId = new Long(user.getUserID().intValue()); - this.firstName = user.getFirstName(); - this.lastName = user.getLastName(); - this.loginName = user.getLogin(); - this.mdlForumSession = mdlForumSession; - this.finishedActivity = false; - } + // Constructors - /** full constructor */ - public MdlForumUser(Long userId, String lastName, String firstName, - MdlForumSession mdlForumSession) { - this.userId = userId; - this.lastName = lastName; - this.firstName = firstName; - this.mdlForumSession = mdlForumSession; - } + /** default constructor */ + public MdlForumUser() { + } - // Property accessors - /** - * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" - */ - public Long getUid() { - return this.uid; - } + public MdlForumUser(UserDTO user, MdlForumSession mdlForumSession) { + this.userId = new Long(user.getUserID().intValue()); + this.firstName = user.getFirstName(); + this.lastName = user.getLastName(); + this.loginName = user.getLogin(); + this.mdlForumSession = mdlForumSession; + this.finishedActivity = false; + } - public void setUid(Long uid) { - this.uid = uid; - } + /** full constructor */ + public MdlForumUser(Long userId, String lastName, String firstName, MdlForumSession mdlForumSession) { + this.userId = userId; + this.lastName = lastName; + this.firstName = firstName; + this.mdlForumSession = mdlForumSession; + } - /** - * @hibernate.property column="user_id" length="20" - * - */ - public Long getUserId() { - return this.userId; - } + // Property accessors + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + */ + public Long getUid() { + return this.uid; + } - public void setUserId(Long userId) { - this.userId = userId; - } - /** - * @hibernate.property column="last_name" length="255" - * - */ - public String getLastName() { - return this.lastName; - } + public void setUid(Long uid) { + this.uid = uid; + } - public void setLastName(String lastName) { - this.lastName = lastName; - } - - /** - * @hibernate.property column="login_name" length="255" - * - */ - public String getLoginName() { - return loginName; - } + /** + * @hibernate.property column="user_id" length="20" + * + */ + public Long getUserId() { + return this.userId; + } - public void setLoginName(String loginName) { - this.loginName = loginName; - } + public void setUserId(Long userId) { + this.userId = userId; + } - /** - * @hibernate.property column="first_name" length="255" - * - */ - public String getFirstName() { - return this.firstName; - } + /** + * @hibernate.property column="last_name" length="255" + * + */ + public String getLastName() { + return this.lastName; + } - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - /** - * @hibernate.property column="finishedActivity" - */ - public boolean isFinishedActivity() { - return finishedActivity; - } + public void setLastName(String lastName) { + this.lastName = lastName; + } - public void setFinishedActivity(boolean finishedActivity) { - this.finishedActivity = finishedActivity; - } - - /** - * @hibernate.many-to-one not-null="true" - * @hibernate.column name="mdlforum_session_uid" - * - */ - public MdlForumSession getMdlForumSession() { - return this.mdlForumSession; - } + /** + * @hibernate.property column="login_name" length="255" + * + */ + public String getLoginName() { + return loginName; + } - public void setMdlForumSession(MdlForumSession mdlForumSession) { - this.mdlForumSession = mdlForumSession; - } + public void setLoginName(String loginName) { + this.loginName = loginName; + } - /** - * @hibernate.property column="entry_uid" - */ - public Long getEntryUID() { - return entryUID; - } + /** + * @hibernate.property column="first_name" length="255" + * + */ + public String getFirstName() { + return this.firstName; + } - public void setEntryUID(Long entryUID) { - this.entryUID = entryUID; - } - - /** - * toString - * - * @return String - */ - public String toString() { - StringBuffer buffer = new StringBuffer(); + public void setFirstName(String firstName) { + this.firstName = firstName; + } - buffer.append(getClass().getName()).append("@").append( - Integer.toHexString(hashCode())).append(" ["); - buffer.append("userId").append("='").append(getUserId()).append("' "); - buffer.append("]"); + /** + * @hibernate.property column="finishedActivity" + */ + public boolean isFinishedActivity() { + return finishedActivity; + } - return buffer.toString(); - } + public void setFinishedActivity(boolean finishedActivity) { + this.finishedActivity = finishedActivity; + } - public boolean equals(Object other) { - if ((this == other)) - return true; - if ((other == null)) - return false; - if (!(other instanceof MdlForumUser)) - return false; - MdlForumUser castOther = (MdlForumUser) other; + /** + * @hibernate.many-to-one not-null="true" + * @hibernate.column name="mdlforum_session_uid" + * + */ + public MdlForumSession getMdlForumSession() { + return this.mdlForumSession; + } - return ((this.getUid() == castOther.getUid()) || (this.getUid() != null - && castOther.getUid() != null && this.getUid().equals( - castOther.getUid()))); - } + public void setMdlForumSession(MdlForumSession mdlForumSession) { + this.mdlForumSession = mdlForumSession; + } - public int hashCode() { - int result = 17; - result = 37 * result - + (getUid() == null ? 0 : this.getUid().hashCode()); - return result; - } + /** + * @hibernate.property column="entry_uid" + */ + public Long getEntryUID() { + return entryUID; + } + + public void setEntryUID(Long entryUID) { + this.entryUID = entryUID; + } + + /** + * toString + * + * @return String + */ + public String toString() { + StringBuffer buffer = new StringBuffer(); + + buffer.append(getClass().getName()).append("@").append(Integer.toHexString(hashCode())).append(" ["); + buffer.append("userId").append("='").append(getUserId()).append("' "); + buffer.append("]"); + + return buffer.toString(); + } + + public boolean equals(Object other) { + if ((this == other)) + return true; + if ((other == null)) + return false; + if (!(other instanceof MdlForumUser)) + return false; + MdlForumUser castOther = (MdlForumUser) other; + + return ((this.getUid() == castOther.getUid()) || (this.getUid() != null && castOther.getUid() != null && this + .getUid().equals(castOther.getUid()))); + } + + public int hashCode() { + int result = 17; + result = 37 * result + (getUid() == null ? 0 : this.getUid().hashCode()); + return result; + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/service/IMdlForumService.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/service/IMdlForumService.java (.../IMdlForumService.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/service/IMdlForumService.java (.../IMdlForumService.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -39,184 +39,170 @@ * Defines the services available to the web layer from the MdlForum Service */ public interface IMdlForumService { - - public static final String EXT_SERVER_METHOD_CLONE = "clone"; - public static final String EXT_SERVER_METHOD_IMPORT = "import"; - public static final String EXT_SERVER_METHOD_EXPORT = "export"; - public static final String EXT_SERVER_METHOD_OUTPUT = "output"; - public static final String EXT_SERVER_METHOD_EXPORT_PORTFOLIO = "export_portfolio"; - - - /** - * Makes a copy of the default content and assigns it a newContentID - * - * @params newContentID - * @return - */ - public MdlForum copyDefaultContent(Long newContentID); - /** - * Returns an instance of the MdlForum tools default content. - * - * @return - */ - public MdlForum getDefaultContent(); + public static final String EXT_SERVER_METHOD_CLONE = "clone"; + public static final String EXT_SERVER_METHOD_IMPORT = "import"; + public static final String EXT_SERVER_METHOD_EXPORT = "export"; + public static final String EXT_SERVER_METHOD_OUTPUT = "output"; + public static final String EXT_SERVER_METHOD_EXPORT_PORTFOLIO = "export_portfolio"; - /** - * @param toolSignature - * @return - */ - public Long getDefaultContentIdBySignature(String toolSignature); + /** + * Makes a copy of the default content and assigns it a newContentID + * + * @params newContentID + * @return + */ + public MdlForum copyDefaultContent(Long newContentID); - /** - * @param toolContentID - * @return - */ - public MdlForum getMdlForumByContentId(Long toolContentID); + /** + * Returns an instance of the MdlForum tools default content. + * + * @return + */ + public MdlForum getDefaultContent(); + /** + * @param toolSignature + * @return + */ + public Long getDefaultContentIdBySignature(String toolSignature); - /** - * @param uuid - * @param versionID - */ - public void deleteFromRepository(Long uuid, Long versionID) - throws MdlForumException; + /** + * @param toolContentID + * @return + */ + public MdlForum getMdlForumByContentId(Long toolContentID); + /** + * @param uuid + * @param versionID + */ + public void deleteFromRepository(Long uuid, Long versionID) throws MdlForumException; - /** - * @param mdlForum - */ - public void saveOrUpdateMdlForum(MdlForum mdlForum); + /** + * @param mdlForum + */ + public void saveOrUpdateMdlForum(MdlForum mdlForum); - /** - * @param toolSessionId - * @return - */ - public MdlForumSession getSessionBySessionId(Long toolSessionId); + /** + * @param toolSessionId + * @return + */ + public MdlForumSession getSessionBySessionId(Long toolSessionId); - /** - * @param mdlForumSession - */ - public void saveOrUpdateMdlForumSession(MdlForumSession mdlForumSession); + /** + * @param mdlForumSession + */ + public void saveOrUpdateMdlForumSession(MdlForumSession mdlForumSession); - - /** - * Get the mdlForum config item by key - * @param key - * @return - */ - public MdlForumConfigItem getConfigItem(String key); - - /** - * Save a mdl configItem - * @param item - */ - public void saveOrUpdateMdlForumConfigItem(MdlForumConfigItem item); - - /** - * - * @param userId - * @param toolSessionId - * @return - */ - public MdlForumUser getUserByUserIdAndSessionId(Long userId, - Long toolSessionId); + /** + * Get the mdlForum config item by key + * + * @param key + * @return + */ + public MdlForumConfigItem getConfigItem(String key); - /** - * - * @param uid - * @return - */ - public MdlForumUser getUserByUID(Long uid); - - /** - * Gets the external organisation map for this tool adapter - * @return - */ - public ExtServerOrgMap getExtServerOrgMap(); - - /** - * Creates a hash for talking to the external server - * @param serverMap - * @param extUsername - * @param timestamp - * @return - */ - public String hash(ExtServerOrgMap serverMap, String extUsername, String timestamp); + /** + * Save a mdl configItem + * + * @param item + */ + public void saveOrUpdateMdlForumConfigItem(MdlForumConfigItem item); - /** - * - * @param mdlForumUser - */ - public void saveOrUpdateMdlForumUser(MdlForumUser mdlForumUser); + /** + * + * @param userId + * @param toolSessionId + * @return + */ + public MdlForumUser getUserByUserIdAndSessionId(Long userId, Long toolSessionId); - /** - * - * @param user - * @param mdlForumSession - * @return - */ - public MdlForumUser createMdlForumUser(UserDTO user,MdlForumSession mdlForumSession); - - - /** - * - * @return toolService - */ - ILamsToolService getToolService(); - - /** - * gets the tool output for the external server - * @param outputName - * @param mdlForum - * @param userId - * @param extToolContentId - * @param toolSessionId - * @return - */ - public int getExternalToolOutputInt(String outputName, MdlForum mdlForum, Long userId, String extToolContentId, Long toolSessionId); + /** + * + * @param uid + * @return + */ + public MdlForumUser getUserByUID(Long uid); - - /** - * Converts the customCSV parameter into a hashmap - * @param customCSV - * @return - */ - public HashMap decodeCustomCSV(String customCSV); - - /** - * Constructs a parameter hashmap to be used for the default parameters - * required by the external LMS tool adapter servlet. For instance in mdlForum, - * this constructs the following: - * - * { - * ["un", username], - * ["cs", course], - * ["ts", timestamp], - * ["hs", hash], - * } - * - * @param mdlForum - * @return - */ - public HashMap getRequiredExtServletParams(MdlForum mdlForum); - - - /** - * Constructs a parameter hashmap based off customCSV to be used for the default parameters - * required by the external LMS tool adapter servlet. For instance in mdlForum, - * this constructs the following: - * - * { - * ["un", username], - * ["cs", course], - * ["ts", timestamp], - * ["hs", hash], - * } - * - * @param user - * @param course - * @return - */ - public HashMap getRequiredExtServletParams(String customCSV); + /** + * Gets the external organisation map for this tool adapter + * + * @return + */ + public ExtServerOrgMap getExtServerOrgMap(); + + /** + * Creates a hash for talking to the external server + * + * @param serverMap + * @param extUsername + * @param timestamp + * @return + */ + public String hash(ExtServerOrgMap serverMap, String extUsername, String timestamp); + + /** + * + * @param mdlForumUser + */ + public void saveOrUpdateMdlForumUser(MdlForumUser mdlForumUser); + + /** + * + * @param user + * @param mdlForumSession + * @return + */ + public MdlForumUser createMdlForumUser(UserDTO user, MdlForumSession mdlForumSession); + + /** + * + * @return toolService + */ + ILamsToolService getToolService(); + + /** + * gets the tool output for the external server + * + * @param outputName + * @param mdlForum + * @param userId + * @param extToolContentId + * @param toolSessionId + * @return + */ + public int getExternalToolOutputInt(String outputName, MdlForum mdlForum, Long userId, String extToolContentId, + Long toolSessionId); + + /** + * Converts the customCSV parameter into a hashmap + * + * @param customCSV + * @return + */ + public HashMap decodeCustomCSV(String customCSV); + + /** + * Constructs a parameter hashmap to be used for the default parameters + * required by the external LMS tool adapter servlet. For instance in + * mdlForum, this constructs the following: + * { ["un", username], ["cs", course], ["ts", timestamp], ["hs", hash], } + * + * @param mdlForum + * @return + */ + public HashMap getRequiredExtServletParams(MdlForum mdlForum); + + /** + * Constructs a parameter hashmap based off customCSV to be used for the + * default parameters required by the external LMS tool adapter servlet. For + * instance in mdlForum, this constructs the following: + * { ["un", username], ["cs", course], ["ts", timestamp], ["hs", hash], } + * + * @param user + * @param course + * @return + */ + public HashMap getRequiredExtServletParams(String customCSV); } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/service/MdlForumOutputFactory.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/service/MdlForumOutputFactory.java (.../MdlForumOutputFactory.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/service/MdlForumOutputFactory.java (.../MdlForumOutputFactory.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -34,67 +34,61 @@ /** * Creates the output definitions for mdlforum tool Adapter tool. */ -public class MdlForumOutputFactory extends OutputFactory{ - - protected final static String OUTPUT_NAME_LEARNER_NUM_POSTS = "learner.number.of.posts"; - protected final static String OUTPUT_NAME_LEARNER_NUM_WORDS = "learner.number.of.words"; - - public MdlForumOutputFactory() {} - - /** - * @see org.lamsfoundation.lams.tool.OutputDefinitionFactory#getToolOutputDefinitions(java.lang.Object) - */ - public SortedMap getToolOutputDefinitions( - Object toolContentObject) throws ToolException { - TreeMap definitionMap = new TreeMap(); - - ToolOutputDefinition definition = buildRangeDefinition(OUTPUT_NAME_LEARNER_NUM_POSTS, new Long(0), null); - definitionMap.put(OUTPUT_NAME_LEARNER_NUM_POSTS, definition); - - ToolOutputDefinition definition2 = buildRangeDefinition(OUTPUT_NAME_LEARNER_NUM_WORDS, new Long(0), null); - definitionMap.put(OUTPUT_NAME_LEARNER_NUM_WORDS, definition2); +public class MdlForumOutputFactory extends OutputFactory { - return definitionMap; - } - - - public SortedMap getToolOutput(List names, IMdlForumService dlForumService, - Long toolSessionId, Long learnerId, MdlForum mdlForum, Long extSessionId) { - - TreeMap map = new TreeMap(); - if ( names == null || names.contains(OUTPUT_NAME_LEARNER_NUM_POSTS)) { - map.put(OUTPUT_NAME_LEARNER_NUM_POSTS, getExtToolOutput(OUTPUT_NAME_LEARNER_NUM_POSTS, dlForumService, mdlForum, learnerId, extSessionId.toString(), toolSessionId)); - } - if ( names.contains(OUTPUT_NAME_LEARNER_NUM_WORDS)) { - map.put(OUTPUT_NAME_LEARNER_NUM_WORDS, getExtToolOutput(OUTPUT_NAME_LEARNER_NUM_WORDS, dlForumService, mdlForum, learnerId, extSessionId.toString(), toolSessionId)); - } - return map; + protected final static String OUTPUT_NAME_LEARNER_NUM_POSTS = "learner.number.of.posts"; + protected final static String OUTPUT_NAME_LEARNER_NUM_WORDS = "learner.number.of.words"; - } + public MdlForumOutputFactory() { + } - public ToolOutput getToolOutput(String name, IMdlForumService dlForumService, - Long toolSessionId, Long learnerId, MdlForum getToolOutput, Long extSessionId) { - - /* - if ( name != null && name.equals(OUTPUT_NAME_LEARNER_NUM_POSTS)) { - return this.getExtToolOutput(name, dlForumService, extCourseId, learnerId, extSessionId.toString(), toolSessionId); - } - if ( name != null && name.equals(OUTPUT_NAME_LEARNER_NUM_WORDS)) { - return this.getExtToolOutput(name, dlForumService, extCourseId, learnerId, extSessionId.toString(), toolSessionId); - } - */ - if ( name != null) - { - return getExtToolOutput(name, dlForumService, getToolOutput, learnerId, extSessionId.toString(), toolSessionId); - } - return null; + /** + * @see org.lamsfoundation.lams.tool.OutputDefinitionFactory#getToolOutputDefinitions(java.lang.Object) + */ + public SortedMap getToolOutputDefinitions(Object toolContentObject) + throws ToolException { + TreeMap definitionMap = new TreeMap(); + ToolOutputDefinition definition = buildRangeDefinition(OUTPUT_NAME_LEARNER_NUM_POSTS, new Long(0), null); + definitionMap.put(OUTPUT_NAME_LEARNER_NUM_POSTS, definition); + + ToolOutputDefinition definition2 = buildRangeDefinition(OUTPUT_NAME_LEARNER_NUM_WORDS, new Long(0), null); + definitionMap.put(OUTPUT_NAME_LEARNER_NUM_WORDS, definition2); + + return definitionMap; + } + + public SortedMap getToolOutput(List names, IMdlForumService dlForumService, + Long toolSessionId, Long learnerId, MdlForum mdlForum, Long extSessionId) { + + TreeMap map = new TreeMap(); + if (names == null || names.contains(OUTPUT_NAME_LEARNER_NUM_POSTS)) { + map.put(OUTPUT_NAME_LEARNER_NUM_POSTS, getExtToolOutput(OUTPUT_NAME_LEARNER_NUM_POSTS, dlForumService, + mdlForum, learnerId, extSessionId.toString(), toolSessionId)); } - - public ToolOutput getExtToolOutput(String outputName, IMdlForumService mdlForumService, MdlForum mdlForum, Long userId, String extToolContentId, Long toolSessionId) - { - int number = mdlForumService.getExternalToolOutputInt(outputName, mdlForum, userId, extToolContentId, toolSessionId); - return new ToolOutput(outputName, getI18NText(outputName, true), new Long(number)); + if (names.contains(OUTPUT_NAME_LEARNER_NUM_WORDS)) { + map.put(OUTPUT_NAME_LEARNER_NUM_WORDS, getExtToolOutput(OUTPUT_NAME_LEARNER_NUM_WORDS, dlForumService, + mdlForum, learnerId, extSessionId.toString(), toolSessionId)); } + return map; + } + + public ToolOutput getToolOutput(String name, IMdlForumService dlForumService, Long toolSessionId, Long learnerId, + MdlForum getToolOutput, Long extSessionId) { + if (name != null) { + return getExtToolOutput(name, dlForumService, getToolOutput, learnerId, extSessionId.toString(), + toolSessionId); + } + return null; + + } + + public ToolOutput getExtToolOutput(String outputName, IMdlForumService mdlForumService, MdlForum mdlForum, + Long userId, String extToolContentId, Long toolSessionId) { + int number = mdlForumService.getExternalToolOutputInt(outputName, mdlForum, userId, extToolContentId, + toolSessionId); + return new ToolOutput(outputName, getI18NText(outputName, true), new Long(number)); + } + } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/service/MdlForumService.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/service/MdlForumService.java (.../MdlForumService.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/service/MdlForumService.java (.../MdlForumService.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -96,933 +96,866 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; - /** * An implementation of the IMdlForumService interface. * * As a requirement, all LAMS tool's service bean must implement * ToolContentManager and ToolSessionManager. */ -public class MdlForumService implements ToolSessionManager, ToolAdapterContentManager, - IMdlForumService, ToolContentImport102Manager { +public class MdlForumService implements ToolSessionManager, ToolAdapterContentManager, IMdlForumService, + ToolContentImport102Manager { - static Logger logger = Logger.getLogger(MdlForumService.class.getName()); + static Logger logger = Logger.getLogger(MdlForumService.class.getName()); - public static final String CUSTOM_CSV_MAP_PARAM_USER = "user"; - public static final String CUSTOM_CSV_MAP_PARAM_COURSE = "course"; - public static final String CUSTOM_CSV_MAP_PARAM_SECTION = "section"; - - public static final String EXT_SERVER_PARAM_USER = "un"; - public static final String EXT_SERVER_PARAM_COURSE = "cs"; - public static final String EXT_SERVER_PARAM_SECTION = "section"; - public static final String EXT_SERVER_PARAM_TIMESTAMP = "ts"; - public static final String EXT_SERVER_PARAM_HASH = "hs"; - public static final String EXT_SERVER_PARAM_METHOD = "method"; - public static final String EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID = "extToolContentID"; - public static final String EXT_SERVER_PARAM_UPLOAD_FILE = "upload_file"; - public static final String EXT_SERVER_PARAM_OUTPUT_NAME = "oname"; - - private static final int EXPECTED_CSV_SIZE = 3; - private static final String EXPECTED_CSV_FORM = "user,course"; - - private IMdlForumDAO mdlForumDAO = null; + public static final String CUSTOM_CSV_MAP_PARAM_USER = "user"; + public static final String CUSTOM_CSV_MAP_PARAM_COURSE = "course"; + public static final String CUSTOM_CSV_MAP_PARAM_SECTION = "section"; - private IMdlForumSessionDAO mdlForumSessionDAO = null; + public static final String EXT_SERVER_PARAM_USER = "un"; + public static final String EXT_SERVER_PARAM_COURSE = "cs"; + public static final String EXT_SERVER_PARAM_SECTION = "section"; + public static final String EXT_SERVER_PARAM_TIMESTAMP = "ts"; + public static final String EXT_SERVER_PARAM_HASH = "hs"; + public static final String EXT_SERVER_PARAM_METHOD = "method"; + public static final String EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID = "extToolContentID"; + public static final String EXT_SERVER_PARAM_UPLOAD_FILE = "upload_file"; + public static final String EXT_SERVER_PARAM_OUTPUT_NAME = "oname"; - private IMdlForumUserDAO mdlForumUserDAO = null; - - private IMdlForumConfigItemDAO mdlForumConfigItemDAO = null; + private static final int EXPECTED_CSV_SIZE = 3; + private static final String EXPECTED_CSV_FORM = "user,course"; - private ILearnerService learnerService; + private IMdlForumDAO mdlForumDAO = null; - private ILamsToolService toolService; + private IMdlForumSessionDAO mdlForumSessionDAO = null; - private IToolContentHandler mdlForumToolContentHandler = null; + private IMdlForumUserDAO mdlForumUserDAO = null; - private IRepositoryService repositoryService = null; + private IMdlForumConfigItemDAO mdlForumConfigItemDAO = null; - private IAuditService auditService = null; + private ILearnerService learnerService; - private IExportToolContentService exportContentService; + private ILamsToolService toolService; - private ICoreNotebookService coreNotebookService; - - private IIntegrationService integrationService; - - private MdlForumOutputFactory mdlForumOutputFactory; + private IToolContentHandler mdlForumToolContentHandler = null; - public MdlForumService() { - super(); - // TODO Auto-generated constructor stub - } + private IRepositoryService repositoryService = null; -/* ************ Methods from ToolSessionManager ************* */ -public void createToolSession(Long toolSessionId, String toolSessionName, - Long toolContentId) throws ToolException { + private IAuditService auditService = null; + + private IExportToolContentService exportContentService; + + private ICoreNotebookService coreNotebookService; + + private IIntegrationService integrationService; + + private MdlForumOutputFactory mdlForumOutputFactory; + + public MdlForumService() { + super(); + // TODO Auto-generated constructor stub + } + + /* ************ Methods from ToolSessionManager ************* */ + public void createToolSession(Long toolSessionId, String toolSessionName, Long toolContentId) throws ToolException { if (logger.isDebugEnabled()) { - logger.debug("entering method createToolSession:" - + " toolSessionId = " + toolSessionId - + " toolSessionName = " + toolSessionName - + " toolContentId = " + toolContentId); + logger.debug("entering method createToolSession:" + " toolSessionId = " + toolSessionId + + " toolSessionName = " + toolSessionName + " toolContentId = " + toolContentId); } MdlForumSession session = new MdlForumSession(); session.setSessionId(toolSessionId); session.setSessionName(toolSessionName); - - + // learner starts MdlForum mdlForum = mdlForumDAO.getByContentId(toolContentId); session.setMdlForum(mdlForum); - - try - { - // Get the required params, then call the eternal server - HashMap params = getRequiredExtServletParams(mdlForum); - params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, mdlForum.getExtToolContentId().toString()); - session.setExtSessionId(copyExternalToolContent(params)); + + try { + // Get the required params, then call the eternal server + HashMap params = getRequiredExtServletParams(mdlForum); + params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, mdlForum.getExtToolContentId().toString()); + session.setExtSessionId(copyExternalToolContent(params)); + } catch (Exception e) { + logger.error("Failed to call external server to copy tool content" + e); + throw new ToolException("Failed to call external server to copy tool content" + e); } - catch(Exception e) - { - logger.error("Failed to call external server to copy tool content" + e); - throw new ToolException("Failed to call external server to copy tool content" + e); - } - + mdlForumSessionDAO.saveOrUpdate(session); -} + } + /** + * Calls the external server to copy the content and return a new id + * + * @param extToolContentId + * @return + */ + public Long copyExternalToolContent(HashMap params) throws ToolException, Exception { -/** - * Calls the external server to copy the content and return a new id - * @param extToolContentId - * @return - */ -public Long copyExternalToolContent(HashMap params) -throws ToolException, Exception -{ - - String cloneServletUrl = mdlForumConfigItemDAO.getConfigItemByKey(MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET).getConfigValue(); - - // add the method to the params - params.put(EXT_SERVER_PARAM_METHOD, EXT_SERVER_METHOD_CLONE); - + String cloneServletUrl = mdlForumConfigItemDAO.getConfigItemByKey(MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET) + .getConfigValue(); + + // add the method to the params + params.put(EXT_SERVER_PARAM_METHOD, EXT_SERVER_METHOD_CLONE); + // Make the request - InputStream is = WebUtility.getResponseInputStreamFromExternalServer(cloneServletUrl, params); + InputStream is = WebUtility.getResponseInputStreamFromExternalServer(cloneServletUrl, params); BufferedReader isReader = new BufferedReader(new InputStreamReader(is)); String str = isReader.readLine(); if (str == null) { throw new UserInfoFetchException("Fail to clone forum in .LRN:" - + " - No data returned from external server"); + + " - No data returned from external server"); } - - return Long.parseLong(str); -} - - public HashMap getRequiredExtServletParams(String customCSV) - { - HashMap params = new HashMap (); - HashMap paramsCSV = decodeCustomCSV(customCSV); - params.put(EXT_SERVER_PARAM_COURSE, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_COURSE)); - params.put(EXT_SERVER_PARAM_USER, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_USER)); - params.put(EXT_SERVER_PARAM_SECTION, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_SECTION)); - - String timestamp = Long.toString(new Date().getTime()); - params.put(EXT_SERVER_PARAM_TIMESTAMP, timestamp); - - ExtServerOrgMap serverMap = this.getExtServerOrgMap(); - String hash = hash(serverMap, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_USER), timestamp); - params.put(EXT_SERVER_PARAM_HASH, hash); - - return params; - } - - public HashMap getRequiredExtServletParams(MdlForum mdlforum) - { - HashMap params = new HashMap(); - params.put(EXT_SERVER_PARAM_USER, mdlforum.getExtUsername()); - params.put(EXT_SERVER_PARAM_COURSE, mdlforum.getExtCourseId()); - params.put(EXT_SERVER_PARAM_SECTION, mdlforum.getExtSection()); - - String timestamp = Long.toString(new Date().getTime()); - params.put(EXT_SERVER_PARAM_TIMESTAMP, timestamp); - - ExtServerOrgMap serverMap = this.getExtServerOrgMap(); - String hash = hash(serverMap, mdlforum.getExtUsername(), timestamp); - params.put(EXT_SERVER_PARAM_HASH, hash); - - return params; - } - - public HashMap decodeCustomCSV(String customCSV) - { - HashMap map = new HashMap(); - if (customCSV != null) - { - String[] split = customCSV.split(","); - if (split.length != EXPECTED_CSV_SIZE) - { - return null; - } - map.put(CUSTOM_CSV_MAP_PARAM_USER, split[0]); - map.put(CUSTOM_CSV_MAP_PARAM_COURSE, split[1]); - map.put(CUSTOM_CSV_MAP_PARAM_SECTION, split[2]); - return map; - } - else - { - return null; - } - } - - public int getExternalToolOutputInt(String outputName, MdlForum mdlForum, Long userId, String extToolContentId, Long toolSessionId) - { - MdlForumUser user = this.getUserByUserIdAndSessionId(userId, toolSessionId); - ExtServerOrgMap extServerMap = getExtServerOrgMap(); - - String extUserName = user.getLoginName().substring(extServerMap.getPrefix().length() + 1); - try{ - String outputServletUrl = mdlForumConfigItemDAO.getConfigItemByKey(MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET).getConfigValue(); - - // setting the mdlForum username so the params are set up correctly - mdlForum.setExtUsername(extUserName); - HashMap params = getRequiredExtServletParams(mdlForum); - params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, extToolContentId); - params.put(EXT_SERVER_PARAM_METHOD, EXT_SERVER_METHOD_OUTPUT); - params.put(EXT_SERVER_PARAM_OUTPUT_NAME, URLEncoder.encode(outputName, "UTF8")); + return Long.parseLong(str); + } - InputStream is = WebUtility.getResponseInputStreamFromExternalServer(outputServletUrl, params); - BufferedReader isReader = new BufferedReader(new InputStreamReader(is)); - int ret = Integer.parseInt(isReader.readLine()); - return ret; - } - catch (Exception e) - { - logger.debug("Failed getting external output", e); - throw new ToolException ("Failed getting external output", e); - } - } - - /** - * Get the tool output for the given tool output names. - * @see org.lamsfoundation.lams.tool.ToolSessionManager#getToolOutput(java.util.List, java.lang.Long, java.lang.Long) - */ - public SortedMap getToolOutput(List names, - Long toolSessionId, Long learnerId) { - mdlForumOutputFactory = getMdlForumOutputFactory(); - MdlForumSession session = this.getSessionBySessionId(toolSessionId); - if (session == null) - { - return null; - } - return mdlForumOutputFactory.getToolOutput(names, this, toolSessionId, learnerId, session.getMdlForum(), session.getExtSessionId()); - } + public HashMap getRequiredExtServletParams(String customCSV) { + HashMap params = new HashMap(); + HashMap paramsCSV = decodeCustomCSV(customCSV); + params.put(EXT_SERVER_PARAM_COURSE, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_COURSE)); + params.put(EXT_SERVER_PARAM_USER, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_USER)); + params.put(EXT_SERVER_PARAM_SECTION, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_SECTION)); - /** - * Get the tool output for the given tool output name. - * @see org.lamsfoundation.lams.tool.ToolSessionManager#getToolOutput(java.lang.String, java.lang.Long, java.lang.Long) - */ - public ToolOutput getToolOutput(String name, Long toolSessionId, - Long learnerId) { - mdlForumOutputFactory = getMdlForumOutputFactory(); - MdlForumSession session = this.getSessionBySessionId(toolSessionId); - if (session == null) - { - return null; - } - - return mdlForumOutputFactory.getToolOutput(name, this, toolSessionId, learnerId, session.getMdlForum(), session.getExtSessionId()); + String timestamp = Long.toString(new Date().getTime()); + params.put(EXT_SERVER_PARAM_TIMESTAMP, timestamp); + + ExtServerOrgMap serverMap = this.getExtServerOrgMap(); + String hash = hash(serverMap, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_USER), timestamp); + params.put(EXT_SERVER_PARAM_HASH, hash); + + return params; + } + + public HashMap getRequiredExtServletParams(MdlForum mdlforum) { + HashMap params = new HashMap(); + params.put(EXT_SERVER_PARAM_USER, mdlforum.getExtUsername()); + params.put(EXT_SERVER_PARAM_COURSE, mdlforum.getExtCourseId()); + params.put(EXT_SERVER_PARAM_SECTION, mdlforum.getExtSection()); + + String timestamp = Long.toString(new Date().getTime()); + params.put(EXT_SERVER_PARAM_TIMESTAMP, timestamp); + + ExtServerOrgMap serverMap = this.getExtServerOrgMap(); + String hash = hash(serverMap, mdlforum.getExtUsername(), timestamp); + params.put(EXT_SERVER_PARAM_HASH, hash); + + return params; + } + + public HashMap decodeCustomCSV(String customCSV) { + HashMap map = new HashMap(); + if (customCSV != null) { + String[] split = customCSV.split(","); + if (split.length != EXPECTED_CSV_SIZE) { + return null; + } + map.put(CUSTOM_CSV_MAP_PARAM_USER, split[0]); + map.put(CUSTOM_CSV_MAP_PARAM_COURSE, split[1]); + map.put(CUSTOM_CSV_MAP_PARAM_SECTION, split[2]); + return map; + } else { + return null; } - - /** Get the definitions for possible output for an activity, based on the toolContentId. These may be definitions that are always - * available for the tool (e.g. number of marks for Multiple Choice) or a custom definition created for a particular activity - * such as the answer to the third question contains the word Koala and hence the need for the toolContentId - * @return SortedMap of ToolOutputDefinitions with the key being the name of each definition - */ - public SortedMap getToolOutputDefinitions(Long toolContentId) throws ToolException { - mdlForumOutputFactory = getMdlForumOutputFactory(); - MdlForum mdfrum = getMdlForumByContentId(toolContentId); - if (mdfrum == null) - { - mdfrum = getDefaultContent(); - } - return mdlForumOutputFactory.getToolOutputDefinitions(mdfrum); - } - - public String hash(ExtServerOrgMap serverMap, String extUsername, String timestamp) { - String serverId = serverMap.getServerid(); - String serverKey = serverMap.getServerkey(); - String plaintext = timestamp.trim().toLowerCase()+extUsername.trim().toLowerCase()+serverId.trim().toLowerCase()+serverKey.trim().toLowerCase(); - return HashUtil.sha1(plaintext); - } + } - public String leaveToolSession(Long toolSessionId, Long learnerId) - throws DataMissingException, ToolException { - return learnerService.completeToolSession(toolSessionId, learnerId); + public int getExternalToolOutputInt(String outputName, MdlForum mdlForum, Long userId, String extToolContentId, + Long toolSessionId) { + MdlForumUser user = this.getUserByUserIdAndSessionId(userId, toolSessionId); + ExtServerOrgMap extServerMap = getExtServerOrgMap(); + + String extUserName = user.getLoginName().substring(extServerMap.getPrefix().length() + 1); + + try { + String outputServletUrl = mdlForumConfigItemDAO.getConfigItemByKey( + MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET).getConfigValue(); + + // setting the mdlForum username so the params are set up correctly + mdlForum.setExtUsername(extUserName); + HashMap params = getRequiredExtServletParams(mdlForum); + params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, extToolContentId); + params.put(EXT_SERVER_PARAM_METHOD, EXT_SERVER_METHOD_OUTPUT); + params.put(EXT_SERVER_PARAM_OUTPUT_NAME, URLEncoder.encode(outputName, "UTF8")); + + InputStream is = WebUtility.getResponseInputStreamFromExternalServer(outputServletUrl, params); + BufferedReader isReader = new BufferedReader(new InputStreamReader(is)); + int ret = Integer.parseInt(isReader.readLine()); + return ret; + } catch (Exception e) { + logger.debug("Failed getting external output", e); + throw new ToolException("Failed getting external output", e); } + } - public ToolSessionExportOutputData exportToolSession(Long toolSessionId) - throws DataMissingException, ToolException { - // TODO Auto-generated method stub - return null; + /** + * Get the tool output for the given tool output names. + * + * @see org.lamsfoundation.lams.tool.ToolSessionManager#getToolOutput(java.util.List, + * java.lang.Long, java.lang.Long) + */ + public SortedMap getToolOutput(List names, Long toolSessionId, Long learnerId) { + mdlForumOutputFactory = getMdlForumOutputFactory(); + MdlForumSession session = this.getSessionBySessionId(toolSessionId); + if (session == null) { + return null; } + return mdlForumOutputFactory.getToolOutput(names, this, toolSessionId, learnerId, session.getMdlForum(), + session.getExtSessionId()); + } - public ToolSessionExportOutputData exportToolSession(List toolSessionIds) - throws DataMissingException, ToolException { - // TODO Auto-generated method stub - return null; + /** + * Get the tool output for the given tool output name. + * + * @see org.lamsfoundation.lams.tool.ToolSessionManager#getToolOutput(java.lang.String, + * java.lang.Long, java.lang.Long) + */ + public ToolOutput getToolOutput(String name, Long toolSessionId, Long learnerId) { + mdlForumOutputFactory = getMdlForumOutputFactory(); + MdlForumSession session = this.getSessionBySessionId(toolSessionId); + if (session == null) { + return null; } - public void removeToolSession(Long toolSessionId) - throws DataMissingException, ToolException { - mdlForumSessionDAO.deleteBySessionID(toolSessionId); - // TODO check if cascade worked + return mdlForumOutputFactory.getToolOutput(name, this, toolSessionId, learnerId, session.getMdlForum(), session + .getExtSessionId()); + } + + /** + * Get the definitions for possible output for an activity, based on the + * toolContentId. These may be definitions that are always available for the + * tool (e.g. number of marks for Multiple Choice) or a custom definition + * created for a particular activity such as the answer to the third + * question contains the word Koala and hence the need for the toolContentId + * + * @return SortedMap of ToolOutputDefinitions with the key being the name of + * each definition + */ + public SortedMap getToolOutputDefinitions(Long toolContentId) throws ToolException { + mdlForumOutputFactory = getMdlForumOutputFactory(); + MdlForum mdfrum = getMdlForumByContentId(toolContentId); + if (mdfrum == null) { + mdfrum = getDefaultContent(); } + return mdlForumOutputFactory.getToolOutputDefinitions(mdfrum); + } - + public String hash(ExtServerOrgMap serverMap, String extUsername, String timestamp) { + String serverId = serverMap.getServerid(); + String serverKey = serverMap.getServerkey(); + String plaintext = timestamp.trim().toLowerCase() + extUsername.trim().toLowerCase() + + serverId.trim().toLowerCase() + serverKey.trim().toLowerCase(); + return HashUtil.sha1(plaintext); + } - /* ************ Methods from ToolContentManager ************************* */ + public String leaveToolSession(Long toolSessionId, Long learnerId) throws DataMissingException, ToolException { + return learnerService.completeToolSession(toolSessionId, learnerId); + } - public void copyToolContent(Long fromContentId, Long toContentId) - throws ToolException { + public ToolSessionExportOutputData exportToolSession(Long toolSessionId) throws DataMissingException, ToolException { + // TODO Auto-generated method stub + return null; + } - if (logger.isDebugEnabled()) { - logger.debug("entering method copyToolContent:" + " fromContentId=" - + fromContentId + " toContentId=" + toContentId); - } + public ToolSessionExportOutputData exportToolSession(List toolSessionIds) throws DataMissingException, + ToolException { + // TODO Auto-generated method stub + return null; + } - if (toContentId == null) { - String error = "Failed to copy tool content: toContentID is null"; - throw new ToolException(error); - } + public void removeToolSession(Long toolSessionId) throws DataMissingException, ToolException { + mdlForumSessionDAO.deleteBySessionID(toolSessionId); + // TODO check if cascade worked + } - MdlForum fromContent = null; - if ( fromContentId != null ) { - fromContent = mdlForumDAO.getByContentId(fromContentId); - } - if (fromContent == null) { - // create the fromContent using the default tool content - fromContent = getDefaultContent(); - } - MdlForum toContent = MdlForum.newInstance(fromContent, toContentId, - mdlForumToolContentHandler); - - // calling the external tool to copy it's content. - /* - try - { - - toContent.setExtToolContentId(copyExternalToolContent( - fromContent.getExtToolContentId(), - fromContent.getExtUsername(), - fromContent.getExtCourseId(), - fromContent.getExtCourseUrl() - )); - - } - catch(Exception e) - { - throw new ToolException("Failed to call external server to copy tool content" + e); - }*/ - - mdlForumDAO.saveOrUpdate(toContent); - } - - /** - * Special copyToolContent implemented from ToolAdapterContentManager - * customCSV is passed here so we have a chance to get the external course, - * user and course url. This function is only neccessary when we are integrated - * with an external LMS, otherwise this service should not implement - * ToolAdapterContentManager, but instead implement the regular - * ToolContentManager and use the regular - * copyContent(Long fromContentId, Long toContentId) function - */ - public void copyToolContent(Long fromContentId, Long toContentId, String customCSV) - throws ToolException { + /* ************ Methods from ToolContentManager ************************* */ - if (logger.isDebugEnabled()) { - logger.debug("entering method copyToolContent:" + " fromContentId=" - + fromContentId + " toContentId=" + toContentId); - } - - if (toContentId == null) { - String error = "Failed to copy tool content: toContentID is null"; - throw new ToolException(error); - } - - HashMap mapCSV = decodeCustomCSV(customCSV); - if (mapCSV == null) - { - logger.error("Tool adapter tool cusomCSV not in required (user,course,courseURL) form: " + EXPECTED_CSV_FORM); - throw new ToolException("mdlForum tool cusomCSV not in required (user,course,courseURL) form: " + EXPECTED_CSV_FORM); - } - - MdlForum fromContent = null; - if ( fromContentId != null ) { - fromContent = mdlForumDAO.getByContentId(fromContentId); - } - - // Set the default params for the external cloning request - HashMap params = getRequiredExtServletParams(customCSV); - - if ((fromContent == null) || fromContent.getExtToolContentId() == null) - { - // create the fromContent using the default tool content - fromContent = getDefaultContent(); - try - { - // notify the external server to create the default content - params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, "0"); - fromContent.setExtToolContentId(copyExternalToolContent(params)); - fromContent.setByCustomCSVHashMap(mapCSV); - } - catch(Exception e) - { - throw new ToolException("Failed to call external server to create default tool content" + e); - } - } - - // Create a new instance to copy the tool content to - MdlForum toContent = MdlForum.newInstance(fromContent, toContentId,mdlForumToolContentHandler); - toContent.setByCustomCSVHashMap(mapCSV); - - - // calling the external tool to copy it's content. - try - { - params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, fromContent.getExtToolContentId().toString()); - toContent.setExtToolContentId(copyExternalToolContent(params)); - } - catch(Exception e) - { - throw new ToolException("Failed to call external server to copy tool content" + e); - } - - mdlForumDAO.saveOrUpdate(toContent); - } + public void copyToolContent(Long fromContentId, Long toContentId) throws ToolException { - public void setAsDefineLater(Long toolContentId, boolean value) - throws DataMissingException, ToolException { - MdlForum mdlForum = mdlForumDAO.getByContentId(toolContentId); - if (mdlForum == null) { - throw new ToolException("Could not find tool with toolContentID: " - + toolContentId); - } - mdlForum.setDefineLater(value); - mdlForumDAO.saveOrUpdate(mdlForum); + if (logger.isDebugEnabled()) { + logger.debug("entering method copyToolContent:" + " fromContentId=" + fromContentId + " toContentId=" + + toContentId); } - public void setAsRunOffline(Long toolContentId, boolean value) - throws DataMissingException, ToolException { - MdlForum mdlForum = mdlForumDAO.getByContentId(toolContentId); - if (mdlForum == null) { - throw new ToolException("Could not find tool with toolContentID: " - + toolContentId); - } - mdlForum.setRunOffline(value); - mdlForumDAO.saveOrUpdate(mdlForum); + if (toContentId == null) { + String error = "Failed to copy tool content: toContentID is null"; + throw new ToolException(error); } - public void removeToolContent(Long toolContentId, boolean removeSessionData) - throws SessionDataExistsException, ToolException { - // TODO Auto-generated method stub + MdlForum fromContent = null; + if (fromContentId != null) { + fromContent = mdlForumDAO.getByContentId(fromContentId); } - - /** - * Export the XML fragment for the tool's content, along with any files - * needed for the content. - * - * @throws DataMissingException - * if no tool content matches the toolSessionId - * @throws ToolException - * if any other error occurs - */ - - public void exportToolContent(Long toolContentId, String rootPath) - throws DataMissingException, ToolException { - - - MdlForum mdlForum = mdlForumDAO.getByContentId(toolContentId); - if (mdlForum == null) { - mdlForum = getDefaultContent(); - } - if (mdlForum == null) - throw new DataMissingException("Unable to find default content for the mdlForum tool"); - - // If no external content was found, export empty mdlForum - // Otherwise, call the external servlet to get the export file - if (mdlForum.getExtToolContentId() == null) - { - mdlForum.setExtToolContentId(null); - mdlForum.setToolContentHandler(null); - mdlForum.setMdlForumSessions(null); - - try { - exportContentService.exportToolContent(toolContentId, - mdlForum, mdlForumToolContentHandler, rootPath); - } catch (ExportToolContentException e) { - throw new ToolException(e); - } - } - else - { - - URLConnection conn = null; - try - { - // Create the directory to store the export file - String toolPath = FileUtil.getFullPath(rootPath,toolContentId.toString()); - FileUtil.createDirectory(toolPath); - - String exportServletUrl = mdlForumConfigItemDAO.getConfigItemByKey(MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET).getConfigValue(); - - // setting these to arbitrary values since they are only used to construct the hash - - mdlForum.setExtCourseId("extCourse"); - mdlForum.setExtSection("0"); - mdlForum.setExtUsername("authUser"); - HashMap params = this.getRequiredExtServletParams(mdlForum); - params.put(EXT_SERVER_PARAM_METHOD, EXT_SERVER_METHOD_EXPORT); - params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, mdlForum.getExtToolContentId().toString()); - - // Get the reponse stream from the external server (hopefully containing the export file - InputStream in = WebUtility.getResponseInputStreamFromExternalServer(exportServletUrl, params); - - // Get the output stream to write the file for extport - OutputStream out = new BufferedOutputStream(new FileOutputStream(toolPath + "/ext_tool.txt")); - - byte[] buffer = new byte[1024]; - int numRead; - long numWritten = 0; - while ((numRead = in.read(buffer)) != -1) - { - out.write(buffer, 0, numRead); - numWritten += numRead; - } - logger.debug("Path to mdlForum export content: " + toolPath + "/ext_tool.txt"); - - out.flush(); - out.close(); - in.close(); - } - catch (Exception e) - { - logger.error("Problem exporting data from external .LRN servlet", e); - } - } + if (fromContent == null) { + // create the fromContent using the default tool content + fromContent = getDefaultContent(); } + MdlForum toContent = MdlForum.newInstance(fromContent, toContentId, mdlForumToolContentHandler); - /** - * Default importToolContent, not implemented because this is a tooladapter tool - */ - public void importToolContent(Long toolContentId, Integer newUserUid, - String toolContentPath,String fromVersion,String toVersion) throws ToolException + // calling the external tool to copy it's content. + /* + try { + toContent.setExtToolContentId(copyExternalToolContent( + fromContent.getExtToolContentId(), + fromContent.getExtUsername(), + fromContent.getExtCourseId(), + fromContent.getExtCourseUrl() + )); + } - - public ExtServerOrgMap getExtServerOrgMap() + catch(Exception e) { - if (integrationService==null) - integrationService = getIntegrationService(); - IToolVO tool = toolService.getToolBySignature(MdlForumConstants.TOOL_SIGNATURE); - return integrationService.getExtServerOrgMap(tool.getExtLmsId()); - } - - - /** - * Import the XML fragment for the tool's content, along with any files - * needed for the content. - * - * @throws ToolException - * if any other error occurs - */ - public void importToolContent(Long toolContentId, Integer newUserUid, - String toolContentPath,String fromVersion,String toVersion, String customCSV) throws ToolException { - - File extExportFile = new File(toolContentPath + "/ext_tool.txt"); - - // if specially exported tooladapter file is found, send it to the external server - // otherwise, simply import an empty mdlForum - if (extExportFile.exists()) - { - - try { - - String importServletUrl = mdlForumConfigItemDAO.getConfigItemByKey(MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET).getConfigValue(); + throw new ToolException("Failed to call external server to copy tool content" + e); + }*/ - if (customCSV== null) - { - logger.error("Could not retrieve customCSV required for importing tool adapter tool. CustomCSV: " + customCSV); - throw new ToolException("Could not retrieve customCSV required for importing tool adapter tool. CustomCSV: " + customCSV); - } - - HashMap params = getRequiredExtServletParams(customCSV); - params.put(EXT_SERVER_PARAM_METHOD, EXT_SERVER_METHOD_IMPORT); - - // Do the external multipart post to upload the file to external LMS (returns an extToolContentId) - InputStream is = WebUtility.performMultipartPost(extExportFile, EXT_SERVER_PARAM_UPLOAD_FILE, importServletUrl, params); - DataInputStream inStream = new DataInputStream ( is ); - String str = inStream.readLine(); - Long extContentId = Long.parseLong(str); - inStream.close(); - - // Save the resulting mdl forum - MdlForum mdlForum = new MdlForum(); - mdlForum.setToolContentId(toolContentId); - mdlForum.setCreateDate(new Date()); - mdlForum.setExtToolContentId(extContentId); - saveOrUpdateMdlForum(mdlForum); + mdlForumDAO.saveOrUpdate(toContent); + } - } catch (Exception e) { - logger.error("Problem passing mdlForum export file to external server", e); - throw new ToolException(e); - } - } - else // use the normal LAMS method of importing activities from an xml file - { + /** + * Special copyToolContent implemented from ToolAdapterContentManager + * customCSV is passed here so we have a chance to get the external course, + * user and course url. This function is only neccessary when we are + * integrated with an external LMS, otherwise this service should not + * implement ToolAdapterContentManager, but instead implement the regular + * ToolContentManager and use the regular copyContent(Long fromContentId, + * Long toContentId) function + */ + public void copyToolContent(Long fromContentId, Long toContentId, String customCSV) throws ToolException { - try { - Object toolPOJO = exportContentService.importToolContent( - toolContentPath, mdlForumToolContentHandler, - fromVersion, toVersion); - if (!(toolPOJO instanceof MdlForum)) - throw new ImportToolContentException( - "Import MdlForum tool content failed. Deserialized object is " - + toolPOJO); - MdlForum mdlForum = (MdlForum) toolPOJO; - // reset it to new toolContentId - mdlForum.setToolContentId(toolContentId); - mdlForumDAO.saveOrUpdate(mdlForum); - } catch (Exception e) { - throw new ToolException(e); - } - } + if (logger.isDebugEnabled()) { + logger.debug("entering method copyToolContent:" + " fromContentId=" + fromContentId + " toContentId=" + + toContentId); } - - /* ********** IMdlForumService Methods ********************************* */ - - public Long getDefaultContentIdBySignature(String toolSignature) { - Long toolContentId = null; - toolContentId = new Long(toolService - .getToolDefaultContentIdBySignature(toolSignature)); - if (toolContentId == null) { - String error = "Could not retrieve default content id for this tool"; - logger.error(error); - throw new MdlForumException(error); - } - return toolContentId; + + if (toContentId == null) { + String error = "Failed to copy tool content: toContentID is null"; + throw new ToolException(error); } - public MdlForum getDefaultContent() { - /* - Long defaultContentID = getDefaultContentIdBySignature(MdlForumConstants.TOOL_SIGNATURE); - MdlForum defaultContent = getMdlForumByContentId(defaultContentID); - if (defaultContent == null) { - String error = "Could not retrieve default content record for this tool"; - logger.error(error); - throw new MdlForumException(error); - } - return defaultContent; - */ - MdlForum defaultContent = new MdlForum(); - return defaultContent; + HashMap mapCSV = decodeCustomCSV(customCSV); + if (mapCSV == null) { + logger.error("Tool adapter tool cusomCSV not in required (user,course,courseURL) form: " + + EXPECTED_CSV_FORM); + throw new ToolException("mdlForum tool cusomCSV not in required (user,course,courseURL) form: " + + EXPECTED_CSV_FORM); } - public MdlForum copyDefaultContent(Long newContentID) { + MdlForum fromContent = null; + if (fromContentId != null) { + fromContent = mdlForumDAO.getByContentId(fromContentId); + } - if (newContentID == null) { - String error = "Cannot copy the MdlForum tools default content: + " - + "newContentID is null"; - logger.error(error); - throw new MdlForumException(error); - } + // Set the default params for the external cloning request + HashMap params = getRequiredExtServletParams(customCSV); - MdlForum defaultContent = getDefaultContent(); - // create new mdlForum using the newContentID - MdlForum newContent = new MdlForum(); - newContent = MdlForum.newInstance(defaultContent, newContentID, - mdlForumToolContentHandler); - mdlForumDAO.saveOrUpdate(newContent); - return newContent; + if ((fromContent == null) || fromContent.getExtToolContentId() == null) { + // create the fromContent using the default tool content + fromContent = getDefaultContent(); + try { + // notify the external server to create the default content + params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, "0"); + fromContent.setExtToolContentId(copyExternalToolContent(params)); + fromContent.setByCustomCSVHashMap(mapCSV); + } catch (Exception e) { + throw new ToolException("Failed to call external server to create default tool content" + e); + } } - public MdlForum getMdlForumByContentId(Long toolContentID) { - MdlForum mdlForum = (MdlForum) mdlForumDAO - .getByContentId(toolContentID); - if (mdlForum == null) { - logger.debug("Could not find the content with toolContentID:" - + toolContentID); - } - return mdlForum; - } - - public MdlForumConfigItem getConfigItem(String key) - { - return mdlForumConfigItemDAO.getConfigItemByKey(key); - } - - public void saveOrUpdateMdlForumConfigItem(MdlForumConfigItem item) - { - mdlForumConfigItemDAO.saveOrUpdate(item); - } + // Create a new instance to copy the tool content to + MdlForum toContent = MdlForum.newInstance(fromContent, toContentId, mdlForumToolContentHandler); + toContent.setByCustomCSVHashMap(mapCSV); - public MdlForumSession getSessionBySessionId(Long toolSessionId) { - MdlForumSession mdlForumSession = mdlForumSessionDAO - .getBySessionId(toolSessionId); - if (mdlForumSession == null) { - logger - .debug("Could not find the mdlForum session with toolSessionID:" - + toolSessionId); - } - return mdlForumSession; + // calling the external tool to copy it's content. + try { + params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, fromContent.getExtToolContentId().toString()); + toContent.setExtToolContentId(copyExternalToolContent(params)); + } catch (Exception e) { + throw new ToolException("Failed to call external server to copy tool content" + e); } - public MdlForumUser getUserByUserIdAndSessionId(Long userId, - Long toolSessionId) { - return mdlForumUserDAO.getByUserIdAndSessionId(userId, toolSessionId); + mdlForumDAO.saveOrUpdate(toContent); + } + + public void setAsDefineLater(Long toolContentId, boolean value) throws DataMissingException, ToolException { + MdlForum mdlForum = mdlForumDAO.getByContentId(toolContentId); + if (mdlForum == null) { + throw new ToolException("Could not find tool with toolContentID: " + toolContentId); } + mdlForum.setDefineLater(value); + mdlForumDAO.saveOrUpdate(mdlForum); + } - public MdlForumUser getUserByLoginNameAndSessionId(String loginName, - Long toolSessionId) { - return mdlForumUserDAO.getByLoginNameAndSessionId(loginName, - toolSessionId); + public void setAsRunOffline(Long toolContentId, boolean value) throws DataMissingException, ToolException { + MdlForum mdlForum = mdlForumDAO.getByContentId(toolContentId); + if (mdlForum == null) { + throw new ToolException("Could not find tool with toolContentID: " + toolContentId); } + mdlForum.setRunOffline(value); + mdlForumDAO.saveOrUpdate(mdlForum); + } - public MdlForumUser getUserByUID(Long uid) { - return mdlForumUserDAO.getByUID(uid); + public void removeToolContent(Long toolContentId, boolean removeSessionData) throws SessionDataExistsException, + ToolException { + // TODO Auto-generated method stub + } + + /** + * Export the XML fragment for the tool's content, along with any files + * needed for the content. + * + * @throws DataMissingException + * if no tool content matches the toolSessionId + * @throws ToolException + * if any other error occurs + */ + + public void exportToolContent(Long toolContentId, String rootPath) throws DataMissingException, ToolException { + + MdlForum mdlForum = mdlForumDAO.getByContentId(toolContentId); + if (mdlForum == null) { + mdlForum = getDefaultContent(); } + if (mdlForum == null) + throw new DataMissingException("Unable to find default content for the mdlForum tool"); - public void deleteFromRepository(Long uuid, Long versionID) - throws MdlForumException { - ITicket ticket = getRepositoryLoginTicket(); - try { - repositoryService.deleteVersion(ticket, uuid, versionID); - } catch (Exception e) { - throw new MdlForumException( - "Exception occured while deleting files from" - + " the repository " + e.getMessage()); + // If no external content was found, export empty mdlForum + // Otherwise, call the external servlet to get the export file + if (mdlForum.getExtToolContentId() == null) { + mdlForum.setExtToolContentId(null); + mdlForum.setToolContentHandler(null); + mdlForum.setMdlForumSessions(null); + + try { + exportContentService.exportToolContent(toolContentId, mdlForum, mdlForumToolContentHandler, rootPath); + } catch (ExportToolContentException e) { + throw new ToolException(e); + } + } else { + + URLConnection conn = null; + try { + // Create the directory to store the export file + String toolPath = FileUtil.getFullPath(rootPath, toolContentId.toString()); + FileUtil.createDirectory(toolPath); + + String exportServletUrl = mdlForumConfigItemDAO.getConfigItemByKey( + MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET).getConfigValue(); + + // setting these to arbitrary values since they are only used to construct the hash + + mdlForum.setExtCourseId("extCourse"); + mdlForum.setExtSection("0"); + mdlForum.setExtUsername("authUser"); + HashMap params = this.getRequiredExtServletParams(mdlForum); + params.put(EXT_SERVER_PARAM_METHOD, EXT_SERVER_METHOD_EXPORT); + params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, mdlForum.getExtToolContentId().toString()); + + // Get the reponse stream from the external server (hopefully containing the export file + InputStream in = WebUtility.getResponseInputStreamFromExternalServer(exportServletUrl, params); + + // Get the output stream to write the file for extport + OutputStream out = new BufferedOutputStream(new FileOutputStream(toolPath + "/ext_tool.txt")); + + byte[] buffer = new byte[1024]; + int numRead; + long numWritten = 0; + while ((numRead = in.read(buffer)) != -1) { + out.write(buffer, 0, numRead); + numWritten += numRead; } + logger.debug("Path to mdlForum export content: " + toolPath + "/ext_tool.txt"); + + out.flush(); + out.close(); + in.close(); + } catch (Exception e) { + logger.error("Problem exporting data from external .LRN servlet", e); + } } + } - public void saveOrUpdateMdlForum(MdlForum mdlForum) { + /** + * Default importToolContent, not implemented because this is a tooladapter + * tool + */ + public void importToolContent(Long toolContentId, Integer newUserUid, String toolContentPath, String fromVersion, + String toVersion) throws ToolException { + + } + + public ExtServerOrgMap getExtServerOrgMap() { + if (integrationService == null) + integrationService = getIntegrationService(); + IToolVO tool = toolService.getToolBySignature(MdlForumConstants.TOOL_SIGNATURE); + return integrationService.getExtServerOrgMap(tool.getExtLmsId()); + } + + /** + * Import the XML fragment for the tool's content, along with any files + * needed for the content. + * + * @throws ToolException + * if any other error occurs + */ + public void importToolContent(Long toolContentId, Integer newUserUid, String toolContentPath, String fromVersion, + String toVersion, String customCSV) throws ToolException { + + File extExportFile = new File(toolContentPath + "/ext_tool.txt"); + + // if specially exported tooladapter file is found, send it to the external server + // otherwise, simply import an empty mdlForum + if (extExportFile.exists()) { + + try { + + String importServletUrl = mdlForumConfigItemDAO.getConfigItemByKey( + MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET).getConfigValue(); + + if (customCSV == null) { + logger.error("Could not retrieve customCSV required for importing tool adapter tool. CustomCSV: " + + customCSV); + throw new ToolException( + "Could not retrieve customCSV required for importing tool adapter tool. CustomCSV: " + + customCSV); + } + + HashMap params = getRequiredExtServletParams(customCSV); + params.put(EXT_SERVER_PARAM_METHOD, EXT_SERVER_METHOD_IMPORT); + + // Do the external multipart post to upload the file to external LMS (returns an extToolContentId) + InputStream is = WebUtility.performMultipartPost(extExportFile, EXT_SERVER_PARAM_UPLOAD_FILE, + importServletUrl, params); + DataInputStream inStream = new DataInputStream(is); + String str = inStream.readLine(); + Long extContentId = Long.parseLong(str); + inStream.close(); + + // Save the resulting mdl forum + MdlForum mdlForum = new MdlForum(); + mdlForum.setToolContentId(toolContentId); + mdlForum.setCreateDate(new Date()); + mdlForum.setExtToolContentId(extContentId); + saveOrUpdateMdlForum(mdlForum); + + } catch (Exception e) { + logger.error("Problem passing mdlForum export file to external server", e); + throw new ToolException(e); + } + } else // use the normal LAMS method of importing activities from an xml file + { + + try { + Object toolPOJO = exportContentService.importToolContent(toolContentPath, mdlForumToolContentHandler, + fromVersion, toVersion); + if (!(toolPOJO instanceof MdlForum)) + throw new ImportToolContentException("Import MdlForum tool content failed. Deserialized object is " + + toolPOJO); + MdlForum mdlForum = (MdlForum) toolPOJO; + // reset it to new toolContentId + mdlForum.setToolContentId(toolContentId); mdlForumDAO.saveOrUpdate(mdlForum); + } catch (Exception e) { + throw new ToolException(e); + } } + } - public void saveOrUpdateMdlForumSession(MdlForumSession mdlForumSession) { - mdlForumSessionDAO.saveOrUpdate(mdlForumSession); + /* ********** IMdlForumService Methods ********************************* */ + + public Long getDefaultContentIdBySignature(String toolSignature) { + Long toolContentId = null; + toolContentId = new Long(toolService.getToolDefaultContentIdBySignature(toolSignature)); + if (toolContentId == null) { + String error = "Could not retrieve default content id for this tool"; + logger.error(error); + throw new MdlForumException(error); } + return toolContentId; + } - public void saveOrUpdateMdlForumUser(MdlForumUser mdlForumUser) { - mdlForumUserDAO.saveOrUpdate(mdlForumUser); + public MdlForum getDefaultContent() { + /* + Long defaultContentID = getDefaultContentIdBySignature(MdlForumConstants.TOOL_SIGNATURE); + MdlForum defaultContent = getMdlForumByContentId(defaultContentID); + if (defaultContent == null) { + String error = "Could not retrieve default content record for this tool"; + logger.error(error); + throw new MdlForumException(error); } + return defaultContent; + */ + MdlForum defaultContent = new MdlForum(); + return defaultContent; + } - public MdlForumUser createMdlForumUser(UserDTO user, - MdlForumSession mdlForumSession) { - MdlForumUser mdlForumUser = new MdlForumUser(user, mdlForumSession); - saveOrUpdateMdlForumUser(mdlForumUser); - return mdlForumUser; + public MdlForum copyDefaultContent(Long newContentID) { + + if (newContentID == null) { + String error = "Cannot copy the MdlForum tools default content: + " + "newContentID is null"; + logger.error(error); + throw new MdlForumException(error); } - public IAuditService getAuditService() { - return auditService; + MdlForum defaultContent = getDefaultContent(); + // create new mdlForum using the newContentID + MdlForum newContent = new MdlForum(); + newContent = MdlForum.newInstance(defaultContent, newContentID, mdlForumToolContentHandler); + mdlForumDAO.saveOrUpdate(newContent); + return newContent; + } + + public MdlForum getMdlForumByContentId(Long toolContentID) { + MdlForum mdlForum = (MdlForum) mdlForumDAO.getByContentId(toolContentID); + if (mdlForum == null) { + logger.debug("Could not find the content with toolContentID:" + toolContentID); } + return mdlForum; + } - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public MdlForumConfigItem getConfigItem(String key) { + return mdlForumConfigItemDAO.getConfigItemByKey(key); + } + + public void saveOrUpdateMdlForumConfigItem(MdlForumConfigItem item) { + mdlForumConfigItemDAO.saveOrUpdate(item); + } + + public MdlForumSession getSessionBySessionId(Long toolSessionId) { + MdlForumSession mdlForumSession = mdlForumSessionDAO.getBySessionId(toolSessionId); + if (mdlForumSession == null) { + logger.debug("Could not find the mdlForum session with toolSessionID:" + toolSessionId); } + return mdlForumSession; + } - + public MdlForumUser getUserByUserIdAndSessionId(Long userId, Long toolSessionId) { + return mdlForumUserDAO.getByUserIdAndSessionId(userId, toolSessionId); + } - /** - * This method verifies the credentials of the SubmitFiles 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 - */ - private ITicket getRepositoryLoginTicket() throws MdlForumException { - repositoryService = RepositoryProxy.getRepositoryService(); - ICredentials credentials = new SimpleCredentials( - MdlForumToolContentHandler.repositoryUser, - MdlForumToolContentHandler.repositoryId); - try { - ITicket ticket = repositoryService.login(credentials, - MdlForumToolContentHandler.repositoryWorkspaceName); - return ticket; - } catch (AccessDeniedException ae) { - throw new MdlForumException("Access Denied to repository." - + ae.getMessage()); - } catch (WorkspaceNotFoundException we) { - throw new MdlForumException("Workspace not found." - + we.getMessage()); - } catch (LoginException e) { - throw new MdlForumException("Login failed." + e.getMessage()); - } + public MdlForumUser getUserByLoginNameAndSessionId(String loginName, Long toolSessionId) { + return mdlForumUserDAO.getByLoginNameAndSessionId(loginName, toolSessionId); + } + + public MdlForumUser getUserByUID(Long uid) { + return mdlForumUserDAO.getByUID(uid); + } + + public void deleteFromRepository(Long uuid, Long versionID) throws MdlForumException { + ITicket ticket = getRepositoryLoginTicket(); + try { + repositoryService.deleteVersion(ticket, uuid, versionID); + } catch (Exception e) { + throw new MdlForumException("Exception occured while deleting files from" + " the repository " + + e.getMessage()); } + } - /* ===============Methods implemented from ToolContentImport102Manager =============== */ - + public void saveOrUpdateMdlForum(MdlForum mdlForum) { + mdlForumDAO.saveOrUpdate(mdlForum); + } + public void saveOrUpdateMdlForumSession(MdlForumSession mdlForumSession) { + mdlForumSessionDAO.saveOrUpdate(mdlForumSession); + } + + public void saveOrUpdateMdlForumUser(MdlForumUser mdlForumUser) { + mdlForumUserDAO.saveOrUpdate(mdlForumUser); + } + + public MdlForumUser createMdlForumUser(UserDTO user, MdlForumSession mdlForumSession) { + MdlForumUser mdlForumUser = new MdlForumUser(user, mdlForumSession); + saveOrUpdateMdlForumUser(mdlForumUser); + return mdlForumUser; + } + + public IAuditService getAuditService() { + return auditService; + } + + public void setAuditService(IAuditService auditService) { + this.auditService = auditService; + } + /** + * This method verifies the credentials of the SubmitFiles 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 + */ + private ITicket getRepositoryLoginTicket() throws MdlForumException { + repositoryService = RepositoryProxy.getRepositoryService(); + ICredentials credentials = new SimpleCredentials(MdlForumToolContentHandler.repositoryUser, + MdlForumToolContentHandler.repositoryId); + try { + ITicket ticket = repositoryService.login(credentials, MdlForumToolContentHandler.repositoryWorkspaceName); + return ticket; + } catch (AccessDeniedException ae) { + throw new MdlForumException("Access Denied to repository." + ae.getMessage()); + } catch (WorkspaceNotFoundException we) { + throw new MdlForumException("Workspace not found." + we.getMessage()); + } catch (LoginException e) { + throw new MdlForumException("Login failed." + e.getMessage()); + } + } + + /* ===============Methods implemented from ToolContentImport102Manager =============== */ + + /** * Import the data for a 1.0.2 MdlForum */ - public void import102ToolContent(Long toolContentId, UserDTO user, Hashtable importValues) - { - Date now = new Date(); - MdlForum mdlForum = new MdlForum(); - mdlForum.setCreateDate(now); - mdlForum.setDefineLater(Boolean.FALSE); - mdlForum.setRunOffline(Boolean.FALSE); - mdlForum.setToolContentId(toolContentId); - mdlForum.setUpdateDate(now); + public void import102ToolContent(Long toolContentId, UserDTO user, Hashtable importValues) { + Date now = new Date(); + MdlForum mdlForum = new MdlForum(); + mdlForum.setCreateDate(now); + mdlForum.setDefineLater(Boolean.FALSE); + mdlForum.setRunOffline(Boolean.FALSE); + mdlForum.setToolContentId(toolContentId); + mdlForum.setUpdateDate(now); - mdlForumDAO.saveOrUpdate(mdlForum); + mdlForumDAO.saveOrUpdate(mdlForum); } - /** Set the description, throws away the title value as this is not supported in 2.0 */ - public void setReflectiveData(Long toolContentId, String title, String description) - throws ToolException, DataMissingException { + /** + * Set the description, throws away the title value as this is not supported + * in 2.0 + */ + public void setReflectiveData(Long toolContentId, String title, String description) throws ToolException, + DataMissingException { - logger.warn("Setting the reflective field on a mdlForum. This doesn't make sense as the mdlForum is for reflection and we don't reflect on reflection!"); - MdlForum mdlForum = getMdlForumByContentId(toolContentId); - if ( mdlForum == null ) { - throw new DataMissingException("Unable to set reflective data titled "+title - +" on activity toolContentId "+toolContentId - +" as the tool content does not exist."); - } - - //mdlForum.setInstructions(description); + logger + .warn("Setting the reflective field on a mdlForum. This doesn't make sense as the mdlForum is for reflection and we don't reflect on reflection!"); + MdlForum mdlForum = getMdlForumByContentId(toolContentId); + if (mdlForum == null) { + throw new DataMissingException("Unable to set reflective data titled " + title + + " on activity toolContentId " + toolContentId + " as the tool content does not exist."); + } + + //mdlForum.setInstructions(description); } - + //========================================================================================= - /* ********** Used by Spring to "inject" the linked objects ************* */ + /* ********** Used by Spring to "inject" the linked objects ************* */ - public IMdlForumDAO getMdlForumDAO() { - return mdlForumDAO; - } + public IMdlForumDAO getMdlForumDAO() { + return mdlForumDAO; + } - public void setMdlForumDAO(IMdlForumDAO mdlForumDAO) { - this.mdlForumDAO = mdlForumDAO; - } + public void setMdlForumDAO(IMdlForumDAO mdlForumDAO) { + this.mdlForumDAO = mdlForumDAO; + } - public IMdlForumConfigItemDAO getMdlForumConfigItemDAO() { - return mdlForumConfigItemDAO; - } + public IMdlForumConfigItemDAO getMdlForumConfigItemDAO() { + return mdlForumConfigItemDAO; + } - public void setMdlForumConfigItemDAO( - IMdlForumConfigItemDAO mdlForumConfigItemDAO) { - this.mdlForumConfigItemDAO = mdlForumConfigItemDAO; - } + public void setMdlForumConfigItemDAO(IMdlForumConfigItemDAO mdlForumConfigItemDAO) { + this.mdlForumConfigItemDAO = mdlForumConfigItemDAO; + } - public IToolContentHandler getMdlForumToolContentHandler() { - return mdlForumToolContentHandler; - } + public IToolContentHandler getMdlForumToolContentHandler() { + return mdlForumToolContentHandler; + } - public void setMdlForumToolContentHandler( - IToolContentHandler mdlForumToolContentHandler) { - this.mdlForumToolContentHandler = mdlForumToolContentHandler; - } + public void setMdlForumToolContentHandler(IToolContentHandler mdlForumToolContentHandler) { + this.mdlForumToolContentHandler = mdlForumToolContentHandler; + } - public IMdlForumSessionDAO getMdlForumSessionDAO() { - return mdlForumSessionDAO; - } + public IMdlForumSessionDAO getMdlForumSessionDAO() { + return mdlForumSessionDAO; + } - public void setMdlForumSessionDAO(IMdlForumSessionDAO sessionDAO) { - this.mdlForumSessionDAO = sessionDAO; - } + public void setMdlForumSessionDAO(IMdlForumSessionDAO sessionDAO) { + this.mdlForumSessionDAO = sessionDAO; + } - public ILamsToolService getToolService() { - return toolService; - } + public ILamsToolService getToolService() { + return toolService; + } - public void setToolService(ILamsToolService toolService) { - this.toolService = toolService; - } + public void setToolService(ILamsToolService toolService) { + this.toolService = toolService; + } - public IMdlForumUserDAO getMdlForumUserDAO() { - return mdlForumUserDAO; - } + public IMdlForumUserDAO getMdlForumUserDAO() { + return mdlForumUserDAO; + } - public void setMdlForumUserDAO(IMdlForumUserDAO userDAO) { - this.mdlForumUserDAO = userDAO; - } + public void setMdlForumUserDAO(IMdlForumUserDAO userDAO) { + this.mdlForumUserDAO = userDAO; + } - public ILearnerService getLearnerService() { - return learnerService; - } + public ILearnerService getLearnerService() { + return learnerService; + } - public void setLearnerService(ILearnerService learnerService) { - this.learnerService = learnerService; - } + public void setLearnerService(ILearnerService learnerService) { + this.learnerService = learnerService; + } - public IExportToolContentService getExportContentService() { - return exportContentService; - } + public IExportToolContentService getExportContentService() { + return exportContentService; + } - public void setExportContentService( - IExportToolContentService exportContentService) { - this.exportContentService = exportContentService; - } + public void setExportContentService(IExportToolContentService exportContentService) { + this.exportContentService = exportContentService; + } - public ICoreNotebookService getCoreNotebookService() { - return coreNotebookService; - } + public ICoreNotebookService getCoreNotebookService() { + return coreNotebookService; + } - public void setCoreNotebookService(ICoreNotebookService coreNotebookService) { - this.coreNotebookService = coreNotebookService; - } + public void setCoreNotebookService(ICoreNotebookService coreNotebookService) { + this.coreNotebookService = coreNotebookService; + } - public MdlForumOutputFactory getMdlForumOutputFactory() { - if (mdlForumOutputFactory == null) - { - mdlForumOutputFactory = new MdlForumOutputFactory(); - } - return mdlForumOutputFactory; + public MdlForumOutputFactory getMdlForumOutputFactory() { + if (mdlForumOutputFactory == null) { + mdlForumOutputFactory = new MdlForumOutputFactory(); } + return mdlForumOutputFactory; + } - public void setMdlForumOutputFactory( - MdlForumOutputFactory mdlForumOutputFactory) { - this.mdlForumOutputFactory = mdlForumOutputFactory; - } + public void setMdlForumOutputFactory(MdlForumOutputFactory mdlForumOutputFactory) { + this.mdlForumOutputFactory = mdlForumOutputFactory; + } - /** - * TODO: Use spring injection instead of hacking a context - * @return - */ - public IIntegrationService getIntegrationService() { - - if (integrationService==null) - { - String contexts[] = {"/org/lamsfoundation/lams/applicationContext.xml", - "/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml", - "/org/lamsfoundation/lams/toolApplicationContext.xml", - "/org/lamsfoundation/lams/integrationContext.xml", - "/org/lamsfoundation/lams/learning/learningApplicationContext.xml", - "/org/lamsfoundation/lams/contentrepository/applicationContext.xml", - "/org/lamsfoundation/lams/tool/mdfrum/mdlForumApplicationContext.xml", - "/org/lamsfoundation/lams/commonContext.xml"}; + /** + * TODO: Use spring injection instead of hacking a context + * + * @return + */ + public IIntegrationService getIntegrationService() { - ApplicationContext context = new ClassPathXmlApplicationContext(contexts); - - if ( context == null ) - throw new MdlForumException("Unable to access application context. Cannot create integration service object."); - - IIntegrationService service =(IIntegrationService)context.getBean("integrationService"); - return service; - } - else - { - return integrationService; - } - } + if (integrationService == null) { + String contexts[] = { "/org/lamsfoundation/lams/applicationContext.xml", + "/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml", + "/org/lamsfoundation/lams/toolApplicationContext.xml", + "/org/lamsfoundation/lams/integrationContext.xml", + "/org/lamsfoundation/lams/learning/learningApplicationContext.xml", + "/org/lamsfoundation/lams/contentrepository/applicationContext.xml", + "/org/lamsfoundation/lams/tool/mdfrum/mdlForumApplicationContext.xml", + "/org/lamsfoundation/lams/commonContext.xml" }; - public void setIntegrationService(IIntegrationService integrationService) { - this.integrationService = integrationService; + ApplicationContext context = new ClassPathXmlApplicationContext(contexts); + + if (context == null) + throw new MdlForumException( + "Unable to access application context. Cannot create integration service object."); + + IIntegrationService service = (IIntegrationService) context.getBean("integrationService"); + return service; + } else { + return integrationService; } + } + + public void setIntegrationService(IIntegrationService integrationService) { + this.integrationService = integrationService; + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/service/MdlForumServiceProxy.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/service/MdlForumServiceProxy.java (.../MdlForumServiceProxy.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/service/MdlForumServiceProxy.java (.../MdlForumServiceProxy.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -32,49 +32,45 @@ import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; - /** - *

This class act as the proxy between web layer and service layer. It is - * designed to decouple the presentation logic and business logic completely. - * In this way, the presentation tier will no longer be aware of the changes in + *

+ * This class act as the proxy between web layer and service layer. It is + * designed to decouple the presentation logic and business logic completely. In + * this way, the presentation tier will no longer be aware of the changes in * service layer. Therefore we can feel free to switch the business logic - * implementation.

+ * implementation. + *

*/ public class MdlForumServiceProxy { - public static final IMdlForumService getMdlForumService(ServletContext servletContext) - { - return (IMdlForumService)getMdlForumDomainService(servletContext); + public static final IMdlForumService getMdlForumService(ServletContext servletContext) { + return (IMdlForumService) getMdlForumDomainService(servletContext); } - - private static Object getMdlForumDomainService(ServletContext servletContext) - { - WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); - return wac.getBean("mdlForumService"); - } - - /* - * Return the mdlForum tool version of tool session manager implementation. - * It will delegate to the Spring helper method to retrieve the proper - * bean from Spring bean factory. - * @param servletContext the servletContext for current application - * @return noticeboard service object.*/ - public static final ToolSessionManager getMdlForumSessionManager(ServletContext servletContext) - { - return (ToolSessionManager)getMdlForumDomainService(servletContext); + + private static Object getMdlForumDomainService(ServletContext servletContext) { + WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); + return wac.getBean("mdlForumService"); } - - + /* + * Return the mdlForum tool version of tool session manager implementation. + * It will delegate to the Spring helper method to retrieve the proper + * bean from Spring bean factory. + * @param servletContext the servletContext for current application + * @return noticeboard service object.*/ + public static final ToolSessionManager getMdlForumSessionManager(ServletContext servletContext) { + return (ToolSessionManager) getMdlForumDomainService(servletContext); + } + + /* * Return the mdlForum tool version of tool content manager implementation. * It will delegate to the Spring helper method to retrieve the proper * bean from Spring bean factory. * @param servletContext the servletContext for current application * @return noticeboard service object. */ - public static final ToolContentManager getMdlForumContentManager(ServletContext servletContext) - { - return (ToolContentManager)getMdlForumDomainService(servletContext); + public static final ToolContentManager getMdlForumContentManager(ServletContext servletContext) { + return (ToolContentManager) getMdlForumDomainService(servletContext); } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/util/MdlForumConstants.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/util/MdlForumConstants.java (.../MdlForumConstants.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/util/MdlForumConstants.java (.../MdlForumConstants.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -25,26 +25,26 @@ package org.lamsfoundation.lams.tool.mdfrum.util; public interface MdlForumConstants { - public static final String TOOL_SIGNATURE = "mdfrum10"; - - // MdlForum session status - public static final Integer SESSION_NOT_STARTED = new Integer(0); - public static final Integer SESSION_IN_PROGRESS = new Integer(1); - public static final Integer SESSION_COMPLETED = new Integer(2); - - public static final String AUTHORING_DEFAULT_TAB = "1"; - public static final String DELETED_ATTACHMENT_LIST = "deletedAttachmentList"; - public static final String AUTH_SESSION_ID_COUNTER = "authoringSessionIdCounter"; - public static final String AUTH_SESSION_ID = "authoringSessionId"; - - public static final int MONITORING_SUMMARY_MAX_MESSAGES = 5; - - // Attribute names - public static final String ATTR_MESSAGE = "message"; - public static final String ATTR_SESSION_MAP = "sessionMap"; - - // Parameter names - public static final String PARAM_PARENT_PAGE = "parentPage"; - - static final String FILTER_REPLACE_TEXT = "***"; + public static final String TOOL_SIGNATURE = "mdfrum10"; + + // MdlForum session status + public static final Integer SESSION_NOT_STARTED = new Integer(0); + public static final Integer SESSION_IN_PROGRESS = new Integer(1); + public static final Integer SESSION_COMPLETED = new Integer(2); + + public static final String AUTHORING_DEFAULT_TAB = "1"; + public static final String DELETED_ATTACHMENT_LIST = "deletedAttachmentList"; + public static final String AUTH_SESSION_ID_COUNTER = "authoringSessionIdCounter"; + public static final String AUTH_SESSION_ID = "authoringSessionId"; + + public static final int MONITORING_SUMMARY_MAX_MESSAGES = 5; + + // Attribute names + public static final String ATTR_MESSAGE = "message"; + public static final String ATTR_SESSION_MAP = "sessionMap"; + + // Parameter names + public static final String PARAM_PARENT_PAGE = "parentPage"; + + static final String FILTER_REPLACE_TEXT = "***"; } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/util/MdlForumException.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/util/MdlForumException.java (.../MdlForumException.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/util/MdlForumException.java (.../MdlForumException.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -27,31 +27,31 @@ /** * * @author lfoxton - * + * */ public class MdlForumException extends RuntimeException { - /** - * - */ - private static final long serialVersionUID = -5518806968051758859L; + /** + * + */ + private static final long serialVersionUID = -5518806968051758859L; - public MdlForumException(String message) { - super(message); - } + public MdlForumException(String message) { + super(message); + } - public MdlForumException(String message, Throwable cause) { - super(message, cause); - } + public MdlForumException(String message, Throwable cause) { + super(message, cause); + } - public MdlForumException() { - super(); + public MdlForumException() { + super(); - } + } - public MdlForumException(Throwable cause) { - super(cause); + public MdlForumException(Throwable cause) { + super(cause); - } + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/util/MdlForumToolContentHandler.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/util/MdlForumToolContentHandler.java (.../MdlForumToolContentHandler.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/util/MdlForumToolContentHandler.java (.../MdlForumToolContentHandler.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -31,46 +31,46 @@ */ public class MdlForumToolContentHandler extends ToolContentHandler { - // TODO these three fields were changed to public, since accessor methods - // cannot be made static. Check if we can do this a better way. - public static String repositoryWorkspaceName = "mdlForumworkspace"; + // TODO these three fields were changed to public, since accessor methods + // cannot be made static. Check if we can do this a better way. + public static String repositoryWorkspaceName = "mdlForumworkspace"; - public static String repositoryUser = "mdlForum"; + public static String repositoryUser = "mdlForum"; - public static char[] repositoryId = { 'l', 'a', 'm', 's', '-', 'e', 'x' }; + public static char[] repositoryId = { 'l', 'a', 'm', 's', '-', 'e', 'x' }; - /** - * - */ - public MdlForumToolContentHandler() { - super(); - } + /** + * + */ + public MdlForumToolContentHandler() { + super(); + } - /* - * (non-Javadoc) - * - * @see org.lamsfoundation.lams.contentrepository.client.ToolContentHandler#getRepositoryWorkspaceName() - */ - public String getRepositoryWorkspaceName() { - return repositoryWorkspaceName; - } + /* + * (non-Javadoc) + * + * @see org.lamsfoundation.lams.contentrepository.client.ToolContentHandler#getRepositoryWorkspaceName() + */ + public String getRepositoryWorkspaceName() { + return repositoryWorkspaceName; + } - /* - * (non-Javadoc) - * - * @see org.lamsfoundation.lams.contentrepository.client.ToolContentHandler#getRepositoryUser() - */ - public String getRepositoryUser() { - return repositoryUser; - } + /* + * (non-Javadoc) + * + * @see org.lamsfoundation.lams.contentrepository.client.ToolContentHandler#getRepositoryUser() + */ + public String getRepositoryUser() { + return repositoryUser; + } - /* - * (non-Javadoc) - * - * @see org.lamsfoundation.lams.contentrepository.client.ToolContentHandler#getRepositoryId() - */ - public char[] getRepositoryId() { - return repositoryId; - } + /* + * (non-Javadoc) + * + * @see org.lamsfoundation.lams.contentrepository.client.ToolContentHandler#getRepositoryId() + */ + public char[] getRepositoryId() { + return repositoryId; + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/util/WebUtility.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/util/WebUtility.java (.../WebUtility.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/util/WebUtility.java (.../WebUtility.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -1,3 +1,25 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ package org.lamsfoundation.lams.tool.mdfrum.util; import java.io.DataInputStream; @@ -12,176 +34,146 @@ import java.net.URLConnection; import java.util.HashMap; import java.util.Map.Entry; -import java.util.Set; import org.apache.log4j.Logger; import org.lamsfoundation.lams.tool.exception.ToolException; -public class WebUtility -{ - static Logger logger = Logger.getLogger(WebUtility.class.getName()); - - /** - * Uploads a file for importing sequences - * Uses a multi-part http post to post the file as well as the user, course, and - * hash server-authentication strings. - * - * Some of the java multipart posting libraries clashed with existing jboss libraries - * So instead, the multipart post is put together manually - * - * @param f - * @param urlString - * @param timestamp - * @param extUsername - * @param extCourseId - * @param hash - * @return - * @throws IOException - */ - public static InputStream performMultipartPost( - File f, - String fileParamName, - String urlString, - HashMap params - ) - throws MalformedURLException, IOException - { - HttpURLConnection conn = null; - DataOutputStream dos = null; - DataInputStream inStream = null; - String lineEnd = "\r\n"; - String twoHyphens = "--"; - String boundary = "*****"; - int bytesRead, bytesAvailable, bufferSize; - byte[] buffer; - int maxBufferSize = 1*1024*1024; +public class WebUtility { + static Logger logger = Logger.getLogger(WebUtility.class.getName()); - //------------------ CLIENT REQUEST - FileInputStream fileInputStream = new FileInputStream( f ); - - // open a URL connection to the Servlet - URL url = new URL(urlString); - - // Open a HTTP connection to the URL - conn = (HttpURLConnection) url.openConnection(); - - // Allow Inputs - conn.setDoInput(true); - - // Allow Outputs - conn.setDoOutput(true); - - // Don't use a cached copy. - conn.setUseCaches(false); - - String httpRequest = ""; - for (Entry entry : params.entrySet()) - { - httpRequest += twoHyphens + boundary + lineEnd; - httpRequest += "Content-Disposition: form-data; name=\"" + entry.getKey() + "\";" + lineEnd; - httpRequest += lineEnd; - httpRequest += entry.getValue() + lineEnd; - } - httpRequest += twoHyphens + boundary + lineEnd; - httpRequest += "Content-Disposition: form-data; name=\"" +fileParamName+ "\";"+ " filename=\"" + f.getName() +"\"" + lineEnd; - httpRequest += lineEnd; - - - // Use a post method. - conn.setRequestMethod("POST"); - conn.setRequestProperty("Connection", "Keep-Alive"); - conn.setRequestProperty("Content-Length", new Long(f.length() + httpRequest.getBytes().length + 64).toString()); - logger.debug(f.length()); - logger.debug(httpRequest.getBytes().length); - logger.debug("" + f.length() + httpRequest.getBytes().length + 64); - logger.debug(httpRequest); - - conn.setRequestProperty("Content-Type", "multipart/form-data; boundary="+boundary); - - dos = new DataOutputStream( conn.getOutputStream() ); - dos.writeBytes(httpRequest); - // Put the parameters into the multipart post - /* - for (Entry entry : params.entrySet()) - { - - dos.writeBytes(twoHyphens + boundary + lineEnd); - dos.writeBytes("Content-Disposition: form-data; name=\"" + entry.getKey() + "\";" + lineEnd); - dos.writeBytes(entry.getValue()); - dos.writeBytes(lineEnd); - - } - - - // Write the file part into the post------------------------------- - dos.writeBytes(twoHyphens + boundary + lineEnd); - dos.writeBytes("Content-Disposition: form-data; name=\"" +fileParamName+ "\";"+ " filename=\"" + f.getName() +"\"" + lineEnd); - dos.writeBytes(lineEnd); - */ - - // create a buffer of maximum size - bytesAvailable = fileInputStream.available(); - bufferSize = Math.min(bytesAvailable, maxBufferSize); - buffer = new byte[bufferSize]; - - // read file and write it into form... - bytesRead = fileInputStream.read(buffer, 0, bufferSize); - while (bytesRead > 0) - { - dos.write(buffer, 0, bufferSize); - bytesAvailable = fileInputStream.available(); - bufferSize = Math.min(bytesAvailable, maxBufferSize); - bytesRead = fileInputStream.read(buffer, 0, bufferSize); - } - - // send multipart form data necessary after file data... - dos.writeBytes(lineEnd); - dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); - // Write the file part into the post------------------------------- - - // close streams - fileInputStream.close(); - dos.flush(); - dos.close(); - - return conn.getInputStream(); + /** + * Uploads a file for importing sequences Uses a multi-part http post to + * post the file as well as the user, course, and hash server-authentication + * strings. + * + * Some of the java multipart posting libraries clashed with existing jboss + * libraries So instead, the multipart post is put together manually + * + * @param f + * @param urlString + * @param timestamp + * @param extUsername + * @param extCourseId + * @param hash + * @return + * @throws IOException + */ + public static InputStream performMultipartPost(File f, String fileParamName, String urlString, + HashMap params) throws MalformedURLException, IOException { + HttpURLConnection conn = null; + DataOutputStream dos = null; + DataInputStream inStream = null; + String lineEnd = "\r\n"; + String twoHyphens = "--"; + String boundary = "*****"; + int bytesRead, bytesAvailable, bufferSize; + byte[] buffer; + int maxBufferSize = 1 * 1024 * 1024; + + //------------------ CLIENT REQUEST + FileInputStream fileInputStream = new FileInputStream(f); + + // open a URL connection to the Servlet + URL url = new URL(urlString); + + // Open a HTTP connection to the URL + conn = (HttpURLConnection) url.openConnection(); + + // Allow Inputs + conn.setDoInput(true); + + // Allow Outputs + conn.setDoOutput(true); + + // Don't use a cached copy. + conn.setUseCaches(false); + + String httpRequest = ""; + for (Entry entry : params.entrySet()) { + httpRequest += twoHyphens + boundary + lineEnd; + httpRequest += "Content-Disposition: form-data; name=\"" + entry.getKey() + "\";" + lineEnd; + httpRequest += lineEnd; + httpRequest += entry.getValue() + lineEnd; } - - public static InputStream getResponseInputStreamFromExternalServer(String urlStr, HashMap params) throws ToolException, IOException - { - if (!urlStr.endsWith("?")) - urlStr += "?"; - - for (Entry entry : params.entrySet()) - { - urlStr += "&" + entry.getKey() + "=" + entry.getValue(); - } - - logger.debug("Making request to external servlet: " + urlStr); - - URL url = new URL(urlStr); - URLConnection conn = url.openConnection(); - if (!(conn instanceof HttpURLConnection)) - { - logger.error("Fail to connect to external server though url: " + urlStr); - throw new ToolException("Fail to connect to external server though url: " + urlStr); - } - - HttpURLConnection httpConn = (HttpURLConnection) conn; - if (httpConn.getResponseCode() != HttpURLConnection.HTTP_OK) - { - logger.error("Fail to fetch data from external server, response code: " + httpConn.getResponseCode() + " Url: " + urlStr); - throw new ToolException("Fail to fetch data from external server, response code: " + httpConn.getResponseCode() + " Url: " + urlStr); - } - - InputStream is = url.openConnection().getInputStream(); - if (is == null) - { - logger.error("Fail to fetch data from external server, return InputStream null: " + urlStr); - throw new ToolException("Fail to fetch data from external server, return inputStream null: " + urlStr); - } - - return is; + httpRequest += twoHyphens + boundary + lineEnd; + httpRequest += "Content-Disposition: form-data; name=\"" + fileParamName + "\";" + " filename=\"" + f.getName() + + "\"" + lineEnd; + httpRequest += lineEnd; + + // Use a post method. + conn.setRequestMethod("POST"); + conn.setRequestProperty("Connection", "Keep-Alive"); + conn.setRequestProperty("Content-Length", new Long(f.length() + httpRequest.getBytes().length + 64).toString()); + logger.debug(f.length()); + logger.debug(httpRequest.getBytes().length); + logger.debug("" + f.length() + httpRequest.getBytes().length + 64); + logger.debug(httpRequest); + + conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); + + dos = new DataOutputStream(conn.getOutputStream()); + dos.writeBytes(httpRequest); + + // create a buffer of maximum size + bytesAvailable = fileInputStream.available(); + bufferSize = Math.min(bytesAvailable, maxBufferSize); + buffer = new byte[bufferSize]; + + // read file and write it into form... + bytesRead = fileInputStream.read(buffer, 0, bufferSize); + while (bytesRead > 0) { + dos.write(buffer, 0, bufferSize); + bytesAvailable = fileInputStream.available(); + bufferSize = Math.min(bytesAvailable, maxBufferSize); + bytesRead = fileInputStream.read(buffer, 0, bufferSize); } - + + // send multipart form data necessary after file data... + dos.writeBytes(lineEnd); + dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); + // Write the file part into the post------------------------------- + + // close streams + fileInputStream.close(); + dos.flush(); + dos.close(); + + return conn.getInputStream(); + } + + public static InputStream getResponseInputStreamFromExternalServer(String urlStr, HashMap params) + throws ToolException, IOException { + if (!urlStr.endsWith("?")) + urlStr += "?"; + + for (Entry entry : params.entrySet()) { + urlStr += "&" + entry.getKey() + "=" + entry.getValue(); + } + + logger.debug("Making request to external servlet: " + urlStr); + + URL url = new URL(urlStr); + URLConnection conn = url.openConnection(); + if (!(conn instanceof HttpURLConnection)) { + logger.error("Fail to connect to external server though url: " + urlStr); + throw new ToolException("Fail to connect to external server though url: " + urlStr); + } + + HttpURLConnection httpConn = (HttpURLConnection) conn; + if (httpConn.getResponseCode() != HttpURLConnection.HTTP_OK) { + logger.error("Fail to fetch data from external server, response code: " + httpConn.getResponseCode() + + " Url: " + urlStr); + throw new ToolException("Fail to fetch data from external server, response code: " + + httpConn.getResponseCode() + " Url: " + urlStr); + } + + InputStream is = url.openConnection().getInputStream(); + if (is == null) { + logger.error("Fail to fetch data from external server, return InputStream null: " + urlStr); + throw new ToolException("Fail to fetch data from external server, return inputStream null: " + urlStr); + } + + return is; + } + } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/AdminAction.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/AdminAction.java (.../AdminAction.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/AdminAction.java (.../AdminAction.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -14,6 +14,7 @@ import org.lamsfoundation.lams.tool.mdfrum.web.forms.AdminForm; import org.lamsfoundation.lams.tool.service.ILamsToolService; import org.lamsfoundation.lams.web.action.LamsDispatchAction; + /** * @author * @version @@ -23,75 +24,71 @@ * * @struts.action-forward name="config" path="/pages/admin/config.jsp" */ -public class AdminAction extends LamsDispatchAction -{ - public IMdlForumService mdlForumService; - public ILamsToolService toolService; - +public class AdminAction extends LamsDispatchAction { + public IMdlForumService mdlForumService; + public ILamsToolService toolService; - - public ActionForward unspecified(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response) - { - // set up mdlForumService - if (mdlForumService == null) { - mdlForumService = MdlForumServiceProxy.getMdlForumService(this.getServlet().getServletContext()); - } - - AdminForm adminForm = (AdminForm)form; - - if (toolService == null) {toolService = mdlForumService.getToolService();} - Tool tool = toolService.getPersistToolBySignature(MdlForumConstants.TOOL_SIGNATURE); - - MdlForumConfigItem toolAdpServlet = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET); - if (toolAdpServlet != null) - adminForm.setToolAdapterServlet(toolAdpServlet.getConfigValue()); - - MdlForumConfigItem extServerConfig = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_SERVER_URL); - if (extServerConfig != null) - adminForm.setExtServerUrl(extServerConfig.getConfigValue()); - - if (tool != null && tool.getExtLmsId() != null) - adminForm.setServerIdMapping(tool.getExtLmsId()); - - - request.setAttribute("error", false); - return mapping.findForward("config"); + public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + // set up mdlForumService + if (mdlForumService == null) { + mdlForumService = MdlForumServiceProxy.getMdlForumService(this.getServlet().getServletContext()); } - - public ActionForward saveContent(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response) - { - AdminForm adminForm = (AdminForm)form; - - if (adminForm.getToolAdapterServlet() != null && !adminForm.getToolAdapterServlet().equals("") && - adminForm.getServerIdMapping() != null && !adminForm.getServerIdMapping().equals("") && - adminForm.getExtServerUrl() != null && !adminForm.getExtServerUrl().equals("") - ) - { - // set up mdlForumService - if (mdlForumService == null) { - mdlForumService = MdlForumServiceProxy.getMdlForumService(this.getServlet().getServletContext()); - } - - MdlForumConfigItem servletConfig = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET); - servletConfig.setConfigValue(adminForm.getToolAdapterServlet()); - mdlForumService.saveOrUpdateMdlForumConfigItem(servletConfig); - - MdlForumConfigItem extServerConfig= mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_SERVER_URL); - extServerConfig.setConfigValue(adminForm.getExtServerUrl()); - mdlForumService.saveOrUpdateMdlForumConfigItem(extServerConfig); - - if (toolService == null) {toolService = mdlForumService.getToolService();} - Tool tool = toolService.getPersistToolBySignature(MdlForumConstants.TOOL_SIGNATURE); - tool.setExtLmsId(adminForm.getServerIdMapping()); - toolService.saveOrUpdateTool(tool); - return mapping.findForward("config"); - } - else - { - request.setAttribute("error", true); - return mapping.findForward("config"); - } + + AdminForm adminForm = (AdminForm) form; + + if (toolService == null) { + toolService = mdlForumService.getToolService(); } + Tool tool = toolService.getPersistToolBySignature(MdlForumConstants.TOOL_SIGNATURE); + + MdlForumConfigItem toolAdpServlet = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET); + if (toolAdpServlet != null) + adminForm.setToolAdapterServlet(toolAdpServlet.getConfigValue()); + + MdlForumConfigItem extServerConfig = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_SERVER_URL); + if (extServerConfig != null) + adminForm.setExtServerUrl(extServerConfig.getConfigValue()); + + if (tool != null && tool.getExtLmsId() != null) + adminForm.setServerIdMapping(tool.getExtLmsId()); + + request.setAttribute("error", false); + return mapping.findForward("config"); + } + + public ActionForward saveContent(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + AdminForm adminForm = (AdminForm) form; + + if (adminForm.getToolAdapterServlet() != null && !adminForm.getToolAdapterServlet().equals("") + && adminForm.getServerIdMapping() != null && !adminForm.getServerIdMapping().equals("") + && adminForm.getExtServerUrl() != null && !adminForm.getExtServerUrl().equals("")) { + // set up mdlForumService + if (mdlForumService == null) { + mdlForumService = MdlForumServiceProxy.getMdlForumService(this.getServlet().getServletContext()); + } + + MdlForumConfigItem servletConfig = mdlForumService + .getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET); + servletConfig.setConfigValue(adminForm.getToolAdapterServlet()); + mdlForumService.saveOrUpdateMdlForumConfigItem(servletConfig); + + MdlForumConfigItem extServerConfig = mdlForumService + .getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_SERVER_URL); + extServerConfig.setConfigValue(adminForm.getExtServerUrl()); + mdlForumService.saveOrUpdateMdlForumConfigItem(extServerConfig); + + if (toolService == null) { + toolService = mdlForumService.getToolService(); + } + Tool tool = toolService.getPersistToolBySignature(MdlForumConstants.TOOL_SIGNATURE); + tool.setExtLmsId(adminForm.getServerIdMapping()); + toolService.saveOrUpdateTool(tool); + return mapping.findForward("config"); + } else { + request.setAttribute("error", true); + return mapping.findForward("config"); + } + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/AuthoringAction.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -47,6 +47,7 @@ import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; import org.lamsfoundation.lams.web.util.AttributeNames; + /** * @author * @version @@ -59,179 +60,152 @@ */ public class AuthoringAction extends LamsDispatchAction { - private static Logger logger = Logger.getLogger(AuthoringAction.class); + private static Logger logger = Logger.getLogger(AuthoringAction.class); - public IMdlForumService mdlForumService; - - public static final String RELATIVE_MOODLE_AUTHOR_URL = "/course/modedit-lams.php?"; + public IMdlForumService mdlForumService; - // Authoring SessionMap key names - private static final String KEY_TOOL_CONTENT_ID = "toolContentID"; - - private static final String KEY_EXTERNAL_TOOL_CONTENT_ID = "extToolContentID"; + public static final String RELATIVE_MOODLE_AUTHOR_URL = "/course/modedit-lams.php?"; - private static final String KEY_MODE = "mode"; + // Authoring SessionMap key names + private static final String KEY_TOOL_CONTENT_ID = "toolContentID"; - private static final String TOOL_APP_URL = Configuration.get(ConfigurationKeys.SERVER_URL) + "/tool/" + MdlForumConstants.TOOL_SIGNATURE + "/"; - - - public IIntegrationService integrationService; - - /** - * Default method when no dispatch parameter is specified. It is expected - * that the parameter toolContentID will be passed in. This - * will be used to retrieve content for this tool. - * - */ - protected ActionForward unspecified(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response) { + private static final String KEY_EXTERNAL_TOOL_CONTENT_ID = "extToolContentID"; - // Extract toolContentID, contentFolderID and ToolAccessMode from parameters. - Long toolContentID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_TOOL_CONTENT_ID)); - String contentFolderID = WebUtil.readStrParam(request,AttributeNames.PARAM_CONTENT_FOLDER_ID); - ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, KEY_MODE,true); + private static final String KEY_MODE = "mode"; - // set up mdlForumService - if (mdlForumService == null) { - mdlForumService = MdlForumServiceProxy.getMdlForumService(this.getServlet().getServletContext()); - } - - // retrieving MdlForum with given toolContentID - // if is a new instance, customCSV should be passed, and used for the course url, otherwise the saved value should be used - MdlForum mdlForum = mdlForumService.getMdlForumByContentId(toolContentID); - - // Getting the custom csv from the request - String customCSV = WebUtil.readStrParam(request, "customCSV", true); - String userFromCSV = null; - String courseFromCSV = null; - String sectionFromCSV = null; - if(customCSV==null && mdlForum==null) - { - logger.error("CustomCSV required if mdlForum is null"); - throw new ToolException("CustomCSV required if mdlForum is null"); - } - else if (customCSV!=null) - { - String splitCSV[] = customCSV.split(","); - if (splitCSV.length != 3) - { - logger.error("mdlForum tool customCSV not in required (user,course,courseURL) form: " + customCSV); - throw new ToolException("mdlForum tool cusomCSV not in required (user,course,courseURL) form: " + customCSV); - } - else - { - userFromCSV = splitCSV[0]; - courseFromCSV = splitCSV[1]; - sectionFromCSV = splitCSV[2]; - } - } - - if (mdlForum == null) - { - mdlForum = mdlForumService.copyDefaultContent(toolContentID); - mdlForum.setExtUsername(userFromCSV); - mdlForum.setExtCourseId(courseFromCSV); - mdlForum.setExtSection(sectionFromCSV); - mdlForum.setCreateDate(new Date()); - } - + private static final String TOOL_APP_URL = Configuration.get(ConfigurationKeys.SERVER_URL) + "/tool/" + + MdlForumConstants.TOOL_SIGNATURE + "/"; - if (mode != null && mode.isTeacher()) { - // Set the defineLater flag so that learners cannot use content - // while we - // are editing. This flag is released when updateContent is called. - mdlForum.setDefineLater(true); - mdlForumService.saveOrUpdateMdlForum(mdlForum); - } - - // if no external content id, open the mdl author page, otherwise, open the edit page - try{ - - // If the mdlForum has a saved course url, use it, otherwise use the one giving in the request in customCSV - //String courseUrlToBeUsed = (mdlForum.getExtCourseUrl() != null) ? mdlForum.getExtCourseUrl() : courseUrlFromCSV; - - String responseUrl = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_SERVER_URL).getConfigValue(); - responseUrl += RELATIVE_MOODLE_AUTHOR_URL; - String returnUpdateUrl = URLEncoder.encode( - TOOL_APP_URL + "/authoring.do?dispatch=updateContent" + "&" - +AttributeNames.PARAM_TOOL_CONTENT_ID + "=" + toolContentID.toString(), "UTF8" - ); - responseUrl += "&lamsUpdateURL=" + returnUpdateUrl; - - - if (mdlForum.getExtSection() != null) - { - responseUrl += "§ion=" + mdlForum.getExtSection(); - } - else - { - responseUrl += "§ion=" + sectionFromCSV; - } - - if (mdlForum.getExtToolContentId()!=null) - { - responseUrl += "&update=" + mdlForum.getExtToolContentId().toString(); - } - else - { - responseUrl += "&add=forum"; - } - - if (mdlForum.getExtCourseId() != null) - { - responseUrl +="&course=" + mdlForum.getExtCourseId(); - } - else - { - responseUrl +="&course=" + courseFromCSV; - } - - log.debug("Sending to moodle forum edit page: " + responseUrl); - - response.sendRedirect(responseUrl); - } - catch (Exception e) - { - log.error("Could not redirect to mdl forum authoring", e); - } - return null; + public IIntegrationService integrationService; + + /** + * Default method when no dispatch parameter is specified. It is expected + * that the parameter toolContentID will be passed in. This + * will be used to retrieve content for this tool. + * + */ + protected ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + // Extract toolContentID, contentFolderID and ToolAccessMode from parameters. + Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, KEY_MODE, true); + + // set up mdlForumService + if (mdlForumService == null) { + mdlForumService = MdlForumServiceProxy.getMdlForumService(this.getServlet().getServletContext()); } - public ActionForward updateContent(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response) { - // TODO need error checking. + // retrieving MdlForum with given toolContentID + // if is a new instance, customCSV should be passed, and used for the course url, otherwise the saved value should be used + MdlForum mdlForum = mdlForumService.getMdlForumByContentId(toolContentID); - Long toolContentID = new Long(WebUtil.readLongParam(request,KEY_TOOL_CONTENT_ID)); - Long externalToolContentID = new Long(WebUtil.readLongParam(request,KEY_EXTERNAL_TOOL_CONTENT_ID)); - //String sessionMapID = WebUtil.readStrParam(request,"sessionMapID"); - - // get mdlForum content. - MdlForum mdlForum = mdlForumService.getMdlForumByContentId(toolContentID); - mdlForum.setExtToolContentId(externalToolContentID); - mdlForum.setUpdateDate(new Date()); - mdlForum.setDefineLater(false); - mdlForumService.saveOrUpdateMdlForum(mdlForum); - - String redirectString = Configuration.get(ConfigurationKeys.SERVER_URL) - + "/tool/" + MdlForumConstants.TOOL_SIGNATURE + "/clearsession.do" - + "?action=confirm&mode=author" - + "&signature=" + MdlForumConstants.TOOL_SIGNATURE - + "&toolContentID=" + toolContentID.toString() - + "&defineLater=no" - + "&customiseSessionID=" - + "&contentFolderID=0"; + // Getting the custom csv from the request + String customCSV = WebUtil.readStrParam(request, "customCSV", true); + String userFromCSV = null; + String courseFromCSV = null; + String sectionFromCSV = null; + if (customCSV == null && mdlForum == null) { + logger.error("CustomCSV required if mdlForum is null"); + throw new ToolException("CustomCSV required if mdlForum is null"); + } else if (customCSV != null) { + String splitCSV[] = customCSV.split(","); + if (splitCSV.length != 3) { + logger.error("mdlForum tool customCSV not in required (user,course,courseURL) form: " + customCSV); + throw new ToolException("mdlForum tool cusomCSV not in required (user,course,courseURL) form: " + + customCSV); + } else { + userFromCSV = splitCSV[0]; + courseFromCSV = splitCSV[1]; + sectionFromCSV = splitCSV[2]; + } + } - log.debug("Manual redirect for MdlForum to: " + redirectString); - - try - { - response.sendRedirect(redirectString); - } - catch(Exception e) - { - log.error("Could not redirect to clear session action for MdlForum", e); - } - - return null; + if (mdlForum == null) { + mdlForum = mdlForumService.copyDefaultContent(toolContentID); + mdlForum.setExtUsername(userFromCSV); + mdlForum.setExtCourseId(courseFromCSV); + mdlForum.setExtSection(sectionFromCSV); + mdlForum.setCreateDate(new Date()); } + + if (mode != null && mode.isTeacher()) { + // Set the defineLater flag so that learners cannot use content + // while we + // are editing. This flag is released when updateContent is called. + mdlForum.setDefineLater(true); + mdlForumService.saveOrUpdateMdlForum(mdlForum); + } + + // if no external content id, open the mdl author page, otherwise, open the edit page + try { + + // If the mdlForum has a saved course url, use it, otherwise use the one giving in the request in customCSV + //String courseUrlToBeUsed = (mdlForum.getExtCourseUrl() != null) ? mdlForum.getExtCourseUrl() : courseUrlFromCSV; + + String responseUrl = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_SERVER_URL) + .getConfigValue(); + responseUrl += RELATIVE_MOODLE_AUTHOR_URL; + String returnUpdateUrl = URLEncoder.encode(TOOL_APP_URL + "/authoring.do?dispatch=updateContent" + "&" + + AttributeNames.PARAM_TOOL_CONTENT_ID + "=" + toolContentID.toString(), "UTF8"); + responseUrl += "&lamsUpdateURL=" + returnUpdateUrl; + + if (mdlForum.getExtSection() != null) { + responseUrl += "§ion=" + mdlForum.getExtSection(); + } else { + responseUrl += "§ion=" + sectionFromCSV; + } + + if (mdlForum.getExtToolContentId() != null) { + responseUrl += "&update=" + mdlForum.getExtToolContentId().toString(); + } else { + responseUrl += "&add=forum"; + } + + if (mdlForum.getExtCourseId() != null) { + responseUrl += "&course=" + mdlForum.getExtCourseId(); + } else { + responseUrl += "&course=" + courseFromCSV; + } + + log.debug("Sending to moodle forum edit page: " + responseUrl); + + response.sendRedirect(responseUrl); + } catch (Exception e) { + log.error("Could not redirect to mdl forum authoring", e); + } + return null; + } + + public ActionForward updateContent(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + // TODO need error checking. + + Long toolContentID = new Long(WebUtil.readLongParam(request, KEY_TOOL_CONTENT_ID)); + Long externalToolContentID = new Long(WebUtil.readLongParam(request, KEY_EXTERNAL_TOOL_CONTENT_ID)); + //String sessionMapID = WebUtil.readStrParam(request,"sessionMapID"); + + // get mdlForum content. + MdlForum mdlForum = mdlForumService.getMdlForumByContentId(toolContentID); + mdlForum.setExtToolContentId(externalToolContentID); + mdlForum.setUpdateDate(new Date()); + mdlForum.setDefineLater(false); + mdlForumService.saveOrUpdateMdlForum(mdlForum); + + String redirectString = Configuration.get(ConfigurationKeys.SERVER_URL) + "/tool/" + + MdlForumConstants.TOOL_SIGNATURE + "/clearsession.do" + "?action=confirm&mode=author" + "&signature=" + + MdlForumConstants.TOOL_SIGNATURE + "&toolContentID=" + toolContentID.toString() + "&defineLater=no" + + "&customiseSessionID=" + "&contentFolderID=0"; + + log.debug("Manual redirect for MdlForum to: " + redirectString); + + try { + response.sendRedirect(redirectString); + } catch (Exception e) { + log.error("Could not redirect to clear session action for MdlForum", e); + } + + return null; + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/ClearSessionAction.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/ClearSessionAction.java (.../ClearSessionAction.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/ClearSessionAction.java (.../ClearSessionAction.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -30,22 +30,22 @@ import org.lamsfoundation.lams.tool.ToolAccessMode; /** - * This class give a chance to clear HttpSession when user save/close authoring page. - * @author Steve.Ni - * ----------------XDoclet Tags-------------------- + * This class give a chance to clear HttpSession when user save/close authoring + * page. * - * @struts:action path="/clearsession" validate="false" - * + * @author lfoxton + * + * @struts:action path="/clearsession" validate="false" + * * @version $Revision$ */ public class ClearSessionAction extends LamsAuthoringFinishAction { - @Override - public void clearSession(String customiseSessionID,HttpSession session, ToolAccessMode mode) { - if(mode.isAuthor()){ - session.removeAttribute(customiseSessionID); - } + @Override + public void clearSession(String customiseSessionID, HttpSession session, ToolAccessMode mode) { + if (mode.isAuthor()) { + session.removeAttribute(customiseSessionID); } + } - } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/LearningAction.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/LearningAction.java (.../LearningAction.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/LearningAction.java (.../LearningAction.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -58,148 +58,131 @@ * @author * @version * - * @struts.action path="/learning" parameter="dispatch" scope="request" name="learningForm" + * @struts.action path="/learning" parameter="dispatch" scope="request" + * name="learningForm" * @struts.action-forward name="mdlForum" path="tiles:/learning/main" * @struts.action-forward name="runOffline" path="tiles:/learning/runOffline" * @struts.action-forward name="defineLater" path="tiles:/learning/defineLater" */ public class LearningAction extends LamsDispatchAction { - private static Logger log = Logger.getLogger(LearningAction.class); + private static Logger log = Logger.getLogger(LearningAction.class); - private static final boolean MODE_OPTIONAL = false; - - private static final String TOOL_APP_URL = Configuration.get(ConfigurationKeys.SERVER_URL) + "/tool/" + MdlForumConstants.TOOL_SIGNATURE + "/"; + private static final boolean MODE_OPTIONAL = false; - public static final String RELATIVE_LEARNER_URL = "/mod/forum/view.php?"; - - private IMdlForumService mdlForumService; + private static final String TOOL_APP_URL = Configuration.get(ConfigurationKeys.SERVER_URL) + "/tool/" + + MdlForumConstants.TOOL_SIGNATURE + "/"; - public ActionForward unspecified(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response) - throws Exception { + public static final String RELATIVE_LEARNER_URL = "/mod/forum/view.php?"; - //LearningForm learningForm = (LearningForm) form; + private IMdlForumService mdlForumService; - // 'toolSessionID' and 'mode' paramters are expected to be present. - // TODO need to catch exceptions and handle errors. - //ToolAccessMode mode = WebUtil.readToolAccessModeParam(request,AttributeNames.PARAM_MODE, MODE_OPTIONAL); + public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { - Long toolSessionID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); + Long toolSessionID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); - // set up mdlForumService - if (mdlForumService == null) { - mdlForumService = MdlForumServiceProxy.getMdlForumService(this.getServlet().getServletContext()); - } + // set up mdlForumService + if (mdlForumService == null) { + mdlForumService = MdlForumServiceProxy.getMdlForumService(this.getServlet().getServletContext()); + } - // Retrieve the session and content. - MdlForumSession mdlForumSession = mdlForumService.getSessionBySessionId(toolSessionID); - if (mdlForumSession == null) { - throw new MdlForumException("Cannot retreive session with toolSessionID: "+ toolSessionID); - } + // Retrieve the session and content. + MdlForumSession mdlForumSession = mdlForumService.getSessionBySessionId(toolSessionID); + if (mdlForumSession == null) { + throw new MdlForumException("Cannot retreive session with toolSessionID: " + toolSessionID); + } - MdlForum mdlForum = mdlForumSession.getMdlForum(); + MdlForum mdlForum = mdlForumSession.getMdlForum(); - // check defineLater - if (mdlForum.isDefineLater()) { - return mapping.findForward("defineLater"); - } + // check defineLater + if (mdlForum.isDefineLater()) { + return mapping.findForward("defineLater"); + } - MdlForumDTO mdlForumDTO = new MdlForumDTO(); - request.setAttribute("mdlForumDTO", mdlForumDTO); + MdlForumDTO mdlForumDTO = new MdlForumDTO(); + request.setAttribute("mdlForumDTO", mdlForumDTO); - // Set the content in use flag. - if (!mdlForum.isContentInUse()) { - mdlForum.setContentInUse(new Boolean(true)); - mdlForumService.saveOrUpdateMdlForum(mdlForum); - } + // Set the content in use flag. + if (!mdlForum.isContentInUse()) { + mdlForum.setContentInUse(new Boolean(true)); + mdlForumService.saveOrUpdateMdlForum(mdlForum); + } - // check runOffline - if (mdlForum.isRunOffline()) { - return mapping.findForward("runOffline"); - } - - if (mdlForum.getExtToolContentId()!=null) - { - try{ - String responseUrl = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_SERVER_URL).getConfigValue(); - responseUrl += RELATIVE_LEARNER_URL; - - String returnUrl = TOOL_APP_URL + "learning.do?" - + AttributeNames.PARAM_TOOL_SESSION_ID + "=" + toolSessionID.toString() - + "&dispatch=finishActivity"; - - returnUrl = URLEncoder.encode(returnUrl, "UTF8"); - - responseUrl += "&id=" + mdlForumSession.getExtSessionId() - + "&returnUrl=" + returnUrl; - - log.debug("Redirecting for mdl forum learner: " + responseUrl); - response.sendRedirect(responseUrl); - } - catch (Exception e) - { - log.error("Could not redirect to mdl forum authoring", e); - } - } - else - { - throw new MdlForumException ("External content id null for learner"); - } - return null; + // check runOffline + if (mdlForum.isRunOffline()) { + return mapping.findForward("runOffline"); } - private MdlForumUser getCurrentUser(Long toolSessionId) { - UserDTO user = (UserDTO) SessionManager.getSession().getAttribute( - AttributeNames.USER); + if (mdlForum.getExtToolContentId() != null) { + try { + String responseUrl = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_SERVER_URL) + .getConfigValue(); + responseUrl += RELATIVE_LEARNER_URL; - // attempt to retrieve user using userId and toolSessionId - MdlForumUser mdlForumUser = mdlForumService - .getUserByUserIdAndSessionId(new Long(user.getUserID() - .intValue()), toolSessionId); + String returnUrl = TOOL_APP_URL + "learning.do?" + AttributeNames.PARAM_TOOL_SESSION_ID + "=" + + toolSessionID.toString() + "&dispatch=finishActivity"; - if (mdlForumUser == null) { - MdlForumSession mdlForumSession = mdlForumService - .getSessionBySessionId(toolSessionId); - mdlForumUser = mdlForumService.createMdlForumUser(user, - mdlForumSession); - } + returnUrl = URLEncoder.encode(returnUrl, "UTF8"); - return mdlForumUser; + responseUrl += "&id=" + mdlForumSession.getExtSessionId() + "&returnUrl=" + returnUrl; + + log.debug("Redirecting for mdl forum learner: " + responseUrl); + response.sendRedirect(responseUrl); + } catch (Exception e) { + log.error("Could not redirect to mdl forum authoring", e); + } + } else { + throw new MdlForumException("External content id null for learner"); } + return null; + } - public ActionForward finishActivity(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response) { + private MdlForumUser getCurrentUser(Long toolSessionId) { + UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); - Long toolSessionID = WebUtil.readLongParam(request, "toolSessionID"); + // attempt to retrieve user using userId and toolSessionId + MdlForumUser mdlForumUser = mdlForumService.getUserByUserIdAndSessionId(new Long(user.getUserID().intValue()), + toolSessionId); - MdlForumUser mdlForumUser = getCurrentUser(toolSessionID); + if (mdlForumUser == null) { + MdlForumSession mdlForumSession = mdlForumService.getSessionBySessionId(toolSessionId); + mdlForumUser = mdlForumService.createMdlForumUser(user, mdlForumSession); + } - if (mdlForumUser != null) { - mdlForumUser.setFinishedActivity(true); - mdlForumService.saveOrUpdateMdlForumUser(mdlForumUser); - } else { - log.error("finishActivity(): couldn't find MdlForumUser with id: " - + mdlForumUser.getUserId() + "and toolSessionID: " - + toolSessionID); - } + return mdlForumUser; + } - ToolSessionManager sessionMgrService = MdlForumServiceProxy - .getMdlForumSessionManager(getServlet().getServletContext()); + public ActionForward finishActivity(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { - String nextActivityUrl; - try { - nextActivityUrl = sessionMgrService.leaveToolSession(toolSessionID, - mdlForumUser.getUserId()); - response.sendRedirect(nextActivityUrl); - } catch (DataMissingException e) { - throw new MdlForumException(e); - } catch (ToolException e) { - throw new MdlForumException(e); - } catch (IOException e) { - throw new MdlForumException(e); - } + Long toolSessionID = WebUtil.readLongParam(request, "toolSessionID"); - return null; // TODO need to return proper page. + MdlForumUser mdlForumUser = getCurrentUser(toolSessionID); + + if (mdlForumUser != null) { + mdlForumUser.setFinishedActivity(true); + mdlForumService.saveOrUpdateMdlForumUser(mdlForumUser); + } else { + log.error("finishActivity(): couldn't find MdlForumUser with id: " + mdlForumUser.getUserId() + + "and toolSessionID: " + toolSessionID); } + + ToolSessionManager sessionMgrService = MdlForumServiceProxy.getMdlForumSessionManager(getServlet() + .getServletContext()); + + String nextActivityUrl; + try { + nextActivityUrl = sessionMgrService.leaveToolSession(toolSessionID, mdlForumUser.getUserId()); + response.sendRedirect(nextActivityUrl); + } catch (DataMissingException e) { + throw new MdlForumException(e); + } catch (ToolException e) { + throw new MdlForumException(e); + } catch (IOException e) { + throw new MdlForumException(e); + } + + return null; // TODO need to return proper page. + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/MonitoringAction.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -51,75 +51,72 @@ * @author * @version * - * @struts.action path="/monitoring" parameter="dispatch" scope="request" name="monitoringForm" validate="false" + * @struts.action path="/monitoring" parameter="dispatch" scope="request" + * name="monitoringForm" validate="false" * * @struts.action-forward name="success" path="tiles:/monitoring/main" * */ public class MonitoringAction extends LamsDispatchAction { - private static Logger log = Logger.getLogger(MonitoringAction.class); - - private static final String TOOL_APP_URL = Configuration.get(ConfigurationKeys.SERVER_URL) + "/tool/" + MdlForumConstants.TOOL_SIGNATURE + "/"; + private static Logger log = Logger.getLogger(MonitoringAction.class); - public static final String RELATIVE_MONITOR_URL = "/mod/forum/view.php?"; + private static final String TOOL_APP_URL = Configuration.get(ConfigurationKeys.SERVER_URL) + "/tool/" + + MdlForumConstants.TOOL_SIGNATURE + "/"; - public IMdlForumService mdlForumService; + public static final String RELATIVE_MONITOR_URL = "/mod/forum/view.php?"; - public ActionForward unspecified(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response) { + public IMdlForumService mdlForumService; - setupService(); + public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { - Long toolContentID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_TOOL_CONTENT_ID)); - - String contentFolderID = WebUtil.readStrParam(request,AttributeNames.PARAM_CONTENT_FOLDER_ID); - - MdlForum mdlForum = mdlForumService.getMdlForumByContentId(toolContentID); + setupService(); - - if (mdlForum == null) { - // TODO error page. - } + Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); - MdlForumDTO mdlForumDT0 = new MdlForumDTO(mdlForum); + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); - Long currentTab = WebUtil.readLongParam(request, AttributeNames.PARAM_CURRENT_TAB,true); - mdlForumDT0.setCurrentTab(currentTab); - - - for (MdlForumSessionDTO sessionDTO: mdlForumDT0.getSessionDTOs()) - { - try { - String responseUrl = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_SERVER_URL).getConfigValue(); - responseUrl += RELATIVE_MONITOR_URL; + MdlForum mdlForum = mdlForumService.getMdlForumByContentId(toolContentID); - String returnUrl = TOOL_APP_URL + "learning.do?" - + AttributeNames.PARAM_TOOL_SESSION_ID + "=" + sessionDTO.getSessionID().toString() - + "&dispatch=finishActivity"; - returnUrl = URLEncoder.encode(returnUrl, "UTF8"); - - responseUrl += "&id=" + sessionDTO.getExtSessionID() - + "&returnUrl=" + returnUrl; - - sessionDTO.setRunTimeUrl(responseUrl); - } catch (UnsupportedEncodingException e) { - log.error(e); - } - } - - request.setAttribute("mdlForumDTO", mdlForumDT0); - request.setAttribute("contentFolderID", contentFolderID); - return mapping.findForward("success"); + if (mdlForum == null) { + // TODO error page. } - - /** - * set up mdlForumService - */ - private void setupService() { - if (mdlForumService == null) { - mdlForumService = MdlForumServiceProxy.getMdlForumService(this - .getServlet().getServletContext()); - } + + MdlForumDTO mdlForumDT0 = new MdlForumDTO(mdlForum); + + Long currentTab = WebUtil.readLongParam(request, AttributeNames.PARAM_CURRENT_TAB, true); + mdlForumDT0.setCurrentTab(currentTab); + + for (MdlForumSessionDTO sessionDTO : mdlForumDT0.getSessionDTOs()) { + try { + String responseUrl = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_SERVER_URL) + .getConfigValue(); + responseUrl += RELATIVE_MONITOR_URL; + + String returnUrl = TOOL_APP_URL + "learning.do?" + AttributeNames.PARAM_TOOL_SESSION_ID + "=" + + sessionDTO.getSessionID().toString() + "&dispatch=finishActivity"; + returnUrl = URLEncoder.encode(returnUrl, "UTF8"); + + responseUrl += "&id=" + sessionDTO.getExtSessionID() + "&returnUrl=" + returnUrl; + + sessionDTO.setRunTimeUrl(responseUrl); + } catch (UnsupportedEncodingException e) { + log.error(e); + } } + + request.setAttribute("mdlForumDTO", mdlForumDT0); + request.setAttribute("contentFolderID", contentFolderID); + return mapping.findForward("success"); + } + + /** + * set up mdlForumService + */ + private void setupService() { + if (mdlForumService == null) { + mdlForumService = MdlForumServiceProxy.getMdlForumService(this.getServlet().getServletContext()); + } + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/forms/AdminForm.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/forms/AdminForm.java (.../AdminForm.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/forms/AdminForm.java (.../AdminForm.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -11,46 +11,45 @@ /** * @struts.form name="mdfrum10AdminForm" */ -public class AdminForm extends ActionForm -{ - private static final long serialVersionUID = 8872637862875198L; - - String toolAdapterServlet; - String extServerUrl; - String serverIdMapping; - - @Override - public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) { - ActionErrors ac = new ActionErrors(); - ac.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("this is an error")); - return ac; - } +public class AdminForm extends ActionForm { + private static final long serialVersionUID = 8872637862875198L; - public String getToolAdapterServlet() { - return toolAdapterServlet; - } + String toolAdapterServlet; + String extServerUrl; + String serverIdMapping; - public void setToolAdapterServlet(String toolAdapterServlet) { - this.toolAdapterServlet = toolAdapterServlet; - } + @Override + public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) { + ActionErrors ac = new ActionErrors(); + ac.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("this is an error")); + return ac; + } - public String getServerIdMapping() { - return serverIdMapping; - } + public String getToolAdapterServlet() { + return toolAdapterServlet; + } - public void setServerIdMapping(String serverIdMapping) { - this.serverIdMapping = serverIdMapping; - } + public void setToolAdapterServlet(String toolAdapterServlet) { + this.toolAdapterServlet = toolAdapterServlet; + } - public String getExtServerUrl() { - return extServerUrl; - } + public String getServerIdMapping() { + return serverIdMapping; + } - public void setExtServerUrl(String extServerUrl) { - this.extServerUrl = extServerUrl; - } + public void setServerIdMapping(String serverIdMapping) { + this.serverIdMapping = serverIdMapping; + } - public static long getSerialVersionUID() { - return serialVersionUID; - } + public String getExtServerUrl() { + return extServerUrl; + } + + public void setExtServerUrl(String extServerUrl) { + this.extServerUrl = extServerUrl; + } + + public static long getSerialVersionUID() { + return serialVersionUID; + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/forms/AuthoringForm.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/forms/AuthoringForm.java (.../AuthoringForm.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/forms/AuthoringForm.java (.../AuthoringForm.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -22,7 +22,7 @@ */ /* $Id$ */ - + package org.lamsfoundation.lams.tool.mdfrum.web.forms; import javax.servlet.http.HttpServletRequest; @@ -40,179 +40,176 @@ */ public class AuthoringForm extends ActionForm { - private static final long serialVersionUID = 3950453134542135495L; + private static final long serialVersionUID = 3950453134542135495L; - // Properties + // Properties - String title; + String title; - String instructions; + String instructions; - String offlineInstruction; + String offlineInstruction; - String onlineInstruction; + String onlineInstruction; - boolean lockOnFinished; - - boolean allowRichEditor; - - boolean evalcomixEvaluationByLearners; - - boolean evalcomixEvaluationByTeachers; - - String evalcomixInstrumentFormAndViewUrl; - - FormFile onlineFile; + boolean lockOnFinished; - FormFile offlineFile; + boolean allowRichEditor; - String currentTab; + boolean evalcomixEvaluationByLearners; - String dispatch; - - String sessionMapID; - - Long deleteFileUuid; + boolean evalcomixEvaluationByTeachers; - SessionMap sessionMap; + String evalcomixInstrumentFormAndViewUrl; - @Override - public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) { - ActionErrors ac = new ActionErrors(); - ac.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("this is an error")); - - return ac; - } - - public String getSessionMapID() { - return sessionMapID; - } + FormFile onlineFile; - public void setSessionMapID(String sessionMapID) { - this.sessionMapID = sessionMapID; - } + FormFile offlineFile; - public String getCurrentTab() { - return currentTab; - } + String currentTab; - public void setCurrentTab(String currentTab) { - this.currentTab = currentTab; - } + String dispatch; - public String getDispatch() { - return dispatch; - } + String sessionMapID; - public void setDispatch(String dispatch) { - this.dispatch = dispatch; - } + Long deleteFileUuid; - public String getInstructions() { - return instructions; - } + SessionMap sessionMap; - public void setInstructions(String instructions) { - this.instructions = instructions; - } + @Override + public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) { + ActionErrors ac = new ActionErrors(); + ac.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("this is an error")); - public boolean isLockOnFinished() { - return lockOnFinished; - } + return ac; + } - public void setLockOnFinished(boolean lockOnFinished) { - this.lockOnFinished = lockOnFinished; - } + public String getSessionMapID() { + return sessionMapID; + } - public FormFile getOfflineFile() { - return offlineFile; - } + public void setSessionMapID(String sessionMapID) { + this.sessionMapID = sessionMapID; + } - public void setOfflineFile(FormFile offlineFile) { - this.offlineFile = offlineFile; - } + public String getCurrentTab() { + return currentTab; + } - public String getOfflineInstruction() { - return offlineInstruction; - } + public void setCurrentTab(String currentTab) { + this.currentTab = currentTab; + } - public void setOfflineInstruction(String offlineInstruction) { - this.offlineInstruction = offlineInstruction; - } + public String getDispatch() { + return dispatch; + } - public FormFile getOnlineFile() { - return onlineFile; - } + public void setDispatch(String dispatch) { + this.dispatch = dispatch; + } - public void setOnlineFile(FormFile onlineFile) { - this.onlineFile = onlineFile; - } - - public String getOnlineInstruction() { - return onlineInstruction; - } + public String getInstructions() { + return instructions; + } - public void setOnlineInstruction(String onlineInstruction) { - this.onlineInstruction = onlineInstruction; - } - - public String getTitle() { - return title; - } + public void setInstructions(String instructions) { + this.instructions = instructions; + } - public void setTitle(String title) { - this.title = title; - } + public boolean isLockOnFinished() { + return lockOnFinished; + } - public void setSessionMap(SessionMap sessionMap) { - this.sessionMap = sessionMap; - } + public void setLockOnFinished(boolean lockOnFinished) { + this.lockOnFinished = lockOnFinished; + } - public SessionMap getSessionMap() { - return sessionMap; - } + public FormFile getOfflineFile() { + return offlineFile; + } - public Long getDeleteFileUuid() { - return deleteFileUuid; - } + public void setOfflineFile(FormFile offlineFile) { + this.offlineFile = offlineFile; + } - public void setDeleteFileUuid(Long deleteFile) { - this.deleteFileUuid = deleteFile; - } + public String getOfflineInstruction() { + return offlineInstruction; + } - public boolean isAllowRichEditor() { - return allowRichEditor; - } + public void setOfflineInstruction(String offlineInstruction) { + this.offlineInstruction = offlineInstruction; + } - public void setAllowRichEditor(boolean allowRichEditor) { - this.allowRichEditor = allowRichEditor; - } + public FormFile getOnlineFile() { + return onlineFile; + } - public String getEvalcomixInstrumentFormAndViewUrl() { - return evalcomixInstrumentFormAndViewUrl; - } + public void setOnlineFile(FormFile onlineFile) { + this.onlineFile = onlineFile; + } - public void setEvalcomixInstrumentFormAndViewUrl( - String evalcomixInstrumentFormAndViewUrl) { - this.evalcomixInstrumentFormAndViewUrl = evalcomixInstrumentFormAndViewUrl; - } + public String getOnlineInstruction() { + return onlineInstruction; + } - public boolean isEvalcomixEvaluationByLearners() { - return evalcomixEvaluationByLearners; - } + public void setOnlineInstruction(String onlineInstruction) { + this.onlineInstruction = onlineInstruction; + } - public void setEvalcomixEvaluationByLearners( - boolean evalcomixEvaluationByLearners) { - this.evalcomixEvaluationByLearners = evalcomixEvaluationByLearners; - } + public String getTitle() { + return title; + } - public boolean isEvalcomixEvaluationByTeachers() { - return evalcomixEvaluationByTeachers; - } + public void setTitle(String title) { + this.title = title; + } - public void setEvalcomixEvaluationByTeachers( - boolean evalcomixEvaluationByTeachers) { - this.evalcomixEvaluationByTeachers = evalcomixEvaluationByTeachers; - } + public void setSessionMap(SessionMap sessionMap) { + this.sessionMap = sessionMap; + } + public SessionMap getSessionMap() { + return sessionMap; + } + + public Long getDeleteFileUuid() { + return deleteFileUuid; + } + + public void setDeleteFileUuid(Long deleteFile) { + this.deleteFileUuid = deleteFile; + } + + public boolean isAllowRichEditor() { + return allowRichEditor; + } + + public void setAllowRichEditor(boolean allowRichEditor) { + this.allowRichEditor = allowRichEditor; + } + + public String getEvalcomixInstrumentFormAndViewUrl() { + return evalcomixInstrumentFormAndViewUrl; + } + + public void setEvalcomixInstrumentFormAndViewUrl(String evalcomixInstrumentFormAndViewUrl) { + this.evalcomixInstrumentFormAndViewUrl = evalcomixInstrumentFormAndViewUrl; + } + + public boolean isEvalcomixEvaluationByLearners() { + return evalcomixEvaluationByLearners; + } + + public void setEvalcomixEvaluationByLearners(boolean evalcomixEvaluationByLearners) { + this.evalcomixEvaluationByLearners = evalcomixEvaluationByLearners; + } + + public boolean isEvalcomixEvaluationByTeachers() { + return evalcomixEvaluationByTeachers; + } + + public void setEvalcomixEvaluationByTeachers(boolean evalcomixEvaluationByTeachers) { + this.evalcomixEvaluationByTeachers = evalcomixEvaluationByTeachers; + } + } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/forms/LearningForm.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/forms/LearningForm.java (.../LearningForm.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/forms/LearningForm.java (.../LearningForm.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -35,62 +35,62 @@ */ public class LearningForm extends ActionForm { - private static final long serialVersionUID = -4728946254882237144L; - - String title; - String instructions; - - String dispatch; - Long toolSessionID; - String mode; - - String entryText; + private static final long serialVersionUID = -4728946254882237144L; - public String getMode() { - return mode; - } + String title; + String instructions; - public void setMode(String mode) { - this.mode = mode; - } + String dispatch; + Long toolSessionID; + String mode; - public String getDispatch() { - return dispatch; - } + String entryText; - public void setDispatch(String dispatch) { - this.dispatch = dispatch; - } + public String getMode() { + return mode; + } - public Long getToolSessionID() { - return toolSessionID; - } + public void setMode(String mode) { + this.mode = mode; + } - public void setToolSessionID(Long toolSessionID) { - this.toolSessionID = toolSessionID; - } + public String getDispatch() { + return dispatch; + } - public String getInstructions() { - return instructions; - } + public void setDispatch(String dispatch) { + this.dispatch = dispatch; + } - public void setInstructions(String instructions) { - this.instructions = instructions; - } + public Long getToolSessionID() { + return toolSessionID; + } - public String getTitle() { - return title; - } + public void setToolSessionID(Long toolSessionID) { + this.toolSessionID = toolSessionID; + } - public void setTitle(String title) { - this.title = title; - } + public String getInstructions() { + return instructions; + } - public String getEntryText() { - return entryText; - } + public void setInstructions(String instructions) { + this.instructions = instructions; + } - public void setEntryText(String entryText) { - this.entryText = entryText; - } + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getEntryText() { + return entryText; + } + + public void setEntryText(String entryText) { + this.entryText = entryText; + } } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/forms/MonitoringForm.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/forms/MonitoringForm.java (.../MonitoringForm.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/forms/MonitoringForm.java (.../MonitoringForm.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -32,52 +32,63 @@ */ public class MonitoringForm extends ActionForm { - private static final long serialVersionUID = 9096908688391850595L; - - String dispatch; - boolean teacherVisible; - Long toolSessionID; - - // editing message page. - Long messageUID; - String messageBody; - boolean messageHidden; - - public String getMessageBody() { - return messageBody; - } - public void setMessageBody(String messageBody) { - this.messageBody = messageBody; - } - public Long getMessageUID() { - return messageUID; - } - public void setMessageUID(Long messageUID) { - this.messageUID = messageUID; - } - public String getDispatch() { - return dispatch; - } - public void setDispatch(String dispatch) { - this.dispatch = dispatch; - } - public Long getToolSessionID() { - return toolSessionID; - } - public void setToolSessionID(Long toolSessionID) { - this.toolSessionID = toolSessionID; - } - public boolean isTeacherVisible() { - return teacherVisible; - } - public void setTeacherVisible(boolean visible) { - this.teacherVisible = visible; - } - public boolean isMessageHidden() { - return messageHidden; - } - public void setMessageHidden(boolean messageHidden) { - this.messageHidden = messageHidden; - } + private static final long serialVersionUID = 9096908688391850595L; + String dispatch; + boolean teacherVisible; + Long toolSessionID; + + // editing message page. + Long messageUID; + String messageBody; + boolean messageHidden; + + public String getMessageBody() { + return messageBody; + } + + public void setMessageBody(String messageBody) { + this.messageBody = messageBody; + } + + public Long getMessageUID() { + return messageUID; + } + + public void setMessageUID(Long messageUID) { + this.messageUID = messageUID; + } + + public String getDispatch() { + return dispatch; + } + + public void setDispatch(String dispatch) { + this.dispatch = dispatch; + } + + public Long getToolSessionID() { + return toolSessionID; + } + + public void setToolSessionID(Long toolSessionID) { + this.toolSessionID = toolSessionID; + } + + public boolean isTeacherVisible() { + return teacherVisible; + } + + public void setTeacherVisible(boolean visible) { + this.teacherVisible = visible; + } + + public boolean isMessageHidden() { + return messageHidden; + } + + public void setMessageHidden(boolean messageHidden) { + this.messageHidden = messageHidden; + } + } Index: tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/servlets/ExportServlet.java =================================================================== diff -u -r368d06879c2737658c7d8e7a45d1476a0742d366 -r08c312af0856bca0a580ddc8494c34bb5bbc4624 --- tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision 368d06879c2737658c7d8e7a45d1476a0742d366) +++ tool_adapters/moodle/lams_tool_mdlforum/src/java/org/lamsfoundation/lams/tool/mdfrum/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision 08c312af0856bca0a580ddc8494c34bb5bbc4624) @@ -52,155 +52,143 @@ public class ExportServlet extends AbstractExportPortfolioServlet { - private static final long serialVersionUID = -2829707715037631881L; + private static final long serialVersionUID = -2829707715037631881L; - private static Logger logger = Logger.getLogger(ExportServlet.class); + private static Logger logger = Logger.getLogger(ExportServlet.class); - private final String FILENAME = "mdlForum_main.html"; + private final String FILENAME = "mdlForum_main.html"; - private IMdlForumService mdlForumService; + private IMdlForumService mdlForumService; - protected String doExport(HttpServletRequest request, - HttpServletResponse response, String directoryName, Cookie[] cookies) { + protected String doExport(HttpServletRequest request, HttpServletResponse response, String directoryName, + Cookie[] cookies) { - if (mdlForumService == null) { - mdlForumService = MdlForumServiceProxy.getMdlForumService(getServletContext()); - } + if (mdlForumService == null) { + mdlForumService = MdlForumServiceProxy.getMdlForumService(getServletContext()); + } - try { - if (StringUtils.equals(mode, ToolAccessMode.LEARNER.toString())) { - request.getSession().setAttribute(AttributeNames.ATTR_MODE, - ToolAccessMode.LEARNER); - doLearnerExport(request, response, directoryName, cookies); - } else if (StringUtils.equals(mode, ToolAccessMode.TEACHER - .toString())) { - request.getSession().setAttribute(AttributeNames.ATTR_MODE, - ToolAccessMode.TEACHER); - doTeacherExport(request, response, directoryName, cookies); - String basePath = request.getScheme() + "://" + request.getServerName() - + ":" + request.getServerPort() + request.getContextPath(); - writeResponseToFile(basePath + "/pages/export/exportPortfolio.jsp", - directoryName, FILENAME, cookies); - - - } - } catch (MdlForumException e) { - logger.error("Cannot perform export for mdlForum tool."); - } - return FILENAME; + try { + if (StringUtils.equals(mode, ToolAccessMode.LEARNER.toString())) { + request.getSession().setAttribute(AttributeNames.ATTR_MODE, ToolAccessMode.LEARNER); + doLearnerExport(request, response, directoryName, cookies); + } else if (StringUtils.equals(mode, ToolAccessMode.TEACHER.toString())) { + request.getSession().setAttribute(AttributeNames.ATTR_MODE, ToolAccessMode.TEACHER); + doTeacherExport(request, response, directoryName, cookies); + String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + + request.getContextPath(); + writeResponseToFile(basePath + "/pages/export/exportPortfolio.jsp", directoryName, FILENAME, cookies); + + } + } catch (MdlForumException e) { + logger.error("Cannot perform export for mdlForum tool."); } + return FILENAME; + } - protected String doOfflineExport(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies) { - if (toolContentID == null && toolSessionID == null) { - logger.error("Tool content Id or and session Id are null. Unable to activity title"); - } else { - if (mdlForumService == null) { - mdlForumService = MdlForumServiceProxy.getMdlForumService(getServletContext()); - } + protected String doOfflineExport(HttpServletRequest request, HttpServletResponse response, String directoryName, + Cookie[] cookies) { + if (toolContentID == null && toolSessionID == null) { + logger.error("Tool content Id or and session Id are null. Unable to activity title"); + } else { + if (mdlForumService == null) { + mdlForumService = MdlForumServiceProxy.getMdlForumService(getServletContext()); + } - MdlForum content = null; - if ( toolContentID != null ) { - content = mdlForumService.getMdlForumByContentId(toolContentID); - } else { - MdlForumSession session=mdlForumService.getSessionBySessionId(toolSessionID); - if ( session != null ) - content = session.getMdlForum(); - } - if ( content != null ) { - //activityTitle = content.getTitle(); - } - } - return super.doOfflineExport(request, response, directoryName, cookies); + MdlForum content = null; + if (toolContentID != null) { + content = mdlForumService.getMdlForumByContentId(toolContentID); + } else { + MdlForumSession session = mdlForumService.getSessionBySessionId(toolSessionID); + if (session != null) + content = session.getMdlForum(); + } + if (content != null) { + //activityTitle = content.getTitle(); + } } - - private void doLearnerExport(HttpServletRequest request, - HttpServletResponse response, String directoryName, Cookie[] cookies) - throws MdlForumException { + return super.doOfflineExport(request, response, directoryName, cookies); + } - logger.debug("doExportLearner: toolContentID:" + toolSessionID); + private void doLearnerExport(HttpServletRequest request, HttpServletResponse response, String directoryName, + Cookie[] cookies) throws MdlForumException { - // check if toolSessionID available - if (toolSessionID == null) { - String error = "Tool Session ID is missing. Unable to continue"; - logger.error(error); - throw new MdlForumException(error); - } + logger.debug("doExportLearner: toolContentID:" + toolSessionID); - MdlForumSession mdlForumSession = mdlForumService.getSessionBySessionId(toolSessionID); + // check if toolSessionID available + if (toolSessionID == null) { + String error = "Tool Session ID is missing. Unable to continue"; + logger.error(error); + throw new MdlForumException(error); + } - MdlForum mdlForum = mdlForumSession.getMdlForum(); + MdlForumSession mdlForumSession = mdlForumService.getSessionBySessionId(toolSessionID); - try{ - exportFileFromExternalServer(request, response, - mdlForumSession.getExtSessionId(), mdlForum, - directoryName + "/" + FILENAME); - } - catch (Exception e) - { - logger.error("Could not fetch export file from external servlet", e); - throw new MdlForumException("Could not fetch export file from external servlet", e); - } + MdlForum mdlForum = mdlForumSession.getMdlForum(); + + try { + exportFileFromExternalServer(request, response, mdlForumSession.getExtSessionId(), mdlForum, directoryName + + "/" + FILENAME); + } catch (Exception e) { + logger.error("Could not fetch export file from external servlet", e); + throw new MdlForumException("Could not fetch export file from external servlet", e); } + } - private void doTeacherExport(HttpServletRequest request, - HttpServletResponse response, String directoryName, Cookie[] cookies) - throws MdlForumException { + private void doTeacherExport(HttpServletRequest request, HttpServletResponse response, String directoryName, + Cookie[] cookies) throws MdlForumException { - logger.debug("doExportTeacher: toolContentID:" + toolContentID); + logger.debug("doExportTeacher: toolContentID:" + toolContentID); - // check if toolContentID available - if (toolContentID == null) { - String error = "Tool Content ID is missing. Unable to continue"; - logger.error(error); - throw new MdlForumException(error); - } + // check if toolContentID available + if (toolContentID == null) { + String error = "Tool Content ID is missing. Unable to continue"; + logger.error(error); + throw new MdlForumException(error); + } - MdlForum mdlForum = mdlForumService.getMdlForumByContentId(toolContentID); - MdlForumDTO mdlForumDTO = new MdlForumDTO(mdlForum); - request.getSession().setAttribute("mdlForumDTO", mdlForumDTO); - - Set sessions = mdlForum.getMdlForumSessions(); - for (MdlForumSession session : sessions) - { - try { - String fullPath = directoryName + "/"+ session.getSessionName(); - exportFileFromExternalServer(request, response, session.getExtSessionId(), mdlForum,fullPath); - } catch (Exception e) { - logger.error("Could not fetch export file from external servlet", e); - throw new MdlForumException("Could not fetch export file from external servlet", e); - } - } - - request.getSession().setAttribute("sessions", sessions); + MdlForum mdlForum = mdlForumService.getMdlForumByContentId(toolContentID); + MdlForumDTO mdlForumDTO = new MdlForumDTO(mdlForum); + request.getSession().setAttribute("mdlForumDTO", mdlForumDTO); + + Set sessions = mdlForum.getMdlForumSessions(); + for (MdlForumSession session : sessions) { + try { + String fullPath = directoryName + "/" + session.getSessionName(); + exportFileFromExternalServer(request, response, session.getExtSessionId(), mdlForum, fullPath); + } catch (Exception e) { + logger.error("Could not fetch export file from external servlet", e); + throw new MdlForumException("Could not fetch export file from external servlet", e); + } } - - private void exportFileFromExternalServer(HttpServletRequest request, - HttpServletResponse response, Long extToolSessionId, MdlForum mdlForum, String fullPath) throws Exception - { - String exportPortFolioServletUrl = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET).getConfigValue(); - - String extUsername="user"; // setting user to arbitrary values since they are only used to construct the hash - HashMap params = mdlForumService.getRequiredExtServletParams(mdlForum); - params.put("method", IMdlForumService.EXT_SERVER_METHOD_EXPORT_PORTFOLIO); - params.put("extToolContentID", extToolSessionId.toString()); + request.getSession().setAttribute("sessions", sessions); + } - InputStream in = WebUtility.getResponseInputStreamFromExternalServer(exportPortFolioServletUrl, params); - OutputStream out = new BufferedOutputStream(new FileOutputStream(fullPath)); - byte[] buffer = new byte[1024]; - int numRead; - long numWritten = 0; - logger.debug("Getting file..."); - while ((numRead = in.read(buffer)) != -1) - { - out.write(buffer, 0, numRead); - logger.debug(new String(buffer)); - numWritten += numRead; - } - logger.debug("Path to mdlForum export portfolio content: " + fullPath); - out.flush(); - out.close(); + private void exportFileFromExternalServer(HttpServletRequest request, HttpServletResponse response, + Long extToolSessionId, MdlForum mdlForum, String fullPath) throws Exception { + String exportPortFolioServletUrl = mdlForumService.getConfigItem(MdlForumConfigItem.KEY_EXTERNAL_TOOL_SERVLET) + .getConfigValue(); + + String extUsername = "user"; // setting user to arbitrary values since they are only used to construct the hash + + HashMap params = mdlForumService.getRequiredExtServletParams(mdlForum); + params.put("method", IMdlForumService.EXT_SERVER_METHOD_EXPORT_PORTFOLIO); + params.put("extToolContentID", extToolSessionId.toString()); + + InputStream in = WebUtility.getResponseInputStreamFromExternalServer(exportPortFolioServletUrl, params); + OutputStream out = new BufferedOutputStream(new FileOutputStream(fullPath)); + byte[] buffer = new byte[1024]; + int numRead; + long numWritten = 0; + logger.debug("Getting file..."); + while ((numRead = in.read(buffer)) != -1) { + out.write(buffer, 0, numRead); + logger.debug(new String(buffer)); + numWritten += numRead; } - + logger.debug("Path to mdlForum export portfolio content: " + fullPath); + out.flush(); + out.close(); + } }