/*
* Copyright(c) 2005 Center for E-Commerce Infrastructure Development, The
* University of Hong Kong (HKU). All Rights Reserved.
*
* This software is licensed under the Apache License Version 2.0 [1]
*
* [1] http://www.apache.org/licenses/LICENSE-2.0.txt
*/
package hk.hku.cecid.edi.as2.admin.listener;
import hk.hku.cecid.edi.as2.AS2Processor;
import hk.hku.cecid.edi.as2.dao.MessageDAO;
import hk.hku.cecid.edi.as2.dao.MessageDVO;
import hk.hku.cecid.piazza.commons.util.PropertyTree;
import hk.hku.cecid.piazza.corvus.admin.listener.AdminPageletAdaptor;
import javax.servlet.http.HttpServletRequest;
import javax.xml.transform.Source;
/**
* @author Donahue Sze
*
*/
public class ChangeMessageStatusPageletAdaptor extends AdminPageletAdaptor {
protected Source getCenterSource(HttpServletRequest request) {
// construct the dom tree
PropertyTree dom = new PropertyTree();
dom.setProperty("/message_history", "");
try {
String messageId = request.getParameter("message_id");
String messageBox = request.getParameter("message_box");
String status = request.getParameter("status");
MessageDAO messageDAO = (MessageDAO) AS2Processor.core.dao
.createDAO(MessageDAO.class);
MessageDVO messageDVO = (MessageDVO) messageDAO.createDVO();
messageDVO.setMessageId(messageId);
messageDVO.setMessageBox(messageBox);
if (messageDAO.retrieve(messageDVO)) {
messageDVO.setStatus(status);
messageDVO.setStatusDescription("");
messageDAO.persist(messageDVO);
dom.setProperty("message[0]/message_id",
checkNullAndReturnEmpty(messageDVO.getMessageId()));
dom.setProperty("message[0]/message_box",
checkNullAndReturnEmpty(messageDVO.getMessageBox()));
dom.setProperty("message[0]/as2_from",
checkNullAndReturnEmpty(messageDVO.getAs2From()));
dom.setProperty("message[0]/as2_to",
checkNullAndReturnEmpty(messageDVO.getAs2To()));
dom.setProperty("message[0]/time_stamp", messageDVO
.getTimeStamp().toString());
dom.setProperty("message[0]/principal_id",
checkNullAndReturnEmpty(messageDVO.getPrincipalId()));
dom.setProperty("message[0]/status",
checkNullAndReturnEmpty(messageDVO.getStatus()));
dom.setProperty("message[0]/is_acknowledged", String
.valueOf(messageDVO.isAcknowledged()));
dom.setProperty("message[0]/is_receipt", String
.valueOf(messageDVO.isReceipt()));
dom.setProperty("message[0]/is_receipt_requested", String
.valueOf(messageDVO.isReceiptRequested()));
}
// set the search criteria
dom.setProperty("search_criteria/message_id", "");
dom.setProperty("search_criteria/message_box", "");
dom.setProperty("search_criteria/as2_from", "");
dom.setProperty("search_criteria/as2_to", "");
dom.setProperty("search_criteria/principal_id", "");
dom.setProperty("search_criteria/status", "");
dom.setProperty("search_criteria/num_of_messages", "");
dom.setProperty("search_criteria/offset", "0");
dom.setProperty("search_criteria/is_detail", "");
//change the message status for message_time
dom.setProperty("search_criteria/message_time","");
} catch (Exception e) {
AS2Processor.core.log.debug(
"Unable to process the pagelet request", e);
}
return dom.getSource();
}
/**
* @param messageId
* @return
*/
private String checkNullAndReturnEmpty(String value) {
if (value == null) {
return new String("");
}
return value;
}
}