package th.co.ais.ssbsrfc.utils; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringEscapeUtils; import org.simpleframework.xml.Serializer; import org.simpleframework.xml.core.Persister; import th.co.ais.ssbsrfc.instance.EC02Instance; import ec02.af.data.EquinoxRawData; import ec02.utils.AppLog; public class EqxStringUtils { public static Map convertXMLtoHttpData(String rcvXMLData) throws Exception{ Map rtnMapHttpData = new HashMap(); if(rcvXMLData != null) { Serializer serializer = new Persister(); rcvXMLData = "" + rcvXMLData + ""; HttpData httpData = serializer.read(HttpData.class, rcvXMLData); if(httpData != null ) { if(httpData.getErdData() != null && httpData.getErdData().getValue() != null) { rtnMapHttpData.put("erddata_value", httpData.getErdData().getValue()); } else { rtnMapHttpData.put("erddata_value", rcvXMLData); } ERDHeader eRDHeader = httpData.getErdHeader(); if(eRDHeader != null) { List
lsHeader = eRDHeader.getHeader(); if(lsHeader != null) { for(int i = 0; i < lsHeader.size(); i++) { Header header = lsHeader.get(i); if(header.getName() != null) { rtnMapHttpData.put(header.getName(), header.getValue()); } } } } } } return rtnMapHttpData; } public static String getMessage(EquinoxRawData equinoxRawData) { String value = EqxStringUtils.getMessage(equinoxRawData, null); return value; } public static String getMessage(EquinoxRawData equinoxRawData, EC02Instance ec02Instance) { String value = EqxStringUtils.getMessage(equinoxRawData, ec02Instance, false); return value; } public static String getMessage(EquinoxRawData equinoxRawData, EC02Instance ec02Instance, boolean isLog) { String value = ""; try { String ctype = equinoxRawData.getRawDataAttribute("ctype"); String val = equinoxRawData.getRawDataAttribute("val"); String message = equinoxRawData.getRawDataMessage(); if (ctype.equals("Specialized-Resource")) { value = message; if (isLog) { AppLog.d("[GETMESSAGE(MESSAGE)]: " + value); } } else if (ctype.equals("text/xml")) { if ((message == null || message.equals("")) && (val != null && !val.equals(""))) { value = val; if (isLog) { AppLog.d("[GETMESSAGE(VAL)]: " + value); } } else if (message != null && !message.equals("")) { value = EqxStringUtils.getERDData(message, ec02Instance); if (isLog) { AppLog.d("[GETMESSAGE(MESSAGE)]: " + value); } } } else if (ctype.equals("filefeed")) { value = message; } else if (ctype.equals("unknown")) { value = message; } else { if ((val == null || val.equals("")) && (message != null && !message.equals(""))) { value = EqxStringUtils.getERDData(message, ec02Instance); if (isLog) { AppLog.d("[GETMESSAGE(MESSAGE)]: " + value); } } else { value = val; if (isLog) { AppLog.d("[GETMESSAGE(VAL)]: " + value); } } } } catch (Exception e) { AppLog.e("[ EXCEPTION GETMESSAGES ] : " + e); } return value; } public static String getERDData(String message, EC02Instance ec02Instance) { String value = ""; try { Map mapHttpData = EqxStringUtils.convertXMLtoHttpData(message); value = mapHttpData.get("erddata_value"); if (ec02Instance != null) { ec02Instance.getAFInstance().setMapHttpData(mapHttpData); } } catch (Exception e) { // AppLog.e("[ Exception convertXMLtoHttpData ] : " + e.getMessage()); // AppLog.d("## convertXMLtoHttpData: NOTMATH"); value = message; } return value; } public static String builMessageERDHeader(EC02Instance ec02Instance, String value) { String buil = "\n\t\t\n"; Map map = ec02Instance.getAFInstance().getMapHttpData(); if (map != null) { for (Map.Entry entry : map.entrySet()) { String name = entry.getKey(); String data = entry.getValue(); if (!name.equals("Content-Type") && !name.equals("erddata_value") && !name.equals("Content-Length")) { buil += "\t\t\t
\n"; } } } // buil += "
\n"; buil += "\t\t\n"; buil += "\t\t"; return buil; } public static String escapePostdata(String rcvData) { if(rcvData != null ) { return StringEscapeUtils.escapeXml(rcvData); } else { return null; } } public static String unescapePostdata(String rcvData) { if(rcvData != null ) { //return rcvData; return StringEscapeUtils.unescapeXml(rcvData); } else { return null; } } }