/**
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package org.mifosplatform.infrastructure.core.data;
import java.util.ArrayList;
import java.util.List;
public class ApiParameterError {
/**
* A developer friendly plain English description of why the HTTP error
* response was returned from the API.
*/
private String developerMessage;
/**
* A user friendly plain English description of why the HTTP error response
* was returned from the API that can be presented to end users.
*/
private String defaultUserMessage;
/**
* A code that can be used for globalisation support by client applications
* of the API.
*/
private String userMessageGlobalisationCode;
/**
* The name of the field or parameter passed to the API that this error
* relates to.
*/
private String parameterName;
/**
* The actual value of the parameter (if any) as passed to API.
*/
private Object value;
/**
* Arguments related to the user error message.
*/
private List<ApiErrorMessageArg> args = new ArrayList<>();
public static ApiParameterError generalError(final String globalisationMessageCode, final String defaultUserMessage,
final Object... defaultUserMessageArgs) {
return new ApiParameterError(globalisationMessageCode, defaultUserMessage, defaultUserMessageArgs);
}
public static ApiParameterError resourceIdentifierNotFound(final String globalisationMessageCode, final String defaultUserMessage,
final Object... defaultUserMessageArgs) {
return new ApiParameterError(globalisationMessageCode, defaultUserMessage, defaultUserMessageArgs);
}
public static ApiParameterError parameterError(final String globalisationMessageCode, final String defaultUserMessage,
final String parameterName, final Object... defaultUserMessageArgs) {
final ApiParameterError error = new ApiParameterError(globalisationMessageCode, defaultUserMessage, defaultUserMessageArgs);
error.setParameterName(parameterName);
return error;
}
protected ApiParameterError() {
//
}
private ApiParameterError(final String globalisationMessageCode, final String defaultUserMessage, final Object[] defaultUserMessageArgs) {
this.userMessageGlobalisationCode = globalisationMessageCode;
this.developerMessage = defaultUserMessage;
this.defaultUserMessage = defaultUserMessage;
final List<ApiErrorMessageArg> messageArgs = new ArrayList<>();
if (defaultUserMessageArgs != null) {
for (final Object object : defaultUserMessageArgs) {
messageArgs.add(ApiErrorMessageArg.from(object));
}
}
this.args = messageArgs;
this.parameterName = "id";
}
public String getDeveloperMessage() {
return this.developerMessage;
}
public void setDeveloperMessage(final String developerMessage) {
this.developerMessage = developerMessage;
}
public String getDefaultUserMessage() {
return this.defaultUserMessage;
}
public void setDefaultUserMessage(final String defaultUserMessage) {
this.defaultUserMessage = defaultUserMessage;
}
public String getUserMessageGlobalisationCode() {
return this.userMessageGlobalisationCode;
}
public void setUserMessageGlobalisationCode(final String userMessageGlobalisationCode) {
this.userMessageGlobalisationCode = userMessageGlobalisationCode;
}
public String getParameterName() {
return this.parameterName;
}
public void setParameterName(final String parameterName) {
this.parameterName = parameterName;
}
public Object getValue() {
return this.value;
}
public void setValue(final Object value) {
this.value = value;
}
public List<ApiErrorMessageArg> getArgs() {
return this.args;
}
public void setArgs(final List<ApiErrorMessageArg> args) {
this.args = args;
}
}