AjaxResponse.java
Home
/
sm-core /
src /
main /
java /
com /
salesmanager /
core /
business /
utils /
ajax /
AjaxResponse.java
package com.salesmanager.core.business.utils.ajax;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.collections4.CollectionUtils;
import org.json.simple.JSONAware;
import org.json.simple.JSONObject;
public class AjaxResponse implements JSONAware {
public final static int RESPONSE_STATUS_SUCCESS=0;
public final static int RESPONSE_STATUS_FAIURE=-1;
public final static int RESPONSE_STATUS_VALIDATION_FAILED=-2;
public final static int RESPONSE_OPERATION_COMPLETED=9999;
public final static int CODE_ALREADY_EXIST=9998;
private int status;
private List<Map<String,String>> data = new ArrayList<Map<String,String>>();
private Map<String,String> dataMap = new HashMap<String,String>();
private Map<String,String> validationMessages = new HashMap<String,String>();
public Map<String, String> getValidationMessages() {
return validationMessages;
}
public void setValidationMessages(Map<String, String> validationMessages) {
this.validationMessages = validationMessages;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
protected List<Map<String,String>> getData() {
return data;
}
public void addDataEntry(Map<String,String> dataEntry) {
this.data.add(dataEntry);
}
public void addEntry(String key, String value) {
dataMap.put(key, value);
}
public void setErrorMessage(Throwable t) {
this.setStatusMessage(t.getMessage());
}
public void setErrorString(String t) {
this.setStatusMessage(t);
}
public void addValidationMessage(String fieldName, String message) {
this.validationMessages.put(fieldName, message);
}
private String statusMessage = null;
public String getStatusMessage() {
return statusMessage;
}
public void setStatusMessage(String statusMessage) {
this.statusMessage = statusMessage;
}
protected String getJsonInfo() {
StringBuilder returnString = new StringBuilder();
returnString.append("{");
returnString.append("\"response\"").append(":");
returnString.append("{");
returnString.append("\"status\"").append(":").append(this.getStatus());
if(this.getStatusMessage()!=null && this.getStatus()!=0) {
returnString.append(",").append("\"statusMessage\"").append(":\"").append(JSONObject.escape(this.getStatusMessage())).append("\"");
}
return returnString.toString();
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public String toJSONString() {
StringBuilder returnString = new StringBuilder();
returnString.append(getJsonInfo());
if(this.getData().size()>0) {
StringBuilder dataEntries = null;
int count = 0;
for(Map keyValue : this.getData()) {
if(dataEntries == null) {
dataEntries = new StringBuilder();
}
JSONObject data = new JSONObject();
Set<String> keys = keyValue.keySet();
for(String key : keys) {
data.put(key, keyValue.get(key));
}
String dataField = data.toJSONString();
dataEntries.append(dataField);
if(count<this.data.size()-1) {
dataEntries.append(",");
}
count ++;
}
returnString.append(",").append("\"data\"").append(":[");
if(dataEntries!=null) {
returnString.append(dataEntries.toString());
}
returnString.append("]");
}
if(this.getDataMap().size()>0) {
StringBuilder dataEntries = null;
int count = 0;
for(String key : this.getDataMap().keySet()) {
if(dataEntries == null) {
dataEntries = new StringBuilder();
}
dataEntries.append("\"").append(key).append("\"");
dataEntries.append(":");
dataEntries.append("\"").append(this.getDataMap().get(key)).append("\"");
if(count<this.getDataMap().size()-1) {
dataEntries.append(",");
}
count ++;
}
if(dataEntries!=null) {
returnString.append(",").append(dataEntries.toString());
}
}
if(CollectionUtils.isNotEmpty(this.getValidationMessages().values())) {
StringBuilder dataEntries = null;
int count = 0;
for(String key : this.getValidationMessages().keySet()) {
if(dataEntries == null) {
dataEntries = new StringBuilder();
}
dataEntries.append("{");
dataEntries.append("\"field\":\"").append(key).append("\"");
dataEntries.append(",");
dataEntries.append("\"message\":\"").append(this.getValidationMessages().get(key)).append("\"");
dataEntries.append("}");
if(count<this.getValidationMessages().size()-1) {
dataEntries.append(",");
}
count ++;
}
returnString.append(",").append("\"validations\"").append(":[");
if(dataEntries!=null) {
returnString.append(dataEntries.toString());
}
returnString.append("]");
}
returnString.append("}}");
return returnString.toString();
}
public Map<String,String> getDataMap() {
return dataMap;
}
public void setDataMap(Map<String,String> dataMap) {
this.dataMap = dataMap;
}
}