/**
*
*/
package com.trendrr.oss.strest.models;
import java.io.InputStream;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.trendrr.oss.DynMap;
import com.trendrr.oss.strest.models.StrestHeader.ContentEncoding;
import com.trendrr.oss.strest.models.StrestHeader.Method;
import com.trendrr.oss.strest.models.StrestHeader.TxnAccept;
import com.trendrr.oss.strest.models.StrestHeader.TxnStatus;
import com.trendrr.oss.strest.models.json.StrestJsonResponse;
/**
* @author Dustin Norlander
* @created Jul 29, 2013
*
*/
public class DefaultStrestResponse implements StrestResponse {
protected static Log log = LogFactory.getLog(DefaultStrestResponse.class);
protected float protocolVersion = StrestHeader.STREST_VERSION;
protected String protocolName = StrestHeader.STREST_PROTOCOL;
protected String txnId;
protected TxnStatus txnStatus;
protected int statusCode = 200;
protected String statusMessage;
protected InputStream content;
protected int contentLength = 0;
protected StrestHeader.ContentEncoding contentEncoding;
protected DynMap params = new DynMap();
public synchronized DynMap getParams() {
return params;
}
public synchronized void setParams(DynMap params) {
this.params = params;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestPacketBase#setProtocol(java.lang.String, float)
*/
@Override
public void setProtocol(String protocolName, float version) {
this.protocolVersion = version;
this.protocolName = protocolName;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestPacketBase#getProtocolVersion()
*/
@Override
public float getProtocolVersion() {
return this.protocolVersion;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestPacketBase#getProtocolName()
*/
@Override
public String getProtocolName() {
return this.protocolName;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestPacketBase#setTxnId(java.lang.String)
*/
@Override
public void setTxnId(String id) {
this.txnId = id;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestPacketBase#getTxnId()
*/
@Override
public String getTxnId() {
return this.txnId;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestPacketBase#setContent(java.lang.String, long, java.io.InputStream)
*/
@Override
public void setContent(ContentEncoding contentEncoding, int contentLength,
InputStream content) throws Exception {
this.content = content;
this.contentEncoding = contentEncoding;
this.contentLength = contentLength;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestPacketBase#getContent()
*/
@Override
public InputStream getContent() {
return this.content;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestPacketBase#getContentEncoding()
*/
@Override
public ContentEncoding getContentEncoding() {
return this.contentEncoding;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestPacketBase#getContentLength()
*/
@Override
public int getContentLength() {
return this.contentLength;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestPacketBase#cleanup()
*/
@Override
public void cleanup() {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestPacketBase#toByteArray()
*/
@Override
public byte[] toByteArray() {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestResponse#setStatus(int, java.lang.String)
*/
@Override
public void setStatus(int code, String message) {
this.statusCode = code;
this.statusMessage = message;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestResponse#getStatusCode()
*/
@Override
public int getStatusCode() {
return this.statusCode;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestResponse#getStatusMessage()
*/
@Override
public String getStatusMessage() {
return this.statusMessage;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestResponse#setTxnStatus(com.trendrr.oss.strest.models.StrestHeader.TxnStatus)
*/
@Override
public void setTxnStatus(TxnStatus status) {
this.txnStatus = status;
}
/* (non-Javadoc)
* @see com.trendrr.oss.strest.models.StrestResponse#getTxnStatus()
*/
@Override
public TxnStatus getTxnStatus() {
return this.txnStatus;
}
/* (non-Javadoc)
* @see com.trendrr.oss.DynMapConvertable#toDynMap()
*/
@Override
public DynMap toDynMap() {
try {
StrestJsonResponse response = new StrestJsonResponse(this);
DynMap mp = response.toDynMap();
if (this.params != null) {
mp.putAll(this.getParams());
}
return mp;
} catch (Exception x) {
log.error("caught", x);
}
return null;
}
}