1 /*
   2  * Copyright (c) 1998, 2010, 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 
  26 package org.omg.CORBA;
  27 
  28 /**
  29  * The mapping of a CORBA <code>enum</code> tagging
  30  * <code>SET_OVERRIDE</code> and <code>ADD_OVERRIDE</code>, which
  31  * indicate whether policies should replace the
  32  * existing policies of an <code>Object</code> or be added to them.
  33  * <P>
  34  * The method {@link org.omg.CORBA.Object#_set_policy_override} takes
  35  * either <code>SetOverrideType.SET_OVERRIDE</code> or
  36  * <code>SetOverrideType.ADD_OVERRIDE</code> as its second argument.
  37  * The method <code>_set_policy_override</code>
  38  * creates a new <code>Object</code> initialized with the
  39  * <code>Policy</code> objects supplied as the first argument.  If the
  40  * second argument is <code>ADD_OVERRIDE</code>, the new policies
  41  * are added to those of the <code>Object</code> instance that is
  42  * calling the <code>_set_policy_override</code> method.  If
  43  * <code>SET_OVERRIDE</code> is given instead, the existing policies
  44  * are replaced with the given ones.
  45  *
  46  * @author OMG
  47  * @since   1.2
  48  */
  49 
  50 public class SetOverrideType implements org.omg.CORBA.portable.IDLEntity {
  51 
  52     /**
  53      * The <code>int</code> constant for the enum value SET_OVERRIDE.
  54      */
  55     public static final int _SET_OVERRIDE = 0;
  56 
  57     /**
  58      * The <code>int</code> constant for the enum value ADD_OVERRIDE.
  59      */
  60     public static final int _ADD_OVERRIDE = 1;
  61 
  62     /**
  63      * The <code>SetOverrideType</code> constant for the enum value SET_OVERRIDE.
  64      */
  65     public static final SetOverrideType SET_OVERRIDE = new SetOverrideType(_SET_OVERRIDE);
  66 
  67     /**
  68      * The <code>SetOverrideType</code> constant for the enum value ADD_OVERRIDE.
  69      */
  70     public static final SetOverrideType ADD_OVERRIDE = new SetOverrideType(_ADD_OVERRIDE);
  71 
  72     /**
  73      * Retrieves the value of this <code>SetOverrideType</code> instance.
  74      *
  75      * @return  the <code>int</code> for this <code>SetOverrideType</code> instance.
  76      */
  77     public int value() {
  78         return _value;
  79     }
  80 
  81     /**
  82      * Converts the given <code>int</code> to the corresponding
  83      * <code>SetOverrideType</code> instance.
  84      *
  85      * @param  i the <code>int</code> to convert; must be either
  86      *         <code>SetOverrideType._SET_OVERRIDE</code> or
  87      *         <code>SetOverrideType._ADD_OVERRIDE</code>
  88      * @return  the <code>SetOverrideType</code> instance whose value
  89      *       matches the given <code>int</code>
  90      * @exception  BAD_PARAM  if the given <code>int</code> does not
  91      *       match the value of
  92      *       any <code>SetOverrideType</code> instance
  93      */
  94     public static SetOverrideType from_int(int i)
  95     {
  96         switch (i) {
  97         case _SET_OVERRIDE:
  98             return SET_OVERRIDE;
  99         case _ADD_OVERRIDE:
 100             return ADD_OVERRIDE;
 101         default:
 102             throw new org.omg.CORBA.BAD_PARAM();
 103         }
 104     }
 105 
 106     /**
 107      * Constructs a <code>SetOverrideType</code> instance from an
 108      * <code>int</code>.
 109      * @param _value must be either <code>SET_OVERRIDE</code> or
 110      *        <code>ADD_OVERRIDE</code>
 111      */
 112     protected SetOverrideType(int _value){
 113         this._value = _value;
 114     }
 115 
 116     /**
 117      * The field containing the value for this <code>SetOverrideType</code>
 118      * object.
 119      *
 120      */
 121     private int _value;
 122 }