View Javadoc

    1   /*
    2    * $Id: DefinitionsFactoryException.java 471754 2006-11-06 14:55:09Z husted $
    3    *
    4    * Licensed to the Apache Software Foundation (ASF) under one
    5    * or more contributor license agreements.  See the NOTICE file
    6    * distributed with this work for additional information
    7    * regarding copyright ownership.  The ASF licenses this file
    8    * to you under the Apache License, Version 2.0 (the
    9    * "License"); you may not use this file except in compliance
    10   * with the License.  You may obtain a copy of the License at
    11   *
    12   *  http://www.apache.org/licenses/LICENSE-2.0
    13   *
    14   * Unless required by applicable law or agreed to in writing,
    15   * software distributed under the License is distributed on an
    16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17   * KIND, either express or implied.  See the License for the
    18   * specific language governing permissions and limitations
    19   * under the License.
    20   */
    21
    22
    23  package org.apache.struts.tiles;
    24
    25    /**
    26     * Exception thrown when an error occurs while the factory tries to
    27     * create a new instance mapper.
    28     */
    29  public class DefinitionsFactoryException extends TilesException
    30  {
    31    /**
    32      * Constructor.
    33      */
    34    public DefinitionsFactoryException()
    35      {
    36      super();
    37      this.exception = null;
    38    }
    39
    40    /**
    41      * Constructor.
    42      * @param message The error or warning message.
    43      */
    44    public DefinitionsFactoryException(String message)
    45      {
    46      super(message);
    47      this.exception = null;
    48    }
    49
    50
    51    /**
    52      * Create a new <code>DefinitionsFactoryException</code> wrapping an existing exception.
    53      *
    54      * <p>The existing exception will be embedded in the new
    55      * one and its message will become the default message for
    56      * the DefinitionsFactoryException.</p>
    57      *
    58      * @param e The exception to be wrapped.
    59      */
    60    public DefinitionsFactoryException(Exception e)
    61    {
    62      super();
    63      this.exception = e;
    64    }
    65
    66
    67    /**
    68      * Create a new <code>DefinitionsFactoryException</code> from an existing exception.
    69      *
    70      * <p>The existing exception will be embedded in the new
    71      * one, but the new exception will have its own message.</p>
    72      *
    73      * @param message The detail message.
    74      * @param e The exception to be wrapped.
    75      */
    76    public DefinitionsFactoryException(String message, Exception e)
    77    {
    78      super(message);
    79      this.exception = e;
    80    }
    81
    82
    83    /**
    84      * Return a detail message for this exception.
    85      *
    86      * <p>If there is a embedded exception, and if the DefinitionsFactoryException
    87      * has no detail message of its own, this method will return
    88      * the detail message from the embedded exception.</p>
    89      *
    90      * @return The error or warning message.
    91      */
    92    public String getMessage ()
    93    {
    94      String message = super.getMessage ();
    95
    96      if (message == null && exception != null) {
    97        return exception.getMessage();
    98      } else {
    99        return message;
    100     }
    101   }
    102
    103
    104   /**
    105     * Return the embedded exception, if any.
    106     * @return The embedded exception, or <code>null</code> if there is none.
    107     */
    108   public Exception getException ()
    109   {
    110     return exception;
    111   }
    112
    113   //////////////////////////////////////////////////////////////////////
    114   // Internal state.
    115   //////////////////////////////////////////////////////////////////////
    116
    117
    118   /**
    119    * Any "wrapped" exception will be exposed when this is serialized.
    120    * @serial
    121    */
    122   private Exception exception;
    123 }