/** * */ package com.trendrr.strest.server.v2.models.json; import java.io.UnsupportedEncodingException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.trendrr.oss.DynMap; import com.trendrr.strest.server.v2.models.StrestHeader.TxnStatus; import com.trendrr.strest.server.v2.models.StrestHeader; import com.trendrr.strest.server.v2.models.StrestResponse; import com.trendrr.strest.server.v2.models.StrestHeader.Name; /** * @author Dustin Norlander * @created Apr 26, 2012 * */ public class StrestJsonResponse extends StrestJsonBase implements StrestResponse { /** * @param map */ public StrestJsonResponse(DynMap map) { super(map); } public StrestJsonResponse() { super(); } protected static Log log = LogFactory.getLog(StrestJsonResponse.class); /* (non-Javadoc) * @see com.trendrr.strest.server.v2.models.StrestResponse#setStatus(int, java.lang.String) */ @Override public void setStatus(int code, String message) { this.map.putWithDot("status.code", code); this.map.putWithDot("status.message", message); } /* (non-Javadoc) * @see com.trendrr.strest.server.v2.models.StrestResponse#getStatusCode() */ @Override public int getStatusCode() { return this.map.getInteger("status.code", 200); } /* (non-Javadoc) * @see com.trendrr.strest.server.v2.models.StrestResponse#getStatusMessage() */ @Override public String getStatusMessage() { return this.map.getString("status.message", "OK"); } /* (non-Javadoc) * @see com.trendrr.strest.server.v2.models.StrestResponse#setTxnStatus(com.trendrr.strest.server.v2.models.StrestHeader.TxnStatus) */ @Override public void setTxnStatus(TxnStatus status) { this.addHeader(StrestHeader.Name.TXN_STATUS, status.getJson()); } /* (non-Javadoc) * @see com.trendrr.strest.server.v2.models.StrestResponse#getTxnStatus() */ @Override public TxnStatus getTxnStatus() { return TxnStatus.instance(this.getHeader(StrestHeader.Name.TXN_STATUS)); } /* (non-Javadoc) * @see com.trendrr.strest.server.v2.models.StrestResponse#getContentBytes() */ @Override public byte[] getContentBytes() { //gets the json packet minus the headers. DynMap mp = new DynMap(); mp.putAll(this.getMap()); mp.remove("strest"); try { return mp.toJSONString().getBytes("utf8"); } catch (UnsupportedEncodingException e) { log.error("Caught", e); } return null; } }