<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>
<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=773322114-17062004><FONT face=Arial color=#0000ff
size=2>Hi,</FONT></SPAN></DIV><SPAN class=773322114-17062004><FONT face=Arial
color=#0000ff size=2></FONT></SPAN>
<DIV></DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff>I<SPAN
class=773322114-17062004> would question first the metamodeling: if you are
connecting the attributes to the derived model as well, why do you use interface
inheritance? The regular inheritance or implementation inheritance would do
this.</SPAN></FONT></FONT></FONT></FONT></DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004></SPAN></FONT></FONT></FONT></FONT><FONT
face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004></SPAN></FONT></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004>If you definitely want to keep unchanged this
metamodel, then i suggest a human intervention (removing the getters in the
private part).</SPAN></FONT></FONT></FONT></FONT></DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004></SPAN></FONT></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004></SPAN></FONT></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004>Regarding the implementation inheritance the current
version of BonExtender lacks a feature: producing compilable code. Since this
kind of inheritance is mapped to private
inheritance</SPAN></FONT></FONT></FONT></FONT></DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004>like "class DerivedImpl : private BaseImpl"
this derivation makes the upcast to ObjectImpl impossible (in general each
class declared with the DECLARE... macros has to be castable to
ObjectImpl).</SPAN></FONT></FONT></FONT></FONT></DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004></SPAN></FONT></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004>The next version of BonExtender will solve this by
</SPAN></FONT></FONT></FONT></FONT></DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004>"class DerivedImpl:
</SPAN></FONT></FONT></FONT></FONT></DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004> private
BaseImpl</SPAN></FONT></FONT></FONT></FONT></DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004> , <FONT color=#ff00ff>virtual public
BON::Model</FONT>" </SPAN></FONT></FONT></FONT></FONT></DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004></SPAN></FONT></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004>So in such cases each implementation inherited class
will be derived publicly from its BON::<kind>
class.</SPAN></FONT></FONT></FONT></FONT></DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004></SPAN></FONT></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004></SPAN></FONT></FONT></FONT></FONT><FONT
face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004>Regards, Zoli</SPAN></FONT></FONT></FONT></FONT></DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004></SPAN></FONT></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004></SPAN></FONT></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Tahoma><FONT size=2><FONT face=Arial><FONT color=#0000ff><SPAN
class=773322114-17062004> </SPAN></FONT></FONT>-----Original
Message-----<BR><B>From:</B> gme-users-bounces@list.isis.vanderbilt.edu
[mailto:gme-users-bounces@list.isis.vanderbilt.edu] <B>On Behalf Of </B>Sujata
Mujumdar<BR><B>Sent:</B> Wednesday, June 16, 2004 9:45 PM<BR><B>To:</B>
gme-users<BR><B>Subject:</B> [gme-users] BONExtender related
problem<BR><BR></DIV></FONT></FONT>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV>
<DIV><SPAN class=863594923-16062004><FONT face=Arial size=2>Dear
all,</FONT></SPAN></DIV>
<DIV>
<P><FONT face=Arial size=2>I have a doubt regarding the BonExtender
Interpreter wrt to its treatment of the "Interface Inheritance"<SPAN
class=347543202-17062004> and "Implementation
Inheritance"</SPAN>. </FONT><FONT size=+0><FONT face=Arial><FONT
size=2><SPAN class=863594923-16062004>After running the interpreter on the
trial meta (attached to this mail) t</SPAN>he *BonExtension.cpp &
*BonExtension.h files that are generate<SPAN class=347543202-17062004>d , when
compiled, gave </SPAN>errors. </FONT></FONT></FONT></P>
<P><FONT size=+0><FONT size=+0><FONT face=Arial size=2>Precisely, if both the
classes <SPAN class=347543202-17062004>(Base and Derived) </SPAN>share
the same attributes, then in the case of the Derived class, a class is
generated <SPAN class=347543202-17062004>with the </SPAN>name <SPAN
class=347543202-17062004>'</SPAN>DerivedImpl<SPAN
class=347543202-17062004>'</SPAN>. This class has multiple definitions for the
"get" method of the common attribute<SPAN class=347543202-17062004> (common
attribute to both Derived and Base classes) </SPAN>: one is a public
definition while the other is a private definition, leading to compilation
errors.</FONT></FONT></FONT></P>
<P><FONT face=Arial size=2>Note that this doesn’t occur in case <SPAN
class=863594923-16062004>when using </SPAN>the generic inheritance. <SPAN
class=863594923-16062004>Any <SPAN class=347543202-17062004>inputs
</SPAN>to what I can </SPAN><SPAN class=863594923-16062004>do </SPAN>to
resolve this?</FONT></P>
<P><FONT face=Arial><FONT size=2>Thanks<SPAN class=863594923-16062004> and
Regards,</SPAN></FONT></FONT></P>
<P><FONT face=Arial><FONT size=2><SPAN
class=863594923-16062004></SPAN></FONT></FONT><FONT face=Arial><FONT
size=2><SPAN
class=863594923-16062004>--Sujata</SPAN></FONT></FONT></P></DIV></DIV></BLOCKQUOTE></BODY></HTML>