|
VisiBroker for Java |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface DynAnyOperations
Any
values can be dynamically interpreted (traversed) and
constructed through DynAny
objects.
A DynAny
object is associated with a data value which corresponds to a copy
of the value inserted into an any.
DynAny
objects are intended to be local to the process
in which they are created and used.
This means that references to DynAny
and DynAnyFactory
objects cannot be exported to other processes, or externalized
with ORB::object_to_string. If any attempt is made to do so,
the offending operation will raise a MARSHAL
system exception. Since their
interfaces are specified in IDL, DynAny
objects export operations defined in the
standard CORBA::Object interface. However, any attempt to invoke operations exported
through the Object interface may raise the standard NO_IMPLEMENT
exception. An
attempt to use a DynAny
object with the DII may raise the NO_IMPLEMENT
exception.
Method Summary | |
---|---|
void |
assign(DynAny dyn_any)
The assign operation initializes the value associated with a DynAny object with the
value associated with another DynAny object. |
int |
component_count()
The component_count operation returns the number of components of a DynAny . |
DynAny |
copy()
The copy operation creates a new DynAny object whose value is a deep copy of the
DynAny on which it is invoked. |
DynAny |
current_component()
The current_component operation returns the DynAny for the component at the
current position. |
void |
destroy()
The destroy operation destroys a DynAny object. |
boolean |
equal(DynAny dyn_any)
The equal operation compares two DynAny values for equality and returns true of the
DynAnys are equal, false otherwise. |
void |
from_any(Any value)
The from_any operation initializes the value associated with a DynAny object with
the value contained in an any. |
Any |
get_any()
Extracts an Any value contained in the Any represented by this DynAny. |
boolean |
get_boolean()
Extracts the boolean value from this DynAny. |
char |
get_char()
Extracts the char value from this DynAny. |
double |
get_double()
Extracts the double value from this DynAny. |
DynAny |
get_dyn_any()
Extracts the Any value contained in the Any represented by this DynAny and returns it wrapped into a new DynAny. |
float |
get_float()
Extracts the float value from this DynAny. |
int |
get_long()
Extracts the integer value from this DynAny. |
long |
get_longlong()
Extracts the long value from this DynAny. |
byte |
get_octet()
Extracts the byte value from this DynAny. |
Object |
get_reference()
Extracts the reference to a CORBA Object from this DynAny. |
short |
get_short()
Extracts the short value from this DynAny. |
java.lang.String |
get_string()
Extracts the string value from this DynAny. |
TypeCode |
get_typecode()
Extracts the TypeCode object from this DynAny. |
int |
get_ulong()
Extracts the integer value from this DynAny. |
long |
get_ulonglong()
Extracts the long value from this DynAny. |
short |
get_ushort()
Extracts the short value from this DynAny. |
java.io.Serializable |
get_val()
Extracts a Serializable object from this DynAny. |
char |
get_wchar()
Extracts the long value from this DynAny. |
java.lang.String |
get_wstring()
Extracts the string value from this DynAny. |
void |
insert_any(Any value)
Inserts an Any value into the Any represented by this DynAny. |
void |
insert_boolean(boolean value)
Inserts a boolean value into the DynAny. |
void |
insert_char(char value)
Inserts a char value into the DynAny. |
void |
insert_double(double value)
Inserts a double value into the DynAny. |
void |
insert_dyn_any(DynAny value)
Inserts the Any value contained in the parameter DynAny into the Any represented by this DynAny. |
void |
insert_float(float value)
Inserts a float value into the DynAny. |
void |
insert_long(int value)
Inserts an integer value into the DynAny. |
void |
insert_longlong(long value)
Inserts a long value into the DynAny. |
void |
insert_octet(byte value)
Inserts a byte value into the DynAny. |
void |
insert_reference(Object value)
Inserts a reference to a CORBA object into the DynAny |
void |
insert_short(short value)
Inserts a short value into the DynAny. |
void |
insert_string(java.lang.String value)
Inserts a string value into the DynAny. |
void |
insert_typecode(TypeCode value)
Inserts a TypeCode object into the DynAny. |
void |
insert_ulong(int value)
Inserts an integer value into the DynAny. |
void |
insert_ulonglong(long value)
Inserts a long value into the DynAny. |
void |
insert_ushort(short value)
Inserts a short value into the DynAny. |
void |
insert_val(java.io.Serializable value)
Inserts a reference to a Serializable object into this DynAny. |
void |
insert_wchar(char value)
Extracts the long value from this DynAny. |
void |
insert_wstring(java.lang.String value)
Extracts the string value from this DynAny. |
boolean |
next()
The next operation advances the current position to the next component. |
void |
rewind()
The rewind operation is equivalent to calling seek(0); |
boolean |
seek(int index)
The seek operation sets the current position to index. |
Any |
to_any()
The to_any operation creates an any value from a DynAny object. |
TypeCode |
type()
A DynAny object is created with a TypeCode value assigned to it. |
Method Detail |
---|
DynAny current_component() throws TypeMismatch
DynAny
for the component at the
current position. It does not advance the current position, so repeated calls to
current_component without an intervening call to rewind, next, or seek return the
same component.
The returned DynAny
object reference can be used to get/set the value of the current
component. If the current component represents a complex type, the returned reference
can be narrowed based on the TypeCode to get the interface corresponding to the to
the complex type.
Calling current_component on a DynAny
that cannot have components, such as a
DynEnum or an empty exception, raises TypeMismatch. Calling
current_component on a DynAny
whose current position is -1 returns a nil
reference.
The iteration operations, together with current_component, can be used to dynamically compose an any value. After creating a dynamic any, such as a DynStruct, current_component and next can be used to initialize all the components of the value. Once the dynamic value is completely initialized, to_any creates the corresponding any value.
DynAny
Package.TypeMismatch if this DynAny
type cannot have a current component
TypeMismatch
int component_count()
DynAny
.
For a DynAny
without components, it returns zero. The operation only counts the
components at the top level. For example, if component_count is invoked on a
DynStruct with a single member, the return value is 1, irrespective of the type of the
member. For sequences, the operation returns the current number of elements. For structures, exceptions, and valuetypes, the operation returns the number of members. For arrays, the operation returns the number of elements. For unions, the operation returns 2 if the discriminator indicates that a named member is active; otherwise, it returns 1. For DynFixed and DynEnum, the operation returns zero.
DynAny
boolean next()
DynAny
without components leaves the current position at -1 and returns false.
void rewind()
boolean seek(int index)
DynAny
and false if index indicates a position that does not correspond to a component.
Calling seek with a negative index is legal. It sets the current position to -1 to indicate
no component and returns false. Passing a non-negative index value for a DynAny
that does not have a component at the corresponding position sets the current position to -
1 and returns false.
index
- the new component index
java.io.Serializable get_val() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
DynAny get_dyn_any() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
Any get_any() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
java.lang.String get_wstring() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
char get_wchar() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
long get_ulonglong() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
long get_longlong() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
TypeCode get_typecode() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
Object get_reference() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
java.lang.String get_string() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
double get_double() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
float get_float() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
int get_ulong() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
int get_long() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
short get_ushort() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
short get_short() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
char get_char() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
byte get_octet() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
boolean get_boolean() throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_val(java.io.Serializable value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_dyn_any(DynAny value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_any(Any value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_wstring(java.lang.String value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_wchar(char value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_ulonglong(long value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_longlong(long value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_typecode(TypeCode value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_reference(Object value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_string(java.lang.String value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_double(double value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_float(float value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_ulong(int value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_long(int value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_ushort(short value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_short(short value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_char(char value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_octet(byte value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
void insert_boolean(boolean value) throws TypeMismatch, InvalidValue
TypeMismatch
InvalidValue
DynAny copy()
DynAny
object whose value is a deep copy of the
DynAny
on which it is invoked. The operation is polymorphic, that is, invoking it on
one of the types derived from DynAny
, such as DynStruct
,
creates the derived type but returns its reference as the DynAny
base type.
DynAny
contentsvoid destroy()
DynAny
object. This operation frees any resources
used to represent the data value associated with a DynAny
object. destroy must be
invoked on references obtained from one of the creation operations on the ORB
interface or on a reference returned by DynAny::copy
to avoid resource leaks.
Invoking destroy on component DynAny
objects (for example, on objects returned by
the current_component operation) does nothing.
Destruction of a DynAny
object implies destruction of all DynAny
objects obtained from it.
That is, references to components of a destroyed DynAny
become invalid;
invocations on such references raise OBJECT_NOT_EXIST.
It is possible to manipulate a component of a DynAny
beyond the life time of the
DynAny
from which the component was obtained by making a copy of the component
with the copy operation before destroying the DynAny
from which the component
was obtained.
boolean equal(DynAny dyn_any)
DynAny
values for equality and returns true of the
DynAnys
are equal, false otherwise. Two DynAny
values are equal if their
TypeCodes are equivalent and, recursively, all component DynAnys
have equal
values. The current position of the two DynAnys
being compared has no effect on the
result of equal.
dyn_any
- the DynAny
to compare with
Any to_any()
DynAny
object. A copy of the
TypeCode associated with the DynAny
object is assigned to the resulting any. The
value asociated with the DynAny
object is copied into the any.
DynAny
contentsvoid from_any(Any value) throws TypeMismatch, InvalidValue
The from_any operation initializes the value associated with a DynAny
object with
the value contained in an any.
If the type of the passed Any
is not equivalent to the type of target DynAny
,
the operation raises TypeMismatch
. If the passed Any
does not
contain a legal value (such as a null string), the operation raises InvalidValue
.
The current position of the target DynAny
is set to zero for values
that have components and to -1 for values that do not have components.
value
- the any from which to assign
throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch if both types are not equivalent
TypeMismatch
InvalidValue
void assign(DynAny dyn_any) throws TypeMismatch
DynAny
object with the
value associated with another DynAny
object.
If the type of the passed DynAny
is not equivalent to the
type of target DynAny
, the operation raises TypeMismatch
.
The current position of the target DynAny
is set to zero for values that
have components and to -1 for values that do not have components.
dyn_any
- the DynAny
object to assign
throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch if both types are not equivalent
TypeMismatch
TypeCode type()
DynAny
object is created with a TypeCode
value assigned to it.
This TypeCode value determines the type of the value handled through the DynAny
object. The type
operation returns the TypeCode
associated with a DynAny
object.
Note that the TypeCode
associated with a DynAny
object
is initialized at the time the DynAny
is created and
cannot be changed during lifetime of the DynAny
object.
|
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |