blob: ac5aa7af37514e9342800175f6d1178b3419f7de [file] [log] [blame]
// ***************************************************************************************************************************
// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file *
// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file *
// * to you 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.apache.juneau.http.response;
import static org.apache.juneau.http.response.UpgradeRequired.*;
import java.text.*;
import java.util.*;
import org.apache.http.*;
import org.apache.http.Header;
import org.apache.juneau.annotation.*;
import org.apache.juneau.http.*;
import org.apache.juneau.http.annotation.*;
import org.apache.juneau.http.header.*;
import org.apache.juneau.internal.*;
/**
* Exception representing an HTTP 426 (Upgrade Required).
*
* <p>
* The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.
*
* <h5 class='section'>See Also:</h5><ul>
* <li class='link'><a class="doclink" href="../../../../../index.html#juneau-rest-common">juneau-rest-common</a>
* </ul>
*
* @serial exclude
*/
@Response
@StatusCode(STATUS_CODE)
@Schema(description=REASON_PHRASE)
@FluentSetters
public class UpgradeRequired extends BasicHttpException {
private static final long serialVersionUID = 1L;
/** HTTP status code */
public static final int STATUS_CODE = 426;
/** Reason phrase */
public static final String REASON_PHRASE = "Upgrade Required";
/** Default status line */
private static final BasicStatusLine STATUS_LINE = BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
/** Reusable unmodifiable instance */
public static final UpgradeRequired INSTANCE = new UpgradeRequired().setUnmodifiable();
/**
* Constructor.
*
* @param cause The caused-by exception. Can be <jk>null</jk>.
* @param msg The message. Can be <jk>null</jk>.
* @param args The message arguments.
*/
public UpgradeRequired(Throwable cause, String msg, Object...args) {
super(STATUS_CODE, cause, msg, args);
setStatusLine(STATUS_LINE.copy());
}
/**
* Constructor.
*/
public UpgradeRequired() {
this((Throwable)null, REASON_PHRASE);
}
/**
* Constructor.
*
* @param msg The message. Can be <jk>null</jk>.
* @param args Optional {@link MessageFormat}-style arguments in the message.
*/
public UpgradeRequired(String msg, Object...args) {
this((Throwable)null, msg, args);
}
/**
* Constructor.
*
* @param cause The cause. Can be <jk>null</jk>.
*/
public UpgradeRequired(Throwable cause) {
this(cause, cause == null ? REASON_PHRASE : cause.getMessage());
}
/**
* Constructor.
*
* <p>
* This is the constructor used when parsing an HTTP response.
*
* @param response The HTTP response to copy from. Must not be <jk>null</jk>.
* @throws AssertionError If HTTP response status code does not match what was expected.
*/
public UpgradeRequired(HttpResponse response) {
super(response);
assertStatusCode(response);
}
/**
* Copy constructor.
*
* @param copyFrom The bean to copy.
*/
protected UpgradeRequired(UpgradeRequired copyFrom) {
super(copyFrom);
}
/**
* Creates a modifiable copy of this bean.
*
* @return A new modifiable bean.
*/
public UpgradeRequired copy() {
return new UpgradeRequired(this);
}
// <FluentSetters>
@Override /* GENERATED - org.apache.juneau.BasicRuntimeException */
public UpgradeRequired setMessage(String message, Object...args) {
super.setMessage(message, args);
return this;
}
@Override /* GENERATED - org.apache.juneau.BasicRuntimeException */
public UpgradeRequired setUnmodifiable() {
super.setUnmodifiable();
return this;
}
@Override /* GENERATED - org.apache.juneau.http.response.BasicHttpException */
public UpgradeRequired setHeader2(String name, Object value) {
super.setHeader2(name, value);
return this;
}
@Override /* GENERATED - org.apache.juneau.http.response.BasicHttpException */
public UpgradeRequired setHeaders(HeaderList value) {
super.setHeaders(value);
return this;
}
@Override /* GENERATED - org.apache.juneau.http.response.BasicHttpException */
public UpgradeRequired setHeaders2(Header...values) {
super.setHeaders2(values);
return this;
}
@Override /* GENERATED - org.apache.juneau.http.response.BasicHttpException */
public UpgradeRequired setLocale2(Locale value) {
super.setLocale2(value);
return this;
}
@Override /* GENERATED - org.apache.juneau.http.response.BasicHttpException */
public UpgradeRequired setProtocolVersion(ProtocolVersion value) {
super.setProtocolVersion(value);
return this;
}
@Override /* GENERATED - org.apache.juneau.http.response.BasicHttpException */
public UpgradeRequired setReasonPhrase2(String value) {
super.setReasonPhrase2(value);
return this;
}
@Override /* GENERATED - org.apache.juneau.http.response.BasicHttpException */
public UpgradeRequired setReasonPhraseCatalog(ReasonPhraseCatalog value) {
super.setReasonPhraseCatalog(value);
return this;
}
@Override /* GENERATED - org.apache.juneau.http.response.BasicHttpException */
public UpgradeRequired setStatusCode2(int code) throws IllegalStateException{
super.setStatusCode2(code);
return this;
}
@Override /* GENERATED - org.apache.juneau.http.response.BasicHttpException */
public UpgradeRequired setStatusLine(BasicStatusLine value) {
super.setStatusLine(value);
return this;
}
// </FluentSetters>
}