package com.baidu.dsp.common.exception;
import java.util.HashMap;
import java.util.Map;
import com.baidu.dsp.common.constant.ErrorCode;
import com.baidu.dsp.common.constant.ModuleCode;
import com.baidu.dsp.common.exception.base.RuntimeGlobalException;
/**
* 专门用业务逻辑校验出错的异常
*
* @author liaoqiqi
* @version 2013-12-2
*/
public class FieldException extends RuntimeGlobalException {
/**
*
*/
private static final long serialVersionUID = -774654820037286427L;
private Map<String, String> messageErrorMap = new HashMap<String, String>();
private Map<String, Object[]> messageErrorArgs = new HashMap<String, Object[]>();
private boolean isGlobal = false;
private String globalErrorMsg = "";
private Object[] globalErrorArgs;
/**
* 局部的,非Map形式
*
* @param field
* @param messageSource
*/
public FieldException(String field, String messageSource, Throwable throwable) {
super(ErrorCode.FIELD_ERROR, messageSource, throwable);
messageErrorMap.put(field, messageSource);
}
/**
* 局部的,用Map形式
*
* @param errorMap
*/
public FieldException(Map<String, String> errorMap, Throwable throwable) {
super(ErrorCode.FIELD_ERROR, "FIELD ERROR LIST", throwable);
if (errorMap != null) {
messageErrorMap = errorMap;
}
}
/**
* 局部的,用Map形式
*
* @param errorMap
*/
public FieldException(Map<String, String> errorMap, Map<String, Object[]> errorArgs, Throwable throwable) {
super(ErrorCode.FIELD_ERROR, "FIELD ERROR LIST", throwable);
if (errorMap != null) {
messageErrorMap = errorMap;
messageErrorArgs = errorArgs;
}
}
/**
* 全局的
*
* @param globalErrorMsg
*/
public FieldException(String globalErrorMsg, Throwable throwable) {
super(ErrorCode.FIELD_ERROR, "GLOBAL FIELD ERROR", throwable);
isGlobal = true;
this.globalErrorMsg = globalErrorMsg;
}
/**
* 全局的
*
* @param globalErrorMsg
* @param
*/
public FieldException(String globalErrorMsg, Object[] globalErrorArgs, Throwable throwable) {
this(globalErrorMsg, throwable);
this.globalErrorArgs = globalErrorArgs;
}
public Map<String, String> getMessageErrorMap() {
return messageErrorMap;
}
public boolean isGlobal() {
return isGlobal;
}
public String getGlobalErrorMsg() {
return globalErrorMsg;
}
public void setGlobalErrorMsg(String globalErrorMsg) {
this.globalErrorMsg = globalErrorMsg;
}
public Object[] getGlobalErrorArgs() {
return globalErrorArgs;
}
public void setGlobalErrorArgs(Object[] globalErrorArgs) {
this.globalErrorArgs = globalErrorArgs;
}
public Map<String, Object[]> getMessageErrorArgs() {
return messageErrorArgs;
}
@Override
public ModuleCode getModuleCode() {
return null;
}
}