| /* |
| * 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; |
| } |
| } |