59 |
extends DynAnyOperations |
extends DynAnyOperations |
60 |
{ |
{ |
61 |
/** |
/** |
62 |
* Get the value of discriminator, defining which content variant (member) is |
* <p>Get the value of discriminator, defining which content variant |
63 |
* active. |
* (member) is active. |
64 |
|
* </p><p> |
65 |
|
* In the current implementation, the later changes on the returned value |
66 |
|
* alter the state of the union via implemented internal listener. |
67 |
|
* </p> |
68 |
*/ |
*/ |
69 |
DynAny get_discriminator(); |
DynAny get_discriminator(); |
70 |
|
|
71 |
/** |
/** |
72 |
* Set the value of discriminator, activating the member variant that is |
* <p>Set the value of discriminator, activating the member variant that is |
73 |
* consistent with the discriminator value. If the current member variant |
* consistent with the discriminator value. If the current member variant |
74 |
* matches the discriminator being set, it is unchanged. Otherwise, it is |
* matches the discriminator being set, it is unchanged. Otherwise, it is |
75 |
* replaced by the matching member variant with fields, initialised to default |
* replaced by the matching member variant with fields, initialised to default |
76 |
* values. The current position is set to 0 if the discriminator value does |
* values. The current position is set to 0 if the discriminator value does |
77 |
* not match any member variant. Otherwise, the current position is set to 1, |
* not match any member variant. Otherwise, the current position is set to 1, |
78 |
* index of the member variant. |
* index of the member variant. |
79 |
* |
* </p> |
80 |
* @throws TypeMismatch if the discriminator has a wrong type of this union. |
* @throws TypeMismatch if the discriminator has a wrong type of this union. |
81 |
*/ |
*/ |
82 |
void set_discriminator(DynAny aDiscriminator) |
void set_discriminator(DynAny aDiscriminator) |
83 |
throws TypeMismatch; |
throws TypeMismatch; |
84 |
|
|
85 |
/** |
/** |
86 |
* Get the kind of the union descriminator. |
* Get the kind of the union descriminator. |
98 |
* @throws InvalidValue if the union has no active member. |
* @throws InvalidValue if the union has no active member. |
99 |
*/ |
*/ |
100 |
DynAny member() |
DynAny member() |
101 |
throws InvalidValue; |
throws InvalidValue; |
102 |
|
|
103 |
/** |
/** |
104 |
* Returns the kind of the currently active union member. |
* Returns the kind of the currently active union member. |
108 |
* @throws InvalidValue if the union has no active member. |
* @throws InvalidValue if the union has no active member. |
109 |
*/ |
*/ |
110 |
TCKind member_kind() |
TCKind member_kind() |
111 |
throws InvalidValue; |
throws InvalidValue; |
112 |
|
|
113 |
/** |
/** |
114 |
* Returns the name of the currently active union member. |
* Returns the name of the currently active union member. |
118 |
* @throws InvalidValue if the union has no active member. |
* @throws InvalidValue if the union has no active member. |
119 |
*/ |
*/ |
120 |
String member_name() |
String member_name() |
121 |
throws InvalidValue; |
throws InvalidValue; |
122 |
|
|
123 |
/** |
/** |
124 |
* Returns true if the union has no active member. This happens if If the |
* Returns true if the union has no active member. This happens if If the |
135 |
* @throws TypeMismatch if the default case is not defined for this union. |
* @throws TypeMismatch if the default case is not defined for this union. |
136 |
*/ |
*/ |
137 |
void set_to_default_member() |
void set_to_default_member() |
138 |
throws TypeMismatch; |
throws TypeMismatch; |
139 |
|
|
140 |
/** |
/** |
141 |
* Set the discriminator to value that does not correspond any content variant |
* Set the discriminator to value that does not correspond any content variant |
145 |
* @throws TypeMismatch if the union has explicit default case. |
* @throws TypeMismatch if the union has explicit default case. |
146 |
*/ |
*/ |
147 |
void set_to_no_active_member() |
void set_to_no_active_member() |
148 |
throws TypeMismatch; |
throws TypeMismatch; |
149 |
} |
} |