1 /*
   2  * Copyright (c) 1996, 2000, Oracle and/or its affiliates. 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.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 package org.omg.CORBA;
  26 
  27 /**
  28  * An object that indicates whether a method had completed running
  29  * when a <code>SystemException</code> was thrown.
  30  * <P>
  31  * The class <code>CompletionStatus</code>
  32  * contains three <code>CompletionStatus</code> instances, which are constants
  33  * representing each
  34  * possible completion status: <code>COMPLETED_MAYBE</code>,
  35  * <code>COMPLETED_NO</code>, and <code>COMPLETED_YES</code>.
  36  * It also contains
  37  * three <code>int</code> members, each a constant corresponding to one of
  38  * the <code>CompletionStatus</code> instances.  These <code>int</code>
  39  * members make it possible to use a <code>switch</code> statement.
  40  * <P>
  41  * The class also contains two methods:
  42  * <UL>
  43  * <LI><code>public int <bold>value</bold>()</code> -- which accesses the
  44  * <code>value</code> field of a <code>CompletionStatus</code> object
  45  * <LI><code>public static CompletionStatus
  46  * <bold>from_int</bold>(int i)</code> --
  47  * for creating an instance from one of the <code>int</code> members
  48  * </UL>
  49  * @see     org.omg.CORBA.SystemException
  50  * @since   JDK1.2
  51  */
  52 
  53 public final class CompletionStatus implements org.omg.CORBA.portable.IDLEntity
  54 {
  55 /**
  56  * The constant indicating that a method completed running
  57  * before a <code>SystemException</code> was thrown.
  58  */
  59     public static final int _COMPLETED_YES = 0,
  60 
  61 /**
  62  * The constant indicating that a method had not completed running
  63  * when a <code>SystemException</code> was thrown.
  64  */
  65         _COMPLETED_NO = 1,
  66 
  67 /**
  68  * The constant indicating that it is unknown whether a method had
  69  * completed running when a <code>SystemException</code> was thrown.
  70  */
  71         _COMPLETED_MAYBE = 2;
  72 
  73 
  74 /**
  75  * An instance of <code>CompletionStatus</code> initialized with
  76  * the constant <code>_COMPLETED_YES</code>.
  77  */
  78     public static final CompletionStatus COMPLETED_YES   = new CompletionStatus(_COMPLETED_YES);
  79 
  80 /**
  81  * An instance of <code>CompletionStatus</code> initialized with
  82  * the constant <code>_COMPLETED_NO</code>.
  83  */
  84     public static final CompletionStatus COMPLETED_NO    = new CompletionStatus(_COMPLETED_NO);
  85 
  86     /**
  87  * An instance of <code>CompletionStatus</code> initialized with
  88  * the constant <code>_COMPLETED_MAYBE</code>.
  89  */
  90     public static final CompletionStatus COMPLETED_MAYBE = new CompletionStatus(_COMPLETED_MAYBE);
  91 
  92     /**
  93  * Retrieves the value of this <code>CompletionStatus</code> object.
  94  *
  95  * @return  one of the possible <code>CompletionStatus</code> values:
  96  *          <code>_COMPLETED_YES</code>, <code>_COMPLETED_NO</code>, or
  97  *          <code>_COMPLETED_MAYBE</code>
  98  *
  99  */
 100     public int value() { return _value; }
 101 
 102 /**
 103  * Creates a <code>CompletionStatus</code> object from the given <code>int</code>.
 104  *
 105  * @param i  one of <code>_COMPLETED_YES</code>, <code>_COMPLETED_NO</code>, or
 106  *          <code>_COMPLETED_MAYBE</code>
 107  *
 108  * @return  one of the possible <code>CompletionStatus</code> objects
 109  *          with values:
 110  *          <code>_COMPLETED_YES</code>, <code>_COMPLETED_NO</code>, or
 111  *          <code>_COMPLETED_MAYBE</code>
 112  *
 113  * @exception org.omg.CORBA.BAD_PARAM  if the argument given is not one of the
 114  *            <code>int</code> constants defined in <code>CompletionStatus</code>
 115  */
 116     public static CompletionStatus from_int(int i)  {
 117         switch (i) {
 118         case _COMPLETED_YES:
 119             return COMPLETED_YES;
 120         case _COMPLETED_NO:
 121             return COMPLETED_NO;
 122         case _COMPLETED_MAYBE:
 123             return COMPLETED_MAYBE;
 124         default:
 125             throw new org.omg.CORBA.BAD_PARAM();
 126         }
 127     }
 128 
 129 
 130 /**
 131  * Creates a <code>CompletionStatus</code> object from the given <code>int</code>.
 132  *
 133  * @param _value  one of <code>_COMPLETED_YES</code>, <code>_COMPLETED_NO</code>, or
 134  *          <code>_COMPLETED_MAYBE</code>
 135  *
 136  */
 137     private CompletionStatus(int _value) {
 138         this._value = _value;
 139     }
 140 
 141     private int _value;
 142 }