001// *************************************************************************************************************************** 002// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * 003// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * 004// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * 005// * with the License. You may obtain a copy of the License at * 006// * * 007// * http://www.apache.org/licenses/LICENSE-2.0 * 008// * * 009// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * 010// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * 011// * specific language governing permissions and limitations under the License. * 012// *************************************************************************************************************************** 013package org.apache.juneau.rest.response; 014 015import static org.apache.juneau.rest.response.MovedPermanently.*; 016 017import java.net.*; 018 019import org.apache.juneau.annotation.BeanIgnore; 020import org.apache.juneau.http.annotation.*; 021 022/** 023 * Represents an <c>HTTP 301 Moved Permanently</c> response. 024 * 025 * <p> 026 * This and all future requests should be directed to the given URI. 027 * 028 * @deprecated Use {@link org.apache.juneau.http.response.MovedPermanently} 029 */ 030@Response(code=CODE, description=MESSAGE) 031@BeanIgnore 032@Deprecated 033public class MovedPermanently extends HttpResponse { 034 035 /** HTTP status code */ 036 public static final int CODE = 301; 037 038 /** Default message */ 039 public static final String MESSAGE = "Moved Permanently"; 040 041 /** Reusable instance. */ 042 public static final MovedPermanently INSTANCE = new MovedPermanently(); 043 044 private final URI location; 045 046 /** 047 * Constructor using HTTP-standard message. 048 */ 049 public MovedPermanently() { 050 this(MESSAGE, null); 051 } 052 053 /** 054 * Constructor with no redirect. 055 * <p> 056 * Used for end-to-end interfaces. 057 * 058 * @param message Message to send as the response. 059 */ 060 public MovedPermanently(String message) { 061 super(message); 062 this.location = null; 063 } 064 065 /** 066 * Constructor using custom message. 067 * @param message Message to send as the response. 068 * @param location <c>Location</c> header value. 069 */ 070 public MovedPermanently(String message, URI location) { 071 super(message); 072 this.location = location; 073 } 074 075 /** 076 * Constructor. 077 * @param location <c>Location</c> header value. 078 */ 079 public MovedPermanently(URI location) { 080 this(MESSAGE, location); 081 } 082 083 /** 084 * @return <c>Location</c> header value. 085 */ 086 @ResponseHeader(name="Location", description="New location of resource.") 087 public URI getLocation() { 088 return location; 089 } 090}