O'Reilly logo

Java Enterprise in a Nutshell, Third Edition by William Crawford, Jim Farley

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Value Type Declarations

Value types are a new IDL construct introduced when Objects by Value was adopted in the CORBA specification, for Version 2.3. Prior to the adoption of Objects by Value, there were two argument-passing semantics available in IDL. Interface types were passed by reference, and basic data types were passed by value. But there wasn’t any way to pass an object by value between remote agents, in the way that Java serialization provides when using Java RMI. The CORBA Objects by Value specification extends IDL to include a new entity, called a value type, that is similar in syntax to an interface or a struct.

Value types are declared using the valuetype IDL keyword:

valuetype Coord3DVal { ... };

Any entity declared as a valuetype is passed by value when used as the argument to an operation. In other words, the servant of the operation receives a copy of the entity, not a remote reference to the entity residing on the caller, as is the normal case for IDL interfaces.

Value types can be declared with a custom modifier, which indicates that it will use custom marshaling code provided by the developer in an implementation class:

custom valuetype Coord3DValCustom { ... };

This modifier alters the nature of the generated “native” code, as described in the next section.

Value types can also inherit other value types , which have semantics similar to interface inheritance: the value type inherits all of the attributes, operations, state members, and initializers of its parent(s). ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required