001 /* ForwardRequest.java --
002 Copyright (C) 2005, 2006 Free Software Foundation, Inc.
003
004 This file is part of GNU Classpath.
005
006 GNU Classpath is free software; you can redistribute it and/or modify
007 it under the terms of the GNU General Public License as published by
008 the Free Software Foundation; either version 2, or (at your option)
009 any later version.
010
011 GNU Classpath is distributed in the hope that it will be useful, but
012 WITHOUT ANY WARRANTY; without even the implied warranty of
013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014 General Public License for more details.
015
016 You should have received a copy of the GNU General Public License
017 along with GNU Classpath; see the file COPYING. If not, write to the
018 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
019 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
020 02110-1301 USA.
021
022
023 Linking this library statically or dynamically with other modules is
024 making a combined work based on this library. Thus, the terms and
025 conditions of the GNU General Public License cover the whole
026 combination.
027
028 As a special exception, the copyright holders of this library give you
029 permission to link this library with independent modules to produce an
030 executable, regardless of the license terms of these independent
031 modules, and to copy and distribute the resulting executable under
032 terms of your choice, provided that you also meet, for each linked
033 independent module, the terms and conditions of the license of that
034 module. An independent module is a module which is not derived from
035 or based on this library. If you modify this library, you may extend
036 this exception to your version of the library, but you are not
037 obligated to do so. If you do not wish to do so, delete this
038 exception statement from your version. */
039
040
041 package org.omg.PortableServer;
042
043 import org.omg.CORBA.UserException;
044 import org.omg.CORBA.portable.IDLEntity;
045
046 import java.io.Serializable;
047
048 /**
049 * <p>
050 * This exception is raised by {@link ServantManager} to indicate that the
051 * invocation target has moved to another known location. In this case,
052 * the client will receive a redirection (LOCATION_FORWARD) message and should
053 * resend the request to the new target. The exception contains the object
054 * reference, indicating the new location.
055 * </p><p>
056 * The exception can be thrown both by servant locators and servant activators.
057 * If the exception is raised anywhere else than in the ServantManager
058 * methods, it is handled as an ordinary user excepton.
059 * </p>
060 *
061 * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
062 */
063 public final class ForwardRequest
064 extends UserException
065 implements IDLEntity, Serializable
066 {
067 /**
068 * Use serialVersionUID (v1.4) for interoperability.
069 */
070 private static final long serialVersionUID = -4159318367582473975L;
071
072 /**
073 * The object reference, indicating the new location of the invocation target.
074 */
075 public org.omg.CORBA.Object forward_reference;
076
077 /**
078 * Create ForwardRequest with no explaining message and stating the
079 * new location is <code>null</code>.
080 */
081 public ForwardRequest()
082 {
083 }
084
085 /**
086 * Create the ForwardRequest with explaining message and
087 * initialising the object reference to the given value.
088 *
089 * @param why a string, explaining, why this exception has been thrown.
090 * @param a_forward_reference a value for forward_reference.
091 */
092 public ForwardRequest(String why, org.omg.CORBA.Object a_forward_reference)
093 {
094 super(why);
095 this.forward_reference = a_forward_reference;
096 }
097
098 /**
099 * Create the ForwardRequest without explaining
100 * message and initialising the object reference to the given value.
101 *
102 * @param a_forward_reference a value for forward_reference.
103 */
104 public ForwardRequest(org.omg.CORBA.Object a_forward_reference)
105 {
106 this.forward_reference = a_forward_reference;
107 }
108 }