| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- package xin.glue.ui.common.component;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.posdata.glue.context.PosContext;
- import com.posdata.glue.dao.vo.PosRowSet;
- import com.posdata.glue.web.control.PosWebConstants;
- import common.Logger;
- import kr.co.comsquare.rwXmlLib.RwXml;
- public class PosTrustForm {
- protected HttpServletRequest request;
- protected HttpServletResponse response;
- private Map property = new HashMap();
- private boolean doGetAllow = false;
- // private Logger logger = new Loger();
-
- public PosTrustForm setDoGetAllow(boolean doGetAllow) {
- this.doGetAllow = doGetAllow;
- return this;
- }
- public PosTrustForm(HttpServletRequest request) {
- this(request, null);
- }
- public PosTrustForm(HttpServletRequest request, HttpServletResponse response) {
- super();
- this.request = request;
- this.response = response;
- }
- public PosTrustForm addProperty(String name, String value) {
- property.put(name, value);
- return this;
- }
- public String toString() {
- if (!(doGetAllow || request.getQueryString() == null)) return null;
- StringBuffer buffer = new StringBuffer();
- RwXml rx = new RwXml();
- rx.setEncoding("UTF-8");
- int rootNodeID = RwXml.rootNodeID;
- int resNode = rx.add(rootNodeID, "resData", "");
- if ("true".equalsIgnoreCase(request.getParameter("SystemProperty")) && property.size() > 0)
- setXml(rx, property, resNode, "Property");
- if (request != null) {
- try {
- PosContext ctx = (PosContext)request.getAttribute(PosWebConstants.CONTEXT);
- if (ctx == null) {
- String service = request.getParameter("ServiceName");
- String message = "Context is null, because Service [" + service + "] did not execute or has a problem.";
- throw new Exception(message);
- // logger.logInfo("");
- }
- Throwable ex = ctx.getException();
- //if (ex != null) {
- // throw new Exception(ex.getMessage());
- //}
- String[] resultKeys = (String[]) ctx.get("ResultKeyList");
- if (resultKeys != null && resultKeys.length > 0) {
- int length = resultKeys.length;
- for (int i = 0; i < length; i++) {
- Object data = ctx.get(resultKeys[i]);
- int voNode = rx.add(resNode, resultKeys[i] + "_VO", "");
- setXml(rx, data, voNode, resultKeys[i] + "_Row");
- }
- } else {
- throw new Exception("Context do not have [ResultKeyList].");
- }
- ex = ctx.getException();
- if (ex != null) {
- rx.add(resNode, "errorData", "<![CDATA[" + ex.getMessage() + "]]>");
- }
- } catch (Exception ex) {
- buffer.append(ex.toString());
- rx.add(resNode, "errorData", ex.getMessage());
- ex.printStackTrace();
- }
- }
- buffer.append(rx.xmlFlush());
- buffer.append(rx.xmlEndFlush());
- return buffer.toString();
- }
- protected void setXml(RwXml rx, Object data, int voNode, String resultKey) {
- if (data instanceof PosRowSet) setXml(rx, (PosRowSet)data, voNode, resultKey);
- else if (data instanceof List) setXml(rx, (List)data, voNode, resultKey);
- else if (data instanceof Map) setXml(rx, (Map)data, voNode, resultKey);
- else if (data != null) rx.add(voNode, resultKey, data.toString());
- }
- private void setXml(RwXml rx, Map mapData, int voNode, String resultKey) {
- Set keySet = mapData.keySet();
- Iterator keyItr = keySet.iterator();
- Object key = null;
- int rowNode = rx.add(voNode, resultKey, "");
- while (keyItr.hasNext()) {
- key = keyItr.next();
- Object keyData = mapData.get(key);
- if (keyData == null) rx.add(rowNode, key.toString(), "");
- else rx.add(rowNode, key.toString(), keyData.toString().replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">"));
- }
- }
- private void setXml(RwXml rx, PosRowSet rowSet, int voNode, String resultKey) {
- rowSet.reset();
- while (rowSet.hasNext()) {
- setXml(rx, rowSet.next().getAttributes(), voNode, resultKey);
- }
- }
- private void setXml(RwXml rx, List listSet, int voNode, String resultKey) {
- int listSize = listSet.size();
- for (int i = 0; i < listSize; i++) {
- setXml(rx, listSet.get(i), voNode, resultKey);
- }
- }
- }
|