![JAR search and dependency download from the Maven repository](/logo.png)
org.xins.client.UnacceptableMessageException Maven / Gradle / Ivy
The newest version!
/*
* $Id: UnacceptableMessageException.java,v 1.9 2011/04/16 15:48:02 agoubard Exp $
*
* See the COPYRIGHT file for redistribution and use restrictions.
*/
package org.xins.client;
import java.util.List;
import org.w3c.dom.Element;
import org.xins.common.xml.DataElementBuilder;
/**
* Exception that indicates that a request for an API call is considered
* unacceptable on the application-level. For example, a mandatory input
* parameter may be missing.
*
* @version $Revision: 1.9 $ $Date: 2011/04/16 15:48:02 $
* @author Ernst de Haan
* @author Anthony Goubard
*
* @since XINS 2.0
*/
public class UnacceptableMessageException extends XINSCallException {
// TODO: Support XINSCallRequest objects?
// TODO: Is the name UnacceptableRequestException okay?
/**
* The DataElement containing the errors.
*/
private DataElementBuilder _errors = new DataElementBuilder();
/**
* The error message.
*/
private String _message;
/**
* Constructs a new UnacceptableMessageException
using the
* specified AbstractCAPICallRequest
.
*
* @param request
* the {@link AbstractCAPICallRequest} that is considered unacceptable,
* cannot be null
.
*/
UnacceptableMessageException(XINSCallRequest request) {
super("Invalid request", request, null, 0L, null, null);
}
/**
* Constructs a new UnacceptableMessageException
using the
* specified XINSCallResult
.
* This constructor is used by the generated CAPI.
*
* @param result
* the {@link XINSCallResult} that is considered unacceptable,
* cannot be null
.
*/
public UnacceptableMessageException(XINSCallResult result) {
super("Invalid result", result, null, null);
}
/**
* Returns the message for this exception.
*
* @return
* the exception message, can be null
.
*/
public String getMessage() {
if (_message == null) {
_message = InvalidRequestException.createMessage(_errors.getDataElement());
}
return _message;
}
/**
* Adds to the response that a paramater that is missing.
*
* @param parameter
* the missing parameter.
*/
public void addMissingParameter(String parameter) {
Element missingParam = _errors.addToDataElement("missing-param");
missingParam.setAttribute("param", parameter);
}
/**
* Adds to the response a parameter that is missing in an element.
*
* @param parameter
* the missing parameter.
*
* @param element
* the element in which the parameter is missing.
*/
public void addMissingParameter(String parameter, String element) {
Element missingParam = _errors.addToDataElement("missing-param");
missingParam.setAttribute("param", parameter);
missingParam.setAttribute("element", element);
}
/**
* Adds an invalid value for a specified type.
*
* @param parameter
* the name of the parameter passed by the user.
*
* @param type
* the type which this parameter should be compliant with.
*
* @deprecated since XINS 2.0, use {@link #addInvalidValueForType(String, String, String)}.
*/
public void addInvalidValueForType(String parameter, String type) {
Element invalidValue = _errors.addToDataElement("invalid-value-for-type");
invalidValue.setAttribute("param", parameter);
invalidValue.setAttribute("type", type);
}
/**
* Adds an invalid value for a specified type.
*
* @param parameter
* the name of the parameter passed by the user.
*
* @param value
* the value of the parameter passed by the user.
*
* @param type
* the type which this parameter should be compliant with.
*
* @since XINS 2.0
*/
public void addInvalidValueForType(String parameter, String value, String type) {
Element invalidValue = _errors.addToDataElement("invalid-value-for-type");
invalidValue.setAttribute("param", parameter);
invalidValue.setAttribute("value", value);
invalidValue.setAttribute("type", type);
}
/**
* Adds an invalid value for a specified type.
*
* @param parameter
* the parameter passed by the user.
*
* @param value
* the value of the parameter passed by the user.
*
* @param type
* the type which this parameter should be compliant with.
*
* @param element
* the element in which the parameter is missing.
*
* @since XINS 2.0
*/
public void addInvalidValueForType(String parameter, String value, String type, String element) {
Element invalidValue = _errors.addToDataElement("invalid-value-for-type");
invalidValue.setAttribute("param", parameter);
invalidValue.setAttribute("value", value);
invalidValue.setAttribute("type", type);
invalidValue.setAttribute("element", element);
}
/**
* Adds an invalid combination of parameters.
*
* @param type
* the type of the combination.
*
* @param parameters
* list of the parameters in the combination passed as a list of
* {@link String} objects.
*/
public void addParamCombo(String type, List parameters) {
Element paramCombo = _errors.addToDataElement("param-combo");
paramCombo.setAttribute("type", type);
for (String parameter : parameters) {
Element param = _errors.createElement("param");
param.setAttribute("name", parameter);
paramCombo.appendChild(param);
}
}
/**
* Adds an invalid combination of attributes.
*
* @param type
* the type of the combination.
*
* @param attributes
* list of the attributes in the combination passed as a list of
* {@link String} objects.
*
* @param elementName
* the name of the element to which these attributes belong.
*
* @since XINS 1.4.0
*/
public void addAttributeCombo(String type, List attributes, String elementName) {
Element attributeCombo = _errors.addToDataElement("attribute-combo");
attributeCombo.setAttribute("type", type);
for (String attribute : attributes) {
Element attributeElement = _errors.createElement("attribute");
attributeElement.setAttribute("name", attribute);
attributeCombo.appendChild(attributeElement);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy