Save This Page
Home » openjdk-7 » org.omg » CORBA » [javadoc | source]
    1   /*
    2    * Copyright 1995-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 org.omg.CORBA;
   27   
   28   import org.omg.CORBA.portable.InputStream;
   29   import org.omg.CORBA.portable.OutputStream;
   30   import java.util;
   31   import org.omg.CORBA.OMGVMCID;
   32   import com.sun.corba.se.impl.util.SUNVMCID;
   33   
   34   /**
   35    * The root class for all CORBA standard exceptions. These exceptions
   36    * may be thrown as a result of any CORBA operation invocation and may
   37    * also be returned by many standard CORBA API methods. The standard
   38    * exceptions contain a minor code, allowing more detailed specification, and a
   39    * completion status. This class is subclassed to
   40    * generate each one of the set of standard ORB exceptions.
   41    * <code>SystemException</code> extends
   42    * <code>java.lang.RuntimeException</code>; thus none of the
   43    * <code>SystemException</code> exceptions need to be
   44    * declared in signatures of the Java methods mapped from operations in
   45    * IDL interfaces.
   46    *
   47    * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
   48    * Java&nbsp;IDL exceptions</A>
   49    */
   50   
   51   public abstract class SystemException extends java.lang.RuntimeException {
   52   
   53       /**
   54        * The CORBA Exception minor code.
   55        * @serial
   56        */
   57       public int minor;
   58   
   59       /**
   60        * The status of the operation that threw this exception.
   61        * @serial
   62        */
   63       public CompletionStatus completed;
   64   
   65       /**
   66        * Constructs a <code>SystemException</code> exception with the specified detail
   67        * message, minor code, and completion status.
   68        * A detail message is a String that describes this particular exception.
   69        * @param reason the String containing a detail message
   70        * @param minor the minor code
   71        * @param completed the completion status
   72        */
   73       protected SystemException(String reason, int minor, CompletionStatus completed) {
   74           super(reason);
   75           this.minor = minor;
   76           this.completed = completed;
   77       }
   78   
   79       /**
   80        * Converts this exception to a representative string.
   81        */
   82       public String toString() {
   83           // The fully qualified exception class name
   84           String result = super.toString();
   85   
   86           // The vmcid part
   87           int vmcid = minor & 0xFFFFF000;
   88           switch (vmcid) {
   89               case OMGVMCID.value:
   90                   result += "  vmcid: OMG";
   91                   break;
   92               case SUNVMCID.value:
   93                   result += "  vmcid: SUN";
   94                   break;
   95               default:
   96                   result += "  vmcid: 0x" + Integer.toHexString(vmcid);
   97                   break;
   98           }
   99   
  100           // The minor code part
  101           int mc = minor & 0x00000FFF;
  102           result += "  minor code: " + mc;
  103   
  104           // The completion status part
  105           switch (completed.value()) {
  106               case CompletionStatus._COMPLETED_YES:
  107                   result += "  completed: Yes";
  108                   break;
  109               case CompletionStatus._COMPLETED_NO:
  110                   result += "  completed: No";
  111                   break;
  112               case CompletionStatus._COMPLETED_MAYBE:
  113               default:
  114                   result += " completed: Maybe";
  115                   break;
  116           }
  117           return result;
  118       }
  119   }

Save This Page
Home » openjdk-7 » org.omg » CORBA » [javadoc | source]