|
From: Chris M. <zm...@us...> - 2002-01-30 20:41:07
|
Update of /cvsroot/kuml/kuml/libkuml/uml/tools
In directory usw-pr-cvs1:/tmp/cvs-serv29902
Modified Files:
gen_class_ccs.xsl gen_package_ccs.xsl gen_package_hs.xsl
gen_proxy_ccs.xsl gen_proxy_hs.xsl
Log Message:
Get the parent package of an proxy class mod.
Index: gen_class_ccs.xsl
===================================================================
RCS file: /cvsroot/kuml/kuml/libkuml/uml/tools/gen_class_ccs.xsl,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** gen_class_ccs.xsl 2001/12/28 23:42:41 1.10
--- gen_class_ccs.xsl 2002/01/30 20:41:04 1.11
***************
*** 11,14 ****
--- 11,71 ----
+ <xsl:template name="CONSTRUCT_ATTRIBUTE">
+
+ <xsl:variable name="type_ref" select="@type"/>
+
+ <!-- Define the value of the CORBA_type variable by applying templates
+ in the type_name mode to the descendant of the root node whos xmi.id
+ attribute matches type_ref.
+ -->
+ <xsl:variable name="CORBA_type">
+ <xsl:apply-templates
+ select='/descendant::*[@xmi.id=$type_ref]'
+ mode="type_name"/>
+ </xsl:variable>
+
+ <xsl:if test='$CORBA_type = "char*"'>
+
+ <xsl:variable name="attribute">
+ <xsl:call-template name="get_name">
+ <xsl:with-param name="the_xmi_id" select="@xmi.id"/>
+ <xsl:with-param name="the_name" select="@name"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="attr_name">
+ <xsl:call-template name="to_name">
+ <xsl:with-param name="text">
+ <xsl:value-of select="$attribute"/>
+ </xsl:with-param>
+ <xsl:with-param name="position" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:text> fc_</xsl:text>
+ <xsl:value-of select="$attr_name"/>
+ <xsl:text> = NULL; </xsl:text>
+
+ </xsl:if>
+
+ </xsl:template>
+
+
+ <!-- Replace the default rule. -->
+ <xsl:template match="*" mode="constructor"/>
+
+
+ <!-- Certain nodes do nothing. -->
+ <xsl:template
+ match="/ | XMI | XMI.content | Model:Package | Model:Namespace.contents | Model:DataType.typeCode | XMI.CorbaTypeCode" mode="constructor">
+ <xsl:apply-templates mode="constructor"/>
+ </xsl:template>
+
+
+ <xsl:template match="Model:Attribute" mode="constructor">
+ <xsl:call-template name="CONSTRUCT_ATTRIBUTE"/>
+ </xsl:template>
+
+
<xsl:template name="CLASS_INSTANCE">
***************
*** 47,50 ****
--- 104,111 ----
<xsl:text>#include "list_ops.h" </xsl:text>
+ <xsl:text>#include <stdlib.h> </xsl:text>
+
+ <xsl:text>#include <string.h> </xsl:text>
+
<xsl:text> </xsl:text>
***************
*** 72,75 ****
--- 133,138 ----
<xsl:text>::_duplicate(_this())); </xsl:text>
+ <xsl:apply-templates mode="constructor"/>
+
<xsl:text>}; </xsl:text>
***************
*** 197,203 ****
<xsl:when test='$CORBA_type="char*"'>
<xsl:text>{ CORBA::String_var str; </xsl:text>
! <xsl:text> str = fc_</xsl:text>
<xsl:value-of select="$attr_name"/>
! <xsl:text>; </xsl:text>
<xsl:text> return str._retn(); </xsl:text>
<xsl:text>} </xsl:text>
--- 260,266 ----
<xsl:when test='$CORBA_type="char*"'>
<xsl:text>{ CORBA::String_var str; </xsl:text>
! <xsl:text> str = strdup(fc_</xsl:text>
<xsl:value-of select="$attr_name"/>
! <xsl:text>); </xsl:text>
<xsl:text> return str._retn(); </xsl:text>
<xsl:text>} </xsl:text>
***************
*** 235,241 ****
<xsl:when test='$CORBA_type="char*"'>
<xsl:text>{ CORBA::String_var str; </xsl:text>
! <xsl:text> str = fc_</xsl:text>
<xsl:value-of select="$attr_name"/>
! <xsl:text>; </xsl:text>
<xsl:text> return str._retn(); </xsl:text>
<xsl:text>} </xsl:text>
--- 298,304 ----
<xsl:when test='$CORBA_type="char*"'>
<xsl:text>{ CORBA::String_var str; </xsl:text>
! <xsl:text> str = strdup(fc_</xsl:text>
<xsl:value-of select="$attr_name"/>
! <xsl:text>); </xsl:text>
<xsl:text> return str._retn(); </xsl:text>
<xsl:text>} </xsl:text>
***************
*** 296,302 ****
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ fc_</xsl:text>
! <xsl:value-of select="$attr_name"/>
! <xsl:text> = new_value; </xsl:text>
<xsl:text>} </xsl:text>
<xsl:text> </xsl:text>
--- 359,388 ----
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:choose>
!
! <xsl:when test='$CORBA_type="char*"'>
!
! <xsl:text>{ if (fc_</xsl:text>
! <xsl:value-of select="$attr_name"/>
! <xsl:text> != NULL) free(fc_</xsl:text>
! <xsl:value-of select="$attr_name"/>
! <xsl:text>); </xsl:text>
!
! <xsl:text> fc_</xsl:text>
! <xsl:value-of select="$attr_name"/>
! <xsl:text> = strdup(new_value); </xsl:text>
!
! </xsl:when>
!
! <xsl:otherwise>
!
! <xsl:text>{ fc_</xsl:text>
! <xsl:value-of select="$attr_name"/>
! <xsl:text> = new_value; </xsl:text>
!
! </xsl:otherwise>
!
! </xsl:choose>
!
<xsl:text>} </xsl:text>
<xsl:text> </xsl:text>
***************
*** 736,740 ****
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = _this()->ref_immediate_package(); </xsl:text>
<xsl:text> </xsl:text>
--- 822,826 ----
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = get_parent_package();; </xsl:text>
<xsl:text> </xsl:text>
***************
*** 753,757 ****
<xsl:text>::</xsl:text>
<xsl:value-of select="$assoc_name"/>
! <xsl:text>_ptr assoc_proxy = cp-></xsl:text>
<xsl:value-of select="$lc_assoc_name"/>
<xsl:text>_ref(); </xsl:text>
--- 839,844 ----
<xsl:text>::</xsl:text>
<xsl:value-of select="$assoc_name"/>
! <xsl:text>_ptr assoc_proxy = </xsl:text>
! <xsl:text> cp-></xsl:text>
<xsl:value-of select="$lc_assoc_name"/>
<xsl:text>_ref(); </xsl:text>
***************
*** 800,804 ****
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = _this()->ref_immediate_package(); </xsl:text>
<xsl:text> </xsl:text>
--- 887,891 ----
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = get_parent_package(); </xsl:text>
<xsl:text> </xsl:text>
***************
*** 816,820 ****
<xsl:text>::</xsl:text>
<xsl:value-of select="$assoc_name"/>
! <xsl:text>_ptr assoc_proxy = cp-></xsl:text>
<xsl:value-of select="$lc_assoc_name"/>
<xsl:text>_ref(); </xsl:text>
--- 903,908 ----
<xsl:text>::</xsl:text>
<xsl:value-of select="$assoc_name"/>
! <xsl:text>_ptr assoc_proxy = </xsl:text>
! <xsl:text> cp-></xsl:text>
<xsl:value-of select="$lc_assoc_name"/>
<xsl:text>_ref(); </xsl:text>
***************
*** 864,868 ****
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = _this()->ref_immediate_package(); </xsl:text>
<xsl:text> </xsl:text>
--- 952,956 ----
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = get_parent_package(); </xsl:text>
<xsl:text> </xsl:text>
***************
*** 918,922 ****
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = _this()->ref_immediate_package(); </xsl:text>
<xsl:text> </xsl:text>
--- 1006,1010 ----
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = get_parent_package(); </xsl:text>
<xsl:text> </xsl:text>
***************
*** 1050,1054 ****
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = _this()->ref_immediate_package(); </xsl:text>
<xsl:text> </xsl:text>
--- 1138,1142 ----
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = get_parent_package(); </xsl:text>
<xsl:text> </xsl:text>
***************
*** 1117,1121 ****
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = _this()->ref_immediate_package(); </xsl:text>
<xsl:text> </xsl:text>
--- 1205,1209 ----
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = get_parent_package(); </xsl:text>
<xsl:text> </xsl:text>
***************
*** 1181,1185 ****
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = _this()->ref_immediate_package(); </xsl:text>
<xsl:text> </xsl:text>
--- 1269,1273 ----
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = get_parent_package(); </xsl:text>
<xsl:text> </xsl:text>
***************
*** 1240,1244 ****
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = _this()->ref_immediate_package(); </xsl:text>
<xsl:text> </xsl:text>
--- 1328,1332 ----
<xsl:text> ::Reflective::MofError) </xsl:text>
! <xsl:text>{ Reflective::RefPackage_ptr rp = get_parent_package(); </xsl:text>
<xsl:text> </xsl:text>
Index: gen_package_ccs.xsl
===================================================================
RCS file: /cvsroot/kuml/kuml/libkuml/uml/tools/gen_package_ccs.xsl,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** gen_package_ccs.xsl 2001/12/26 00:03:36 1.3
--- gen_package_ccs.xsl 2002/01/30 20:41:04 1.4
***************
*** 27,31 ****
<xsl:text>/</xsl:text>
<xsl:value-of select="$ClassName"/>
! <xsl:text>.h" </xsl:text>
</xsl:template>
--- 27,31 ----
<xsl:text>/</xsl:text>
<xsl:value-of select="$ClassName"/>
! <xsl:text>Package_impl.h" </xsl:text>
</xsl:template>
***************
*** 102,105 ****
--- 102,224 ----
+ <xsl:template name="IMPORTED_CNSTRCTR">
+
+ <xsl:variable name="package_name">
+ <xsl:call-template name="toName">
+ <xsl:with-param name="text">
+ <xsl:value-of select="ancestor::Model:Package/@name"/>
+ </xsl:with-param>
+ <xsl:with-param name="position" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="ClassName">
+ <xsl:call-template name="toName">
+ <xsl:with-param name="text">
+ <xsl:value-of select="@name"/>
+ </xsl:with-param>
+ <xsl:with-param name="position" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="class_name">
+ <xsl:call-template name="to_name">
+ <xsl:with-param name="text">
+ <xsl:value-of select="$ClassName"/>
+ </xsl:with-param>
+ <xsl:with-param name="position" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:text> fc_</xsl:text>
+ <xsl:value-of select="$class_name"/>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select="$ClassName"/>
+ <xsl:text>::</xsl:text>
+ <xsl:value-of select="$ClassName"/>
+ <xsl:text>Package::_nil(); </xsl:text>
+
+ </xsl:template>
+
+
+ <xsl:template name="CLASS_CNSTRCTR">
+
+ <xsl:variable name="package_name">
+ <xsl:call-template name="toName">
+ <xsl:with-param name="text">
+ <xsl:value-of select="ancestor::Model:Package/@name"/>
+ </xsl:with-param>
+ <xsl:with-param name="position" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="ClassName">
+ <xsl:call-template name="get_name">
+ <xsl:with-param name="the_xmi_id" select="@xmi.id"/>
+ <xsl:with-param name="the_name" select="@name"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="class_name">
+ <xsl:call-template name="to_name">
+ <xsl:with-param name="text">
+ <xsl:value-of select="$ClassName"/>
+ </xsl:with-param>
+ <xsl:with-param name="position" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:text> fc_</xsl:text>
+ <xsl:value-of select="$class_name"/>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select="$package_name"/>
+ <xsl:text>::</xsl:text>
+ <xsl:value-of select="$ClassName"/>
+ <xsl:text>Class::_nil(); </xsl:text>
+
+ </xsl:template>
+
+
+
+ <xsl:template name="ASSOCIATION_CNSTRCTR">
+
+ <xsl:variable name="package_name">
+ <xsl:call-template name="toName">
+ <xsl:with-param name="text">
+ <xsl:value-of select="ancestor::Model:Package/@name"/>
+ </xsl:with-param>
+ <xsl:with-param name="position" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="ClassName">
+ <xsl:call-template name="toName">
+ <xsl:with-param name="text">
+ <xsl:value-of select="@name"/>
+ </xsl:with-param>
+ <xsl:with-param name="position" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="class_name">
+ <xsl:call-template name="to_name">
+ <xsl:with-param name="text">
+ <xsl:value-of select="$ClassName"/>
+ </xsl:with-param>
+ <xsl:with-param name="position" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:text> fc_</xsl:text>
+ <xsl:value-of select="$class_name"/>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select="$package_name"/>
+ <xsl:text>::</xsl:text>
+ <xsl:value-of select="$ClassName"/>
+ <xsl:text>::_nil(); </xsl:text>
+
+ </xsl:template>
+
+
<xsl:template name="IMPORTED_IMPL">
***************
*** 139,144 ****
<xsl:value-of select="$class_name"/>
<xsl:text>_ref() </xsl:text>
- <xsl:text>{ }; </xsl:text>
</xsl:template>
--- 258,290 ----
<xsl:value-of select="$class_name"/>
<xsl:text>_ref() </xsl:text>
+ <xsl:text>{ if (CORBA::is_nil(fc_</xsl:text>
+ <xsl:value-of select="$class_name"/>
+ <xsl:text>)) </xsl:text>
+
+ <xsl:text> { </xsl:text>
+ <xsl:value-of select="$ClassName"/>
+ <xsl:text>Package_impl* impl = new </xsl:text>
+ <xsl:value-of select="$ClassName"/>
+ <xsl:text>Package_impl; </xsl:text>
+
+ <xsl:text> fc_</xsl:text>
+ <xsl:value-of select="$class_name"/>
+ <xsl:text> = impl->_this(); </xsl:text>
+
+ <xsl:text> } </xsl:text>
+
+ <xsl:text> return </xsl:text>
+ <xsl:value-of select="$ClassName"/>
+ <xsl:text>::</xsl:text>
+ <xsl:value-of select="$ClassName"/>
+ <xsl:text>Package::_duplicate(fc_</xsl:text>
+ <xsl:value-of select="$class_name"/>
+ <xsl:text>); </xsl:text>
+
+ <xsl:text>}; </xsl:text>
+
+ <xsl:text> </xsl:text>
+
</xsl:template>
***************
*** 194,197 ****
--- 340,345 ----
<xsl:text> = impl->_this(); </xsl:text>
+ <xsl:text> impl->set_parent_package(_this()); </xsl:text>
+
<xsl:text> } </xsl:text>
***************
*** 303,306 ****
--- 451,456 ----
<xsl:text> </xsl:text>
+ <xsl:text> </xsl:text>
+
</xsl:template>
***************
*** 344,347 ****
--- 494,523 ----
<!-- Replace the default rule. -->
+ <xsl:template match="*" mode="constructor"/>
+
+
+ <!-- Certain nodes do nothing. -->
+ <xsl:template
+ match="/ | XMI | XMI.content | Model:Package | Model:Namespace.contents | Model:DataType.typeCode | XMI.CorbaTypeCode" mode="constructor">
+ <xsl:apply-templates mode="constructor"/>
+ </xsl:template>
+
+
+ <xsl:template match="Model:Import" mode="constructor">
+ <xsl:call-template name="IMPORTED_CNSTRCTR"/>
+ </xsl:template>
+
+
+ <xsl:template match="Model:Class" mode="constructor">
+ <xsl:call-template name="CLASS_CNSTRCTR"/>
+ </xsl:template>
+
+
+ <xsl:template match="Model:Association" mode="constructor">
+ <xsl:call-template name="ASSOCIATION_CNSTRCTR"/>
+ </xsl:template>
+
+
+ <!-- Replace the default rule. -->
<xsl:template match="*" mode="implementations"/>
***************
*** 412,415 ****
--- 588,602 ----
<xsl:call-template name="PACKAGE_HDR"/>
+
+ <!-- Output the constructor function def -->
+ <xsl:value-of select="$ClassName"/>
+ <xsl:text>Package_impl::</xsl:text>
+ <xsl:value-of select="$ClassName"/>
+ <xsl:text>Package_impl() </xsl:text>
+ <xsl:text>{ </xsl:text>
+
+ <xsl:apply-templates mode="constructor"/>
+
+ <xsl:text>} </xsl:text>
<xsl:text> </xsl:text>
Index: gen_package_hs.xsl
===================================================================
RCS file: /cvsroot/kuml/kuml/libkuml/uml/tools/gen_package_hs.xsl,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** gen_package_hs.xsl 2001/12/26 00:03:36 1.2
--- gen_package_hs.xsl 2002/01/30 20:41:04 1.3
***************
*** 280,283 ****
--- 280,293 ----
<xsl:text>{ </xsl:text>
+ <xsl:text> </xsl:text>
+
+ <xsl:text> public: </xsl:text>
+
+ <xsl:text> </xsl:text>
+
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$package_name"/>
+ <xsl:text>Package_impl(); </xsl:text>
+
</xsl:template>
Index: gen_proxy_ccs.xsl
===================================================================
RCS file: /cvsroot/kuml/kuml/libkuml/uml/tools/gen_proxy_ccs.xsl,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** gen_proxy_ccs.xsl 2001/12/26 00:03:36 1.4
--- gen_proxy_ccs.xsl 2002/01/30 20:41:04 1.5
***************
*** 235,238 ****
--- 235,246 ----
</xsl:if>
+ <xsl:text>Reflective::RefPackage_ptr </xsl:text>
+ <xsl:value-of select="$class_name"/>
+ <xsl:text>Class_impl::parent_package = </xsl:text>
+
+ <xsl:text> Reflective::RefPackage::_nil(); </xsl:text>
+
+ <xsl:text> </xsl:text>
+
<!-- Constructor. -->
***************
*** 251,254 ****
--- 259,276 ----
<xsl:text>{ } </xsl:text>
+ <xsl:text> </xsl:text>
+
+ <!-- get_parent_package -->
+ <xsl:text>Reflective::RefPackage_ptr </xsl:text>
+ <xsl:value-of select="$class_name"/>
+ <xsl:text>Class_impl::get_parent_package() </xsl:text>
+ <xsl:text>{ return Reflective::RefPackage::_duplicate(parent_package); } </xsl:text>
+ <xsl:text> </xsl:text>
+
+ <!-- set_parent_package -->
+ <xsl:text>void </xsl:text>
+ <xsl:value-of select="$class_name"/>
+ <xsl:text>Class_impl::set_parent_package(Reflective::RefPackage_ptr new_value) </xsl:text>
+ <xsl:text>{ parent_package = Reflective::RefPackage::_duplicate(new_value); } </xsl:text>
<xsl:text> </xsl:text>
Index: gen_proxy_hs.xsl
===================================================================
RCS file: /cvsroot/kuml/kuml/libkuml/uml/tools/gen_proxy_hs.xsl,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -r1.11 -r1.12
*** gen_proxy_hs.xsl 2001/12/26 00:03:36 1.11
--- gen_proxy_hs.xsl 2002/01/30 20:41:04 1.12
***************
*** 276,279 ****
--- 276,287 ----
</xsl:if>
+ <xsl:text> Reflective::RefPackage_ptr get_parent_package(); </xsl:text>
+
+ <xsl:text> </xsl:text>
+
+ <xsl:text> void set_parent_package(Reflective::RefPackage_ptr new_value); </xsl:text>
+
+ <xsl:text> </xsl:text>
+
<xsl:text> protected: </xsl:text>
***************
*** 303,306 ****
--- 311,322 ----
</xsl:if>
+
+ <xsl:text> private: </xsl:text>
+
+ <xsl:text> </xsl:text>
+
+ <xsl:text> static Reflective::RefPackage_ptr parent_package; </xsl:text>
+
+ <xsl:text> </xsl:text>
<xsl:text>}; </xsl:text>
|