package com.xt.hb.gis.ctl;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * 后台向前台传递的结果集<br>
 * <p>
 * 包含结果和消息两部分
 * <p>
 * 此对象仅用于controller层，其他层不要使用
 * 
 * @author 袁晓冬
 * 
 */
public class WebJsonResult implements Serializable {

    /** serialVersionUID */
    private static final long serialVersionUID = -4396170415938706672L;

    // 操作是否成功
    private boolean success = true;
    // 异常信息
    private String message;

    // 如果有多个结果，使用此属性
    private Map<String, Object> attrs = new HashMap<String, Object>();

    /**
     * 根据属性名称查询属性值
     * 
     * @param name
     *            属性名称
     * @return Object 属性值
     */
    public Object getAttr(String name) {
        return attrs.get(name);
    }

    /**
     * 获取返回结果属性
     * 
     * @return Map<String, Object>
     */
    public Map<String, Object> getAttrs() {
        return attrs;
    }

    /**
     * 获取执行结果返回消息
     * 
     * @return String
     */
    public String getMessage() {
        return message;
    }

    /**
     * 执行是否成功
     * 
     * @return
     */
    public boolean isSuccess() {
        return success;
    }

    /**
     * 设置返回结果属性
     * 
     * @param name
     *            属性名称
     * @param value
     *            属性值
     */
    public void setAttr(String name, Object value) {
        attrs.put(name, value);
    }

    /**
     * 设置返回结果属性，覆盖原有所有属性
     * 
     * @param attrs
     *            Map<String, Object>
     */
    public void setAttrs(Map<String, Object> attrs) {
        this.attrs = attrs;
    }

    /**
     * 设置执行结果返回消息
     * 
     * @param message
     *            String
     */
    public void setMessage(String message) {
        this.message = message;
    }

    /**
     * 设置执行是否成功
     * 
     * @param success
     *            boolean 执行结果
     */
    public void setSuccess(boolean success) {
        this.success = success;
    }
}
