An object used in the DII and DSI to describe arguments and return values.
NamedValue objects are also used in the
Context object routines to pass lists of property names and values.
A NamedValue object contains:
- a name -- If the
NamedValue object is used to describe arguments to a request, the name will be an argument identifier specified in the OMG IDL interface definition for the operation being described.
- a value -- an
Any object
- an argument mode flag -- one of the following:
-
ARG_IN.value
-
ARG_OUT.value
-
ARG_INOUT.value
- zero -- if this
NamedValue object represents a property in a Context object rather than a parameter or return value
The class NamedValue has three methods, which access its fields. The following code fragment demonstrates creating a NamedValue object and then accessing its fields:
ORB orb = ORB.init(args, null);
String s = "argument_1";
org.omg.CORBA.Any myAny = orb.create_any();
myAny.insert_long(12345);
int in = org.omg.CORBA.ARG_IN.value;
org.omg.CORBA.NamedValue nv = orb.create_named_value(
s, myAny, in);
System.out.println("This nv name is " + nv.name());
try {
System.out.println("This nv value is " + nv.value().extract_long());
System.out.println("This nv flag is " + nv.flags());
} catch (org.omg.CORBA.BAD_OPERATION b) {
System.out.println("extract failed");
}
If this code fragment were put into a main method, the output would be something like the following:
This nv name is argument_1
This nv value is 12345
This nv flag is 1
Note that the method value returns an Any object. In order to access the long contained in the Any object, we used the method extract_long.