Save This Page
Home » openjdk-7 » javax » xml » bind » [javadoc | source]
    1   /*
    2    * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Sun designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Sun in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22    * CA 95054 USA or visit www.sun.com if you need additional information or
   23    * have any questions.
   24    */
   25   
   26   package javax.xml.bind;
   27   
   28   import java.io.PrintWriter;
   29   
   30   /**
   31    * This is the root exception class for all JAXB exceptions.
   32    *
   33    * @author <ul><li>Ryan Shoemaker, Sun Microsystems, Inc.</li></ul>
   34    * @see JAXBContext
   35    * @see Marshaller
   36    * @see Unmarshaller
   37    * @since JAXB1.0
   38    */
   39   public class JAXBException extends Exception {
   40   
   41       /**
   42        * Vendor specific error code
   43        *
   44        */
   45       private String errorCode;
   46   
   47       /**
   48        * Exception reference
   49        *
   50        */
   51       private Throwable linkedException;
   52   
   53       static final long serialVersionUID = -5621384651494307979L;
   54   
   55       /**
   56        * Construct a JAXBException with the specified detail message.  The
   57        * errorCode and linkedException will default to null.
   58        *
   59        * @param message a description of the exception
   60        */
   61       public JAXBException(String message) {
   62           this( message, null, null );
   63       }
   64   
   65       /**
   66        * Construct a JAXBException with the specified detail message and vendor
   67        * specific errorCode.  The linkedException will default to null.
   68        *
   69        * @param message a description of the exception
   70        * @param errorCode a string specifying the vendor specific error code
   71        */
   72       public JAXBException(String message, String errorCode) {
   73           this( message, errorCode, null );
   74       }
   75   
   76       /**
   77        * Construct a JAXBException with a linkedException.  The detail message and
   78        * vendor specific errorCode will default to null.
   79        *
   80        * @param exception the linked exception
   81        */
   82       public JAXBException(Throwable exception) {
   83           this( null, null, exception );
   84       }
   85   
   86       /**
   87        * Construct a JAXBException with the specified detail message and
   88        * linkedException.  The errorCode will default to null.
   89        *
   90        * @param message a description of the exception
   91        * @param exception the linked exception
   92        */
   93       public JAXBException(String message, Throwable exception) {
   94           this( message, null, exception );
   95       }
   96   
   97       /**
   98        * Construct a JAXBException with the specified detail message, vendor
   99        * specific errorCode, and linkedException.
  100        *
  101        * @param message a description of the exception
  102        * @param errorCode a string specifying the vendor specific error code
  103        * @param exception the linked exception
  104        */
  105       public JAXBException(String message, String errorCode, Throwable exception) {
  106           super( message );
  107           this.errorCode = errorCode;
  108           this.linkedException = exception;
  109       }
  110   
  111       /**
  112        * Get the vendor specific error code
  113        *
  114        * @return a string specifying the vendor specific error code
  115        */
  116       public String getErrorCode() {
  117           return this.errorCode;
  118       }
  119   
  120       /**
  121        * Get the linked exception
  122        *
  123        * @return the linked Exception, null if none exists
  124        */
  125       public Throwable getLinkedException() {
  126           return linkedException;
  127       }
  128   
  129       /**
  130        * Add a linked Exception.
  131        *
  132        * @param exception the linked Exception (A null value is permitted and
  133        *                  indicates that the linked exception does not exist or
  134        *                  is unknown).
  135        */
  136       public synchronized void setLinkedException( Throwable exception ) {
  137           this.linkedException = exception;
  138       }
  139   
  140       /**
  141        * Returns a short description of this JAXBException.
  142        *
  143        */
  144       public String toString() {
  145           return linkedException == null ?
  146               super.toString() :
  147               super.toString() + "\n - with linked exception:\n[" +
  148                                   linkedException.toString()+ "]";
  149       }
  150   
  151       /**
  152        * Prints this JAXBException and its stack trace (including the stack trace
  153        * of the linkedException if it is non-null) to the PrintStream.
  154        *
  155        * @param s PrintStream to use for output
  156        */
  157       public void printStackTrace( java.io.PrintStream s ) {
  158           super.printStackTrace(s);
  159       }
  160   
  161       /**
  162        * Prints this JAXBException and its stack trace (including the stack trace
  163        * of the linkedException if it is non-null) to <tt>System.err</tt>.
  164        *
  165        */
  166       public void printStackTrace() {
  167           super.printStackTrace();
  168       }
  169   
  170       /**
  171        * Prints this JAXBException and its stack trace (including the stack trace
  172        * of the linkedException if it is non-null) to the PrintWriter.
  173        *
  174        * @param s PrintWriter to use for output
  175        */
  176       public void printStackTrace(PrintWriter s) {
  177           super.printStackTrace(s);
  178       }
  179   
  180       @Override
  181       public Throwable getCause() {
  182           return linkedException;
  183       }
  184   }

Save This Page
Home » openjdk-7 » javax » xml » bind » [javadoc | source]