com.ms.app.web.commons.utils.JSONPResultUtils.java Source code

Java tutorial

Introduction

Here is the source code for com.ms.app.web.commons.utils.JSONPResultUtils.java

Source

/*
 * Copyright 2011-2016 ZXC.com All right reserved. This software is the confidential and proprietary information of
 * ZXC.com ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into with ZXC.com.
 */
package com.ms.app.web.commons.utils;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang.StringUtils;

import com.ms.commons.lang.Argument;
import com.ms.commons.summer.web.servlet.result.mime.DefaultJsonResult;
import com.ms.commons.summer.web.servlet.result.mime.JSONPResult;
import com.ms.commons.summer.web.servlet.result.mime.JsonResult;
import com.ms.commons.summer.web.util.json.JsonUtils;

/**
 * AjaxJSONP 
 * 
 * @author zxc Apr 12, 2013 10:52:26 PM
 */
public class JSONPResultUtils {

    // --- success
    public static JsonResult success(Object data, String callback) {
        return success(data, callback, null, true);
    }

    public static JsonResult success(Object data, String callback, boolean escape) {
        return success(data, callback, null, escape);
    }

    public static JsonResult success(Object data, String callback, String message) {
        return success(data, callback, message, true);
    }

    public static JsonResult success(Object data, String callback, String message, boolean escape) {
        return buildJsonResult(ResultCode.SUCCESS, data, callback, message, escape);
    }

    // --- login
    public static JsonResult needLoJsonResult(String callback) {
        return needLogin(null, callback, null);
    }

    public static JsonResult needLogin(Object data, String callback) {
        return needLogin(data, callback, null);
    }

    public static JsonResult needLogin(Object data, String callback, String message) {
        return buildJsonResult(ResultCode.NEED_LOGIN, data, callback, message, true);
    }

    public static String getNeedLoginJson(String callback) {
        if (StringUtils.isEmpty(callback)) {
            return JsonResultUtils.getNeedLoginJson();
        }
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("result", ResultCode.NEED_LOGIN.getValue());// ??
        params.put("message", getMessage(ResultCode.NEED_LOGIN, null));// ???
        params.put("data", "");// ??
        try {
            StringBuilder sb = new StringBuilder(200);
            sb.append(callback);
            sb.append('(');
            sb.append(JsonUtils.object2Json(params));
            sb.append(')');
            return sb.toString();
        } catch (Exception e) {
        }
        return JsonResultUtils.getNeedLoginJson();
    }

    // ---error
    public static JsonResult error(String callback) {
        return error(null, callback, null, true);
    }

    public static JsonResult error(String callback, String message) {
        return error(null, callback, message, true);
    }

    public static JsonResult error(Object data, String callback, String message) {
        return error(data, callback, message, true);
    }

    public static JsonResult error(Object data, String callback, String message, boolean escape) {
        return buildJsonResult(ResultCode.ERROR, data, callback, message, escape);
    }

    // --submit
    public static JsonResult submitted(Object data, String callback) {
        return buildJsonResult(ResultCode.SUBMITED, data, callback, null, true);
    }

    public static JsonResult forbidden(String callback) {
        return buildJsonResult(ResultCode.FORBIDDEN, null, callback, null, true);
    }

    public static JsonResult forbidden(Object data, String callback, String message) {
        return buildJsonResult(ResultCode.FORBIDDEN, data, callback, message, true);
    }

    public static JsonResult buildJsonResult(ResultCode code, Object data, String callback, String message,
            boolean escape) {
        if (StringUtils.isEmpty(callback)) {
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("result", code.getValue());// ??
            params.put("message", getMessage(code, message));// ???
            params.put("data", data == null ? "" : data);// ??
            return new DefaultJsonResult(params, escape);
        } else {
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("result", code.getValue());// ??
            params.put("message", getMessage(code, message));// ???
            params.put("data", data == null ? "" : data);// ??
            return new JSONPResult(params, callback, escape);
        }
    }

    private static String getMessage(ResultCode code, String message) {
        if (Argument.isNotBlank(message)) {
            return message;
        }
        switch (code) {
        case SUCCESS:
            return "??";
        case ERROR:
            return "?";
        case NEED_LOGIN:
            return "?";
        case SUBMITED:
            return "?????";
        case FORBIDDEN:
            return "???";
        default:
            return null;
        }
    }
}