From: Chris M. <zm...@us...> - 2001-05-23 21:37:19
|
Update of /cvsroot/kuml/kuml/libkuml/uml/tools In directory usw-pr-cvs1:/tmp/cvs-serv11105 Modified Files: gen_proxy_hs.xsl Log Message: proxy_hs looks complete to me. Index: gen_proxy_hs.xsl =================================================================== RCS file: /cvsroot/kuml/kuml/libkuml/uml/tools/gen_proxy_hs.xsl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** gen_proxy_hs.xsl 2001/05/22 23:00:40 1.3 --- gen_proxy_hs.xsl 2001/05/23 21:37:17 1.4 *************** *** 11,14 **** --- 11,69 ---- + <!-- Templates to do #includes + These templates all use the include mode. + --> + + + <!-- Replace the default rule. --> + <xsl:template match="*" mode="include"/> + + + <!-- Certain nodes do nothing. --> + <xsl:template mode="include" + match="/ | XMI | XMI.content | Model:Package | Model:Namespace.contents | Model:DataType.typeCode | XMI.CorbaTypeCode"> + <xsl:apply-templates mode="include"/> + </xsl:template> + + + <xsl:template match="Model:Class" mode="include"> + <xsl:variable name="classname" select="@name"/> + <xsl:text>#include "</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>Class_impl.h" </xsl:text> + + <xsl:text> </xsl:text> + + </xsl:template> + + + + + <!-- Templates to do inheritance + These templates all use the inherit mode. + --> + + + <!-- Replace the default rule. --> + <xsl:template match="*" mode="inherit"/> + + + <!-- Certain nodes do nothing. --> + <xsl:template mode="inherit" + match="/ | XMI | XMI.content | Model:Package | Model:Namespace.contents | Model:DataType.typeCode | XMI.CorbaTypeCode"> + <xsl:apply-templates mode="inherit"/> + </xsl:template> + + + <xsl:template match="Model:Class" mode="inherit"> + <xsl:text> virtual public </xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>Class_impl, </xsl:text> + </xsl:template> + + + + + <!-- Templates to do parameters to the create_<class> method. These templates all use the create_params mode. *************** *** 38,42 **** </xsl:with-param> <xsl:with-param name="position" select="1"/> ! </xsl:call-template> <xsl:text>, </xsl:text> </xsl:template> --- 93,97 ---- </xsl:with-param> <xsl:with-param name="position" select="1"/> ! </xsl:call-template> <xsl:text>, </xsl:text> </xsl:template> *************** *** 47,50 **** --- 102,106 ---- <!-- attempt to find this class's supertype --> <xsl:variable name="supertypes" select="@supertypes"/> + <!-- xsl:variable name="superclass" select="/descendant::Model:Class[@xmi.id=$supertypes]"/ --> *************** *** 79,84 **** <xsl:variable name="class_name" select="@name"/> <xsl:variable name="supertypes" select="@supertypes"/> - <xsl:variable name="superclass" - select="/descendant::Model:Class[@xmi.id=$supertypes]/@name"/> <xsl:variable name="processed_cn"> --- 135,138 ---- *************** *** 95,99 **** <xsl:with-param name="the_string" select="$class_name"/> </xsl:call-template> ! <xsl:text>_H__ </xsl:text> <xsl:text>#define __</xsl:text> --- 149,153 ---- <xsl:with-param name="the_string" select="$class_name"/> </xsl:call-template> ! <xsl:text>CLASS_H__ </xsl:text> <xsl:text>#define __</xsl:text> *************** *** 101,105 **** <xsl:with-param name="the_string" select="$class_name"/> </xsl:call-template> ! <xsl:text>_H__ </xsl:text> <xsl:text> </xsl:text> --- 155,159 ---- <xsl:with-param name="the_string" select="$class_name"/> </xsl:call-template> ! <xsl:text>CLASS_H__ </xsl:text> <xsl:text> </xsl:text> *************** *** 107,124 **** <!-- Includes. --> - <xsl:text>#include "</xsl:text> <xsl:choose> <xsl:when test="count(attribute::supertypes) = 0"> ! <xsl:text>Reflective</xsl:text> </xsl:when> <xsl:otherwise> ! <xsl:value-of select="$superclass"/> ! <xsl:text>Class</xsl:text> </xsl:otherwise> </xsl:choose> - <xsl:text>_impl.h" </xsl:text> - <xsl:text> </xsl:text> - <xsl:text>#include "Core.h" </xsl:text> --- 161,189 ---- <!-- Includes. --> <xsl:choose> <xsl:when test="count(attribute::supertypes) = 0"> ! <xsl:text>#include "Reflective_impl.h" </xsl:text> </xsl:when> <xsl:otherwise> ! <xsl:choose> ! <xsl:when test='contains(@supertypes," ")'> ! ! <xsl:apply-templates mode="include" ! select='/descendant::Model:Class[@xmi.id=substring-before($supertypes," ")]'/> ! ! <xsl:apply-templates mode="include" ! select='/descendant::Model:Class[@xmi.id=substring-after($supertypes," ")]'/> ! ! </xsl:when> ! <xsl:otherwise> ! ! <xsl:apply-templates mode="include" ! select='/descendant::Model:Class[@xmi.id=$supertypes]'/> ! ! </xsl:otherwise> ! </xsl:choose> </xsl:otherwise> </xsl:choose> <xsl:text>#include "Core.h" </xsl:text> *************** *** 133,140 **** <xsl:text>Class_impl : </xsl:text> ! <xsl:text> virtual public </xsl:text> ! <xsl:value-of select="$superclass"/> ! <xsl:text>Class_impl, </xsl:text> <xsl:text> virtual public POA_</xsl:text> <xsl:value-of select="$package_name"/> --- 198,226 ---- <xsl:text>Class_impl : </xsl:text> ! <xsl:choose> ! <xsl:when test="count(attribute::supertypes) = 0"> ! <xsl:text> virtual public Reflective::RefObject, </xsl:text> ! </xsl:when> ! <xsl:otherwise> ! <xsl:choose> ! <xsl:when test='contains(@supertypes," ")'> ! ! <xsl:apply-templates mode="inherit" ! select='/descendant::Model:Class[@xmi.id=substring-before($supertypes," ")]'/> ! ! <xsl:apply-templates mode="inherit" ! select='/descendant::Model:Class[@xmi.id=substring-after($supertypes," ")]'/> ! ! </xsl:when> ! <xsl:otherwise> + <xsl:apply-templates mode="inherit" + select='/descendant::Model:Class[@xmi.id=$supertypes]'/> + + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + <xsl:text> virtual public POA_</xsl:text> <xsl:value-of select="$package_name"/> *************** *** 147,150 **** --- 233,238 ---- <xsl:text> public: </xsl:text> + <xsl:text> </xsl:text> + <!-- Constructor. --> *************** *** 153,158 **** <xsl:text>Class_impl(); </xsl:text> - <xsl:text> </xsl:text> - <!-- Destructor. --> --- 241,244 ---- *************** *** 163,167 **** <xsl:text> </xsl:text> ! <xsl:text> </xsl:text> <xsl:value-of select="$package_name"/> <xsl:text>::</xsl:text> --- 249,253 ---- <xsl:text> </xsl:text> ! <xsl:text> </xsl:text> <xsl:value-of select="$package_name"/> <xsl:text>::</xsl:text> *************** *** 171,179 **** <xsl:text>() </xsl:text> - <xsl:text> </xsl:text> - <xsl:if test='@isAbstract = "false"'> ! <xsl:text> </xsl:text> <xsl:value-of select="$package_name"/> <xsl:text>::</xsl:text> --- 257,263 ---- <xsl:text>() </xsl:text> <xsl:if test='@isAbstract = "false"'> ! <xsl:text> </xsl:text> <xsl:value-of select="$package_name"/> <xsl:text>::</xsl:text> *************** *** 183,192 **** <xsl:text>() </xsl:text> - <xsl:text> </xsl:text> - </xsl:if> <!-- create_<class> method. --> <xsl:text> </xsl:text> <xsl:value-of select="$package_name"/> --- 267,275 ---- <xsl:text>() </xsl:text> </xsl:if> <!-- create_<class> method. --> + <xsl:text> </xsl:text> <xsl:text> </xsl:text> <xsl:value-of select="$package_name"/> *************** *** 207,210 **** --- 290,325 ---- <xsl:text> </xsl:text> + + <xsl:text> protected: </xsl:text> + + <xsl:text> </xsl:text> + + <xsl:text> static list<</xsl:text> + <xsl:value-of select="$package_name"/> + <xsl:text>::</xsl:text> + <xsl:value-of select="$class_name"/> + <xsl:text>_ptr> fc_all_of_type_</xsl:text> + <xsl:value-of select="$processed_cn"/> + <xsl:text>; </xsl:text> + + <xsl:text> </xsl:text> + + <xsl:if test='@isAbstract = "false"'> + + <xsl:text> private: </xsl:text> + + <xsl:text> </xsl:text> + + <xsl:text> static list<</xsl:text> + <xsl:value-of select="$package_name"/> + <xsl:text>::</xsl:text> + <xsl:value-of select="$class_name"/> + <xsl:text>_ptr> fc_all_of_class_</xsl:text> + <xsl:value-of select="$processed_cn"/> + <xsl:text>; </xsl:text> + + <xsl:text> </xsl:text> + + </xsl:if> <xsl:text>}; </xsl:text> |