All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.xins.client.UnacceptableResultXINSCallException Maven / Gradle / Ivy

There is a newer version: 3.0
Show newest version
/*
 * $Id: UnacceptableResultXINSCallException.java,v 1.23 2008/07/04 10:22:49 agoubard Exp $
 *
 * Copyright 2003-2008 Online Breedband B.V.
 * See the COPYRIGHT file for redistribution and use restrictions.
 */
package org.xins.client;

import org.xins.common.MandatoryArgumentChecker;
import org.xins.common.collections.PropertyReader;
import org.xins.common.service.TargetDescriptor;
import org.xins.common.xml.Element;

/**
 * Exception that indicates that an API call returned a result that was
 * considered unacceptable by the application layer.
 *
 * 

Note that this exception is not thrown if the result is * invalid according to the XINS rules for a result XML document. Only if the * result is just invalid in relation to the applicable API specification this * exception is thrown. * * @version $Revision: 1.23 $ $Date: 2008/07/04 10:22:49 $ * @author Ernst de Haan * * @since XINS 1.0.0 */ public class UnacceptableResultXINSCallException extends XINSCallException { /** * The result that is considered unacceptable. Never null. */ private final XINSCallResultData _result; /** * Constructs a new UnacceptableCallResultException using the * specified XINSCallResult. * * @param result * the {@link XINSCallResult} that is considered unacceptable, never * null. * * @param detail * a detailed description of why the result is considered unacceptable, * or null if such a description is not available. * * @param cause * the optional cause exception, or null. * * @throws IllegalArgumentException * if result == null. */ public UnacceptableResultXINSCallException(XINSCallResult result, String detail, Throwable cause) throws IllegalArgumentException { super("Unacceptable XINS call result", result, detail, cause); // Store the result _result = result; } /** * Constructs a new UnacceptableCallResultException using the * specified AbstractCAPICallResult. * * @param result * the {@link AbstractCAPICallResult} that is considered unacceptable, * never null. * * @param detail * a detailed description of why the result is considered unacceptable, * or null if such a description is not available. * * @param cause * the optional cause exception, or null. * * @throws IllegalArgumentException * if result == null. */ public UnacceptableResultXINSCallException(AbstractCAPICallResult result, String detail, Throwable cause) throws IllegalArgumentException { this(checkArguments(result).getXINSCallResult(), detail, cause); } /** * Constructs a new UnacceptableResultXINSCallException based * on a XINSCallResultData instance. * * @param request * the original request, cannot be null. * * @param target * descriptor for the target that was attempted to be called, cannot be * null. * * @param duration * the call duration in milliseconds, must be >= 0. * * @param resultData * the result data, cannot be null. * * @param detail * detail message, or null. * * @throws IllegalArgumentException * if request == null * || target == null * || duration < 0 * || resultData == null * || resultData.{@link XINSCallResult#getErrorCode() getErrorCode()} == null. */ UnacceptableResultXINSCallException(XINSCallRequest request, TargetDescriptor target, long duration, XINSCallResultData resultData, String detail) throws IllegalArgumentException { super("Unacceptable XINS call result", request, target, duration, detail, (Throwable) null); // Check additional precondition MandatoryArgumentChecker.check("resultData", resultData); // Store details _result = resultData; } /** * Checks the mandatory result argument for the constructor * that accepts an AbstractCAPICallResult. * * @param result * the argument for the constructor, cannot be null. * * @return * the argument result, guaranteed not null. * * @throws IllegalArgumentException * if result == null. */ private static AbstractCAPICallResult checkArguments(AbstractCAPICallResult result) throws IllegalArgumentException { MandatoryArgumentChecker.check("result", result); return result; } /** * Returns the error code. * * @return * the error code or null if the call was successful and no * error code was returned. */ public final String getErrorCode() { return _result.getErrorCode(); } /** * Gets all returned parameters. * * @return * a {@link PropertyReader} containing all parameters, or * null if there are none. */ public final PropertyReader getParameters() { return _result.getParameters(); } /** * Gets the value of the specified returned parameter. * * @param name * the parameter name, not null. * * @return * the value of the parameter, or null if there is no values. * * @throws IllegalArgumentException * if name == null. */ public final String getParameter(String name) throws IllegalArgumentException { PropertyReader p = getParameters(); if (p == null) { return null; } else { return p.get(name); } } /** * Returns the optional extra data. * * @return * the extra data as an {@link Element}, can be null; */ public final Element getDataElement() { return _result.getDataElement(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy