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   /**
   29    * This exception indicates that a violation of a dynamically checked type
   30    * constraint was detected.
   31    *
   32    * <p>
   33    * This exception can be thrown by the generated setter methods of the schema
   34    * derived Java content classes.  However, since fail-fast validation is
   35    * an optional feature for JAXB Providers to support, not all setter methods
   36    * will throw this exception when a type constraint is violated.
   37    *
   38    * <p>
   39    * If this exception is throw while invoking a fail-fast setter, the value of
   40    * the property is guaranteed to remain unchanged, as if the setter were never
   41    * called.
   42    *
   43    * @author <ul><li>Ryan Shoemaker, Sun Microsystems, Inc.</li><li>Joe Fialli, Sun Microsystems, Inc.</li></ul>
   44    * @see ValidationEvent
   45    * @since JAXB1.0
   46    */
   47   
   48   public class TypeConstraintException extends java.lang.RuntimeException {
   49   
   50       /**
   51        * Vendor specific error code
   52        *
   53        */
   54       private String errorCode;
   55   
   56       /**
   57        * Exception reference
   58        *
   59        */
   60       private Throwable linkedException;
   61   
   62   
   63       /**
   64        * Construct a TypeConstraintException with the specified detail message.  The
   65        * errorCode and linkedException will default to null.
   66        *
   67        * @param message a description of the exception
   68        */
   69       public TypeConstraintException(String message) {
   70           this( message, null, null );
   71       }
   72   
   73       /**
   74        * Construct a TypeConstraintException with the specified detail message and vendor
   75        * specific errorCode.  The linkedException will default to null.
   76        *
   77        * @param message a description of the exception
   78        * @param errorCode a string specifying the vendor specific error code
   79        */
   80       public TypeConstraintException(String message, String errorCode) {
   81           this( message, errorCode, null );
   82       }
   83   
   84       /**
   85        * Construct a TypeConstraintException with a linkedException.  The detail message and
   86        * vendor specific errorCode will default to null.
   87        *
   88        * @param exception the linked exception
   89        */
   90       public TypeConstraintException(Throwable exception) {
   91           this( null, null, exception );
   92       }
   93   
   94       /**
   95        * Construct a TypeConstraintException with the specified detail message and
   96        * linkedException.  The errorCode will default to null.
   97        *
   98        * @param message a description of the exception
   99        * @param exception the linked exception
  100        */
  101       public TypeConstraintException(String message, Throwable exception) {
  102           this( message, null, exception );
  103       }
  104   
  105       /**
  106        * Construct a TypeConstraintException with the specified detail message,
  107        * vendor specific errorCode, and linkedException.
  108        *
  109        * @param message a description of the exception
  110        * @param errorCode a string specifying the vendor specific error code
  111        * @param exception the linked exception
  112        */
  113       public TypeConstraintException(String message, String errorCode, Throwable exception) {
  114           super( message );
  115           this.errorCode = errorCode;
  116           this.linkedException = exception;
  117       }
  118   
  119       /**
  120        * Get the vendor specific error code
  121        *
  122        * @return a string specifying the vendor specific error code
  123        */
  124       public String getErrorCode() {
  125           return this.errorCode;
  126       }
  127   
  128       /**
  129        * Get the linked exception
  130        *
  131        * @return the linked Exception, null if none exists
  132        */
  133       public Throwable getLinkedException() {
  134           return linkedException;
  135       }
  136   
  137       /**
  138        * Add a linked Exception.
  139        *
  140        * @param exception the linked Exception (A null value is permitted and
  141        *                  indicates that the linked exception does not exist or
  142        *                  is unknown).
  143        */
  144       public synchronized void setLinkedException( Throwable exception ) {
  145           this.linkedException = exception;
  146       }
  147   
  148       /**
  149        * Returns a short description of this TypeConstraintException.
  150        *
  151        */
  152       public String toString() {
  153           return linkedException == null ?
  154               super.toString() :
  155               super.toString() + "\n - with linked exception:\n[" +
  156                                   linkedException.toString()+ "]";
  157       }
  158   
  159       /**
  160        * Prints this TypeConstraintException and its stack trace (including the stack trace
  161        * of the linkedException if it is non-null) to the PrintStream.
  162        *
  163        * @param s PrintStream to use for output
  164        */
  165       public void printStackTrace( java.io.PrintStream s ) {
  166           if( linkedException != null ) {
  167             linkedException.printStackTrace(s);
  168             s.println("--------------- linked to ------------------");
  169           }
  170   
  171           super.printStackTrace(s);
  172       }
  173   
  174       /**
  175        * Prints this TypeConstraintException and its stack trace (including the stack trace
  176        * of the linkedException if it is non-null) to <tt>System.err</tt>.
  177        *
  178        */
  179       public void printStackTrace() {
  180           printStackTrace(System.err);
  181       }
  182   
  183   }

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