-
Key: CORBA25-1
-
Legacy Issue Number: 4003
-
Status: closed
-
Source: Floorboard Software ( Jonathan Biggar)
-
Summary:
The CORBA 2.4 specification is not clear about whether a valuetype can
support multiple non-abstract interfaces via inheritance. Here is an
example:interface I1 {};
interface I2 {};
valuetype V1 supports I1 {};
valuetype V2: V1 supports I2 {};
Is V2 legal?
I see three possible resolutions to this issue:
1. Make V2 illegal. A valuetype may not support a non-abstract
interface if any of its base valuetypes supports a non-abstract
interface. This is a pretty simple rule, but I think it is far too
restrictive, and can get in the way of some cases where supporting
multiple interfaces could be genuinely useful.2. Make V2 legal. Since we have clarified (assuming that the proposed
resolution of 3589 passes, which it appears it will) that valuetypes
that support an interface are not synonymous with an object reference
that uses that valuetype as a servant, I don't see any actual core
issues that break the object model. Also, my inspection of the language
mappings does not reveal any problems on that front either.3. Make V2 illegal, but make it legal if I2 inherited from I1. The
rule would be that a valuetype can support a non-abstract interface only
if that interface is derived (directly or indirectly) from all other
non-abstract interfaces that are supported by base valuetypes. This
allows the use of the ladder inheritance pattern, which I think is very
useful in this case:interface I1 {};
valuetype V1 supports I1 {};
interface I2 {};
valuetype V2 supports I2 {};
interface I3 : I1, I2 {};
valuetype V3 : V1, V2 supports I3 {};
Of these three posible resolutions, I prefer #2, since I don't see any
practical implementation problems, so the restriction in #3 is really
not necessary. -
Reported: CORBA 2.4 — Fri, 27 Oct 2000 04:00 GMT
-
Disposition: Resolved — CORBA 2.5
-
Disposition Summary:
see below
-
Updated: Fri, 6 Mar 2015 20:58 GMT
CORBA25 — Can a valuetype support multiple non-abstract interfaces via inheritance?
- Key: CORBA25-1
- OMG Task Force: Core December 2000 RTF