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

org.conqat.engine.service.shared.client.ServiceCallException Maven / Gradle / Ivy

There is a newer version: 2025.1.0-rc2
Show newest version
/*-------------------------------------------------------------------------+
|                                                                          |
| Copyright 2005-2011 the ConQAT Project                                   |
|                                                                          |
| Licensed under the Apache License, Version 2.0 (the "License");          |
| you may not use this file except in compliance with the License.         |
| You may obtain a copy of the License at                                  |
|                                                                          |
|    http://www.apache.org/licenses/LICENSE-2.0                            |
|                                                                          |
| Unless required by applicable law or agreed to in writing, software      |
| distributed under the License is distributed on an "AS IS" BASIS,        |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and      |
| limitations under the License.                                           |
+-------------------------------------------------------------------------*/
package org.conqat.engine.service.shared.client;

import java.net.URI;

import org.conqat.lib.commons.string.StringUtils;

/**
 * Exception used for failing service calls.
 */
public class ServiceCallException extends Exception {

	/**
	 * Version for serialization.
	 */
	private static final long serialVersionUID = 1;

	/**
	 * The status message of the server response.
	 */
	private String statusMessage = null;

	/**
	 * The status code of the server response.
	 */
	private int statusCode = 0;

	/**
	 * The body of the server response.
	 */
	private String requestBody = null;

	public ServiceCallException(URI url, String statusMessage, int statusCode, String requestBody) {
		this(formatMessage(url, statusMessage, statusCode, requestBody));
		this.statusMessage = statusMessage;
		this.statusCode = statusCode;
		this.requestBody = requestBody;
	}

	public ServiceCallException(String message) {
		super(message);
	}

	public ServiceCallException(String message, Throwable cause) {
		super(message, cause);
	}

	public ServiceCallException(Throwable cause) {
		this(cause.getMessage(), cause);
	}

	private static String formatMessage(URI url, String statusMessage, int statusCode, String requestBody) {
		String message = "Request to '" + url + "' was not successful: " + statusCode + " " + statusMessage;
		if (!StringUtils.isEmpty(requestBody)) {
			message += StringUtils.LINE_FEED + requestBody;
		}

		return message;
	}

	/**
	 * @see #statusMessage
	 */
	public String getStatusMessage() {
		return statusMessage;
	}

	/**
	 * @see #statusCode
	 */
	public int getStatusCode() {
		return statusCode;
	}

	/**
	 * @see #requestBody
	 */
	public String getRequestBody() {
		return requestBody;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy