You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.2 KiB
120 lines
3.2 KiB
/*
|
|
* Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
|
|
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*/
|
|
|
|
package org.omg.CORBA;
|
|
|
|
import org.omg.CORBA.portable.InputStream;
|
|
import org.omg.CORBA.portable.OutputStream;
|
|
import java.util.*;
|
|
import org.omg.CORBA.OMGVMCID;
|
|
import com.sun.corba.se.impl.util.SUNVMCID;
|
|
|
|
/**
|
|
* The root class for all CORBA standard exceptions. These exceptions
|
|
* may be thrown as a result of any CORBA operation invocation and may
|
|
* also be returned by many standard CORBA API methods. The standard
|
|
* exceptions contain a minor code, allowing more detailed specification, and a
|
|
* completion status. This class is subclassed to
|
|
* generate each one of the set of standard ORB exceptions.
|
|
* <code>SystemException</code> extends
|
|
* <code>java.lang.RuntimeException</code>; thus none of the
|
|
* <code>SystemException</code> exceptions need to be
|
|
* declared in signatures of the Java methods mapped from operations in
|
|
* IDL interfaces.
|
|
*
|
|
* @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
|
|
* Java IDL exceptions</A>
|
|
*/
|
|
|
|
public abstract class SystemException extends java.lang.RuntimeException {
|
|
|
|
/**
|
|
* The CORBA Exception minor code.
|
|
* @serial
|
|
*/
|
|
public int minor;
|
|
|
|
/**
|
|
* The status of the operation that threw this exception.
|
|
* @serial
|
|
*/
|
|
public CompletionStatus completed;
|
|
|
|
/**
|
|
* Constructs a <code>SystemException</code> exception with the specified detail
|
|
* message, minor code, and completion status.
|
|
* A detail message is a String that describes this particular exception.
|
|
* @param reason the String containing a detail message
|
|
* @param minor the minor code
|
|
* @param completed the completion status
|
|
*/
|
|
protected SystemException(String reason, int minor, CompletionStatus completed) {
|
|
super(reason);
|
|
this.minor = minor;
|
|
this.completed = completed;
|
|
}
|
|
|
|
/**
|
|
* Converts this exception to a representative string.
|
|
*/
|
|
public String toString() {
|
|
// The fully qualified exception class name
|
|
String result = super.toString();
|
|
|
|
// The vmcid part
|
|
int vmcid = minor & 0xFFFFF000;
|
|
switch (vmcid) {
|
|
case OMGVMCID.value:
|
|
result += " vmcid: OMG";
|
|
break;
|
|
case SUNVMCID.value:
|
|
result += " vmcid: SUN";
|
|
break;
|
|
default:
|
|
result += " vmcid: 0x" + Integer.toHexString(vmcid);
|
|
break;
|
|
}
|
|
|
|
// The minor code part
|
|
int mc = minor & 0x00000FFF;
|
|
result += " minor code: " + mc;
|
|
|
|
// The completion status part
|
|
switch (completed.value()) {
|
|
case CompletionStatus._COMPLETED_YES:
|
|
result += " completed: Yes";
|
|
break;
|
|
case CompletionStatus._COMPLETED_NO:
|
|
result += " completed: No";
|
|
break;
|
|
case CompletionStatus._COMPLETED_MAYBE:
|
|
default:
|
|
result += " completed: Maybe";
|
|
break;
|
|
}
|
|
return result;
|
|
}
|
|
}
|