| /* |
| * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. |
| * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| * |
| * This code is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License version 2 only, as |
| * published by the Free Software Foundation. Oracle designates this |
| * particular file as subject to the "Classpath" exception as provided |
| * by Oracle in the LICENSE file that accompanied this code. |
| * |
| * This code is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| * version 2 for more details (a copy is included in the LICENSE file that |
| * accompanied this code). |
| * |
| * You should have received a copy of the GNU General Public License version |
| * 2 along with this work; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| * |
| * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| * or visit www.oracle.com if you need additional information or have any |
| * questions. |
| */ |
| |
| package javax.naming; |
| |
| import java.util.Hashtable; |
| |
| /** |
| * This exception is thrown to indicate that the operation reached |
| * a point in the name where the operation cannot proceed any further. |
| * When performing an operation on a composite name, a naming service |
| * provider may reach a part of the name that does not belong to its |
| * namespace. At that point, it can construct a |
| * CannotProceedException and then invoke methods provided by |
| * javax.naming.spi.NamingManager (such as getContinuationContext()) |
| * to locate another provider to continue the operation. If this is |
| * not possible, this exception is raised to the caller of the |
| * context operation. |
| *<p> |
| * If the program wants to handle this exception in particular, it |
| * should catch CannotProceedException explicitly before attempting to |
| * catch NamingException. |
| *<p> |
| * A CannotProceedException instance is not synchronized against concurrent |
| * multithreaded access. Multiple threads trying to access and modify |
| * CannotProceedException should lock the object. |
| * |
| * @author Rosanna Lee |
| * @author Scott Seligman |
| * @since 1.3 |
| */ |
| |
| /* |
| * The serialized form of a CannotProceedException object consists of |
| * the serialized fields of its NamingException superclass, the remaining new |
| * name (a Name object), the environment (a Hashtable), the altName field |
| * (a Name object), and the serialized form of the altNameCtx field. |
| */ |
| |
| |
| public class CannotProceedException extends NamingException { |
| /** |
| * Contains the remaining unresolved part of the second |
| * "name" argument to Context.rename(). |
| * This information necessary for |
| * continuing the Context.rename() operation. |
| * <p> |
| * This field is initialized to null. |
| * It should not be manipulated directly: it should |
| * be accessed and updated using getRemainingName() and setRemainingName(). |
| * @serial |
| * |
| * @see #getRemainingNewName |
| * @see #setRemainingNewName |
| */ |
| protected Name remainingNewName = null; |
| |
| /** |
| * Contains the environment |
| * relevant for the Context or DirContext method that cannot proceed. |
| * <p> |
| * This field is initialized to null. |
| * It should not be manipulated directly: it should be accessed |
| * and updated using getEnvironment() and setEnvironment(). |
| * @serial |
| * |
| * @see #getEnvironment |
| * @see #setEnvironment |
| */ |
| protected Hashtable<?,?> environment = null; |
| |
| /** |
| * Contains the name of the resolved object, relative |
| * to the context <code>altNameCtx</code>. It is a composite name. |
| * If null, then no name is specified. |
| * See the <code>javax.naming.spi.ObjectFactory.getObjectInstance</code> |
| * method for details on how this is used. |
| * <p> |
| * This field is initialized to null. |
| * It should not be manipulated directly: it should |
| * be accessed and updated using getAltName() and setAltName(). |
| * @serial |
| * |
| * @see #getAltName |
| * @see #setAltName |
| * @see #altNameCtx |
| * @see javax.naming.spi.ObjectFactory#getObjectInstance |
| */ |
| protected Name altName = null; |
| |
| /** |
| * Contains the context relative to which |
| * <code>altName</code> is specified. If null, then the default initial |
| * context is implied. |
| * See the <code>javax.naming.spi.ObjectFactory.getObjectInstance</code> |
| * method for details on how this is used. |
| * <p> |
| * This field is initialized to null. |
| * It should not be manipulated directly: it should |
| * be accessed and updated using getAltNameCtx() and setAltNameCtx(). |
| * @serial |
| * |
| * @see #getAltNameCtx |
| * @see #setAltNameCtx |
| * @see #altName |
| * @see javax.naming.spi.ObjectFactory#getObjectInstance |
| */ |
| protected Context altNameCtx = null; |
| |
| /** |
| * Constructs a new instance of CannotProceedException using an |
| * explanation. All unspecified fields default to null. |
| * |
| * @param explanation A possibly null string containing additional |
| * detail about this exception. |
| * If null, this exception has no detail message. |
| * @see java.lang.Throwable#getMessage |
| */ |
| public CannotProceedException(String explanation) { |
| super(explanation); |
| } |
| |
| /** |
| * Constructs a new instance of CannotProceedException. |
| * All fields default to null. |
| */ |
| public CannotProceedException() { |
| super(); |
| } |
| |
| /** |
| * Retrieves the environment that was in effect when this exception |
| * was created. |
| * @return Possibly null environment property set. |
| * null means no environment was recorded for this exception. |
| * @see #setEnvironment |
| */ |
| public Hashtable<?,?> getEnvironment() { |
| return environment; |
| } |
| |
| /** |
| * Sets the environment that will be returned when getEnvironment() |
| * is called. |
| * @param environment A possibly null environment property set. |
| * null means no environment is being recorded for |
| * this exception. |
| * @see #getEnvironment |
| */ |
| public void setEnvironment(Hashtable<?,?> environment) { |
| this.environment = environment; // %%% clone it?? |
| } |
| |
| /** |
| * Retrieves the "remaining new name" field of this exception, which is |
| * used when this exception is thrown during a rename() operation. |
| * |
| * @return The possibly null part of the new name that has not been resolved. |
| * It is a composite name. It can be null, which means |
| * the remaining new name field has not been set. |
| * |
| * @see #setRemainingNewName |
| */ |
| public Name getRemainingNewName() { |
| return remainingNewName; |
| } |
| |
| /** |
| * Sets the "remaining new name" field of this exception. |
| * This is the value returned by <code>getRemainingNewName()</code>. |
| *<p> |
| * <tt>newName</tt> is a composite name. If the intent is to set |
| * this field using a compound name or string, you must |
| * "stringify" the compound name, and create a composite |
| * name with a single component using the string. You can then |
| * invoke this method using the resulting composite name. |
| *<p> |
| * A copy of <code>newName</code> is made and stored. |
| * Subsequent changes to <code>name</code> does not |
| * affect the copy in this NamingException and vice versa. |
| * |
| * @param newName The possibly null name to set the "remaining new name" to. |
| * If null, it sets the remaining name field to null. |
| * |
| * @see #getRemainingNewName |
| */ |
| public void setRemainingNewName(Name newName) { |
| if (newName != null) |
| this.remainingNewName = (Name)(newName.clone()); |
| else |
| this.remainingNewName = null; |
| } |
| |
| /** |
| * Retrieves the <code>altName</code> field of this exception. |
| * This is the name of the resolved object, relative to the context |
| * <code>altNameCtx</code>. It will be used during a subsequent call to the |
| * <code>javax.naming.spi.ObjectFactory.getObjectInstance</code> method. |
| * |
| * @return The name of the resolved object, relative to |
| * <code>altNameCtx</code>. |
| * It is a composite name. If null, then no name is specified. |
| * |
| * @see #setAltName |
| * @see #getAltNameCtx |
| * @see javax.naming.spi.ObjectFactory#getObjectInstance |
| */ |
| public Name getAltName() { |
| return altName; |
| } |
| |
| /** |
| * Sets the <code>altName</code> field of this exception. |
| * |
| * @param altName The name of the resolved object, relative to |
| * <code>altNameCtx</code>. |
| * It is a composite name. |
| * If null, then no name is specified. |
| * |
| * @see #getAltName |
| * @see #setAltNameCtx |
| */ |
| public void setAltName(Name altName) { |
| this.altName = altName; |
| } |
| |
| /** |
| * Retrieves the <code>altNameCtx</code> field of this exception. |
| * This is the context relative to which <code>altName</code> is named. |
| * It will be used during a subsequent call to the |
| * <code>javax.naming.spi.ObjectFactory.getObjectInstance</code> method. |
| * |
| * @return The context relative to which <code>altName</code> is named. |
| * If null, then the default initial context is implied. |
| * |
| * @see #setAltNameCtx |
| * @see #getAltName |
| * @see javax.naming.spi.ObjectFactory#getObjectInstance |
| */ |
| public Context getAltNameCtx() { |
| return altNameCtx; |
| } |
| |
| /** |
| * Sets the <code>altNameCtx</code> field of this exception. |
| * |
| * @param altNameCtx |
| * The context relative to which <code>altName</code> |
| * is named. If null, then the default initial context |
| * is implied. |
| * |
| * @see #getAltNameCtx |
| * @see #setAltName |
| */ |
| public void setAltNameCtx(Context altNameCtx) { |
| this.altNameCtx = altNameCtx; |
| } |
| |
| |
| /** |
| * Use serialVersionUID from JNDI 1.1.1 for interoperability |
| */ |
| private static final long serialVersionUID = 1219724816191576813L; |
| } |