/*
 * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package org.omg.CORBA;

A modifiable list containing NamedValue objects.

The class NVList is used as follows:

  • to describe arguments for a Request object in the Dynamic Invocation Interface and the Dynamic Skeleton Interface
  • to describe context values in a Context object

Each NamedValue object consists of the following:

  • a name, which is a String object
  • a value, as an Any object
  • an argument mode flag

An NVList object may be created using one of the following ORB methods:

  1. org.omg.CORBA.ORB.create_list
       org.omg.CORBA.NVList nv = orb.create_list(3);
    
    The variable nv represents a newly-created NVList object. The argument is a memory-management hint to the orb and does not imply the actual length of the list. If, for example, you want to use an NVList object in a request, and the method being invoked takes three parameters, you might optimize by supplying 3 to the method create_list. Note that the new NVList will not necessarily have a length of 3; it could have a length of 2 or 4, for instance. Note also that you can add any number of NamedValue objects to this list regardless of its original length.
  2. org.omg.CORBA.ORB.create_operation_list
       org.omg.CORBA.NVList nv = orb.create_operation_list(myOperationDef);
    
    The variable nv represents a newly-created NVList object that contains descriptions of the arguments to the method described in the given OperationDef object.

The methods in the class NVList all deal with the NamedValue objects in the list. There are three methods for adding a NamedValue object, a method for getting the count of NamedValue objects in the list, a method for retrieving a NamedValue object at a given index, and a method for removing a NamedValue object at a given index.

See Also:
Since: JDK1.2
/** * A modifiable list containing <code>NamedValue</code> objects. * <P> * The class <code>NVList</code> is used as follows: * <UL> * <LI>to describe arguments for a <code>Request</code> object * in the Dynamic Invocation Interface and * the Dynamic Skeleton Interface * <LI>to describe context values in a <code>Context</code> object * </UL> * <P> * Each <code>NamedValue</code> object consists of the following: * <UL> * <LI>a name, which is a <code>String</code> object * <LI>a value, as an <code>Any</code> object * <LI>an argument mode flag * </UL> * <P> * An <code>NVList</code> object * may be created using one of the following * <code>ORB</code> methods: * <OL> * <LI><code>org.omg.CORBA.ORB.create_list</code> * <PRE> * org.omg.CORBA.NVList nv = orb.create_list(3); * </PRE> * The variable <code>nv</code> represents a newly-created * <code>NVList</code> object. The argument is a memory-management * hint to the orb and does not imply the actual length of the list. * If, for example, you want to use an <code>NVList</code> object * in a request, and the method being invoked takes three parameters, * you might optimize by supplying 3 to the method * <code>create_list</code>. Note that the new <code>NVList</code> * will not necessarily have a length of 3; it * could have a length of 2 or 4, for instance. * Note also that you can add any number of * <code>NamedValue</code> objects to this list regardless of * its original length. * <LI><code>org.omg.CORBA.ORB.create_operation_list</code> * <PRE> * org.omg.CORBA.NVList nv = orb.create_operation_list(myOperationDef); * </PRE> * The variable <code>nv</code> represents a newly-created * <code>NVList</code> object that contains descriptions of the * arguments to the method described in the given * <code>OperationDef</code> object. * </OL> * <P> * The methods in the class <code>NVList</code> all deal with * the <code>NamedValue</code> objects in the list. * There are three methods for adding a <code>NamedValue</code> object, * a method for getting the count of <code>NamedValue</code> objects in * the list, a method for retrieving a <code>NamedValue</code> object * at a given index, and a method for removing a <code>NamedValue</code> object * at a given index. * * @see org.omg.CORBA.Request * @see org.omg.CORBA.ServerRequest * @see org.omg.CORBA.NamedValue * @see org.omg.CORBA.Context * * @since JDK1.2 */
public abstract class NVList {
Returns the number of NamedValue objects that have been added to this NVList object.
Returns: an int indicating the number of NamedValue objects in this NVList.
/** * Returns the number of <code>NamedValue</code> objects that have * been added to this <code>NVList</code> object. * * @return an <code>int</code> indicating the number of * <code>NamedValue</code> objects in this <code>NVList</code>. */
public abstract int count();
Creates a new NamedValue object initialized with the given flag and adds it to the end of this NVList object. The flag can be any one of the argument passing modes: ARG_IN.value, ARG_OUT.value, or ARG_INOUT.value.
Params:
  • flags – one of the argument mode flags
Returns: the newly-created NamedValue object
/** * Creates a new <code>NamedValue</code> object initialized with the given flag * and adds it to the end of this <code>NVList</code> object. * The flag can be any one of the argument passing modes: * <code>ARG_IN.value</code>, <code>ARG_OUT.value</code>, or * <code>ARG_INOUT.value</code>. * * @param flags one of the argument mode flags * @return the newly-created <code>NamedValue</code> object */
public abstract NamedValue add(int flags);
Creates a new NamedValue object initialized with the given name and flag, and adds it to the end of this NVList object. The flag can be any one of the argument passing modes: ARG_IN.value, ARG_OUT.value, or ARG_INOUT.value.
Params:
  • item_name – the name for the new NamedValue object
  • flags – one of the argument mode flags
Returns: the newly-created NamedValue object
/** * Creates a new <code>NamedValue</code> object initialized with the * given name and flag, * and adds it to the end of this <code>NVList</code> object. * The flag can be any one of the argument passing modes: * <code>ARG_IN.value</code>, <code>ARG_OUT.value</code>, or * <code>ARG_INOUT.value</code>. * * @param item_name the name for the new <code>NamedValue</code> object * @param flags one of the argument mode flags * @return the newly-created <code>NamedValue</code> object */
public abstract NamedValue add_item(String item_name, int flags);
Creates a new NamedValue object initialized with the given name, value, and flag, and adds it to the end of this NVList object.
Params:
  • item_name – the name for the new NamedValue object
  • val – an Any object containing the value for the new NamedValue object
  • flags – one of the following argument passing modes: ARG_IN.value, ARG_OUT.value, or ARG_INOUT.value
Returns: the newly created NamedValue object
/** * Creates a new <code>NamedValue</code> object initialized with the * given name, value, and flag, * and adds it to the end of this <code>NVList</code> object. * * @param item_name the name for the new <code>NamedValue</code> object * @param val an <code>Any</code> object containing the value * for the new <code>NamedValue</code> object * @param flags one of the following argument passing modes: * <code>ARG_IN.value</code>, <code>ARG_OUT.value</code>, or * <code>ARG_INOUT.value</code> * @return the newly created <code>NamedValue</code> object */
public abstract NamedValue add_value(String item_name, Any val, int flags);
Retrieves the NamedValue object at the given index.
Params:
  • index – the index of the desired NamedValue object, which must be between zero and the length of the list minus one, inclusive. The first item is at index zero.
Throws:
  • Bounds – if the index is greater than or equal to number of NamedValue objects
Returns: the NamedValue object at the given index
/** * Retrieves the <code>NamedValue</code> object at the given index. * * @param index the index of the desired <code>NamedValue</code> object, * which must be between zero and the length of the list * minus one, inclusive. The first item is at index zero. * @return the <code>NamedValue</code> object at the given index * @exception org.omg.CORBA.Bounds if the index is greater than * or equal to number of <code>NamedValue</code> objects */
public abstract NamedValue item(int index) throws org.omg.CORBA.Bounds;
Removes the NamedValue object at the given index. Note that the indices of all NamedValue objects following the one removed are shifted down by one.
Params:
  • index – the index of the NamedValue object to be removed, which must be between zero and the length of the list minus one, inclusive. The first item is at index zero.
Throws:
  • Bounds – if the index is greater than or equal to number of NamedValue objects in the list
/** * Removes the <code>NamedValue</code> object at the given index. * Note that the indices of all <code>NamedValue</code> objects following * the one removed are shifted down by one. * * @param index the index of the <code>NamedValue</code> object to be * removed, which must be between zero and the length * of the list minus one, inclusive. * The first item is at index zero. * @exception org.omg.CORBA.Bounds if the index is greater than * or equal to number of <code>NamedValue</code> objects in * the list */
public abstract void remove(int index) throws org.omg.CORBA.Bounds; }