blob: 4fafce32d40c1d136ff2c8caa65bf7e559e7bc41 [file] [log] [blame]
/*
* Copyright (C) 2011-2012, Google Inc. and others
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0 which is available at
* https://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package org.eclipse.jgit.transport;
import java.io.IOException;
import org.eclipse.jgit.internal.JGitText;
/**
* Indicates a transport service may not continue execution.
*
* @since 2.0
*/
public class ServiceMayNotContinueException extends IOException {
private static final int FORBIDDEN = 403;
private static final long serialVersionUID = 1L;
private final int statusCode;
private boolean output;
/**
* Initialize with no message.
*/
public ServiceMayNotContinueException() {
// Do not set a message.
statusCode = FORBIDDEN;
}
/**
* <p>Constructor for ServiceMayNotContinueException.</p>
*
* @param msg
* a message explaining why it cannot continue. This message may
* be shown to an end-user.
*/
public ServiceMayNotContinueException(String msg) {
super(msg);
statusCode = FORBIDDEN;
}
/**
* <p>Constructor for ServiceMayNotContinueException.</p>
*
* @param msg
* a message explaining why it cannot continue. This message may
* be shown to an end-user.
* @param statusCode
* the HTTP status code.
* @since 4.5
*/
public ServiceMayNotContinueException(String msg, int statusCode) {
super(msg);
this.statusCode = statusCode;
}
/**
* <p>Constructor for ServiceMayNotContinueException.</p>
*
* @param msg
* a message explaining why it cannot continue. This message may
* be shown to an end-user.
* @param cause
* the cause of the exception.
* @since 3.2
*/
public ServiceMayNotContinueException(String msg, Throwable cause) {
super(msg, cause);
statusCode = FORBIDDEN;
}
/**
* <p>Constructor for ServiceMayNotContinueException.</p>
*
* @param msg
* a message explaining why it cannot continue. This message may
* be shown to an end-user.
* @param cause
* the cause of the exception.
* @param statusCode
* the HTTP status code.
* @since 4.5
*/
public ServiceMayNotContinueException(
String msg, Throwable cause, int statusCode) {
super(msg, cause);
this.statusCode = statusCode;
}
/**
* Initialize with an "internal server error" message and a cause.
*
* @param cause
* the cause of the exception.
* @since 3.2
*/
public ServiceMayNotContinueException(Throwable cause) {
this(JGitText.get().internalServerError, cause);
}
/**
* Whether the message was already output to the client.
*
* @return {@code true} if the message was already output to the client.
*/
public boolean isOutput() {
return output;
}
/**
* Mark this message has being sent to the client.
*/
public void setOutput() {
output = true;
}
/**
* Get status code
*
* @return true if the message was already output to the client.
* @since 4.5
*/
public int getStatusCode() {
return statusCode;
}
}