src/share/classes/com/sun/corba/se/impl/corba/NVListImpl.java

Thu, 31 Aug 2017 18:10:36 +0800

author
aoqi
date
Thu, 31 Aug 2017 18:10:36 +0800
changeset 748
6845b95cba6b
parent 158
91006f157c46
parent 0
7ef37b2cdcad
permissions
-rw-r--r--

merge

aoqi@0 1 /*
aoqi@0 2 * Copyright (c) 1996, 2003, Oracle and/or its affiliates. All rights reserved.
aoqi@0 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
aoqi@0 4 *
aoqi@0 5 * This code is free software; you can redistribute it and/or modify it
aoqi@0 6 * under the terms of the GNU General Public License version 2 only, as
aoqi@0 7 * published by the Free Software Foundation. Oracle designates this
aoqi@0 8 * particular file as subject to the "Classpath" exception as provided
aoqi@0 9 * by Oracle in the LICENSE file that accompanied this code.
aoqi@0 10 *
aoqi@0 11 * This code is distributed in the hope that it will be useful, but WITHOUT
aoqi@0 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
aoqi@0 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
aoqi@0 14 * version 2 for more details (a copy is included in the LICENSE file that
aoqi@0 15 * accompanied this code).
aoqi@0 16 *
aoqi@0 17 * You should have received a copy of the GNU General Public License version
aoqi@0 18 * 2 along with this work; if not, write to the Free Software Foundation,
aoqi@0 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
aoqi@0 20 *
aoqi@0 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
aoqi@0 22 * or visit www.oracle.com if you need additional information or have any
aoqi@0 23 * questions.
aoqi@0 24 */
aoqi@0 25 /*
aoqi@0 26 * Licensed Materials - Property of IBM
aoqi@0 27 * RMI-IIOP v1.0
aoqi@0 28 * Copyright IBM Corp. 1998 1999 All Rights Reserved
aoqi@0 29 *
aoqi@0 30 */
aoqi@0 31
aoqi@0 32 package com.sun.corba.se.impl.corba;
aoqi@0 33
aoqi@0 34 import java.util.Vector;
aoqi@0 35
aoqi@0 36 import org.omg.CORBA.Any;
aoqi@0 37 import org.omg.CORBA.Bounds;
aoqi@0 38 import org.omg.CORBA.NVList;
aoqi@0 39 import org.omg.CORBA.NamedValue;
aoqi@0 40
aoqi@0 41 import com.sun.corba.se.spi.orb.ORB ;
aoqi@0 42
aoqi@0 43 public class NVListImpl extends NVList
aoqi@0 44 {
aoqi@0 45 private final int INITIAL_CAPACITY = 4;
aoqi@0 46 private final int CAPACITY_INCREMENT = 2;
aoqi@0 47
aoqi@0 48 private Vector _namedValues;
aoqi@0 49 private ORB orb;
aoqi@0 50
aoqi@0 51 public NVListImpl(ORB orb)
aoqi@0 52 {
aoqi@0 53 // Note: This orb could be an instanceof ORBSingleton or ORB
aoqi@0 54 this.orb = orb;
aoqi@0 55 _namedValues = new Vector(INITIAL_CAPACITY, CAPACITY_INCREMENT);
aoqi@0 56 }
aoqi@0 57
aoqi@0 58 public NVListImpl(ORB orb, int size)
aoqi@0 59 {
aoqi@0 60 this.orb = orb;
aoqi@0 61
aoqi@0 62 // Note: the size arg is only a hint of the size of the NVList.
aoqi@0 63 _namedValues = new Vector(size);
aoqi@0 64 }
aoqi@0 65
aoqi@0 66
aoqi@0 67 public int count()
aoqi@0 68 {
aoqi@0 69 return _namedValues.size();
aoqi@0 70 }
aoqi@0 71
aoqi@0 72 public NamedValue add(int flags)
aoqi@0 73 {
aoqi@0 74 NamedValue tmpVal = new NamedValueImpl(orb, "", new AnyImpl(orb), flags);
aoqi@0 75 _namedValues.addElement(tmpVal);
aoqi@0 76 return tmpVal;
aoqi@0 77 }
aoqi@0 78
aoqi@0 79 public NamedValue add_item(String itemName, int flags)
aoqi@0 80 {
aoqi@0 81 NamedValue tmpVal = new NamedValueImpl(orb, itemName, new AnyImpl(orb),
aoqi@0 82 flags);
aoqi@0 83 _namedValues.addElement(tmpVal);
aoqi@0 84 return tmpVal;
aoqi@0 85 }
aoqi@0 86
aoqi@0 87 public NamedValue add_value(String itemName, Any val, int flags)
aoqi@0 88 {
aoqi@0 89 NamedValue tmpVal = new NamedValueImpl(orb, itemName, val, flags);
aoqi@0 90 _namedValues.addElement(tmpVal);
aoqi@0 91 return tmpVal;
aoqi@0 92 }
aoqi@0 93
aoqi@0 94 public NamedValue item(int index)
aoqi@0 95 throws Bounds
aoqi@0 96 {
aoqi@0 97 try {
aoqi@0 98 return (NamedValue) _namedValues.elementAt(index);
aoqi@0 99 } catch (ArrayIndexOutOfBoundsException e) {
aoqi@0 100 throw new Bounds();
aoqi@0 101 }
aoqi@0 102 }
aoqi@0 103
aoqi@0 104 public void remove(int index)
aoqi@0 105 throws Bounds
aoqi@0 106 {
aoqi@0 107 try {
aoqi@0 108 _namedValues.removeElementAt(index);
aoqi@0 109 } catch (ArrayIndexOutOfBoundsException e) {
aoqi@0 110 throw new Bounds();
aoqi@0 111 }
aoqi@0 112 }
aoqi@0 113 }

mercurial