From: Chris M. <zm...@us...> - 2001-12-01 19:25:29
|
Update of /cvsroot/kuml/kuml/libkuml/uml/tools In directory usw-pr-cvs1:/tmp/cvs-serv4144 Modified Files: common_assoc_code.xsl common_code.xsl gen_assoc_ccs.xsl gen_assoc_hs.xsl Log Message: Associations complete. Index: common_assoc_code.xsl =================================================================== RCS file: /cvsroot/kuml/kuml/libkuml/uml/tools/common_assoc_code.xsl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** common_assoc_code.xsl 2001/09/27 21:51:09 1.1 --- common_assoc_code.xsl 2001/12/01 19:25:23 1.2 *************** *** 8,46 **** ! <xsl:template name="assoc_collection_name"> ! <xsl:param name="lower"/> ! <xsl:param name="upper"/> ! <xsl:param name="is_ordered"/> ! <xsl:param name="is_unique"/> ! <xsl:param name="aggregation"/> - <xsl:variable name="collection"> - <xsl:call-template name="collection_name"> - <xsl:with-param name="lower"> - <xsl:value-of select="$lower"/> - </xsl:with-param> - <xsl:with-param name="upper"> - <xsl:value-of select="$upper"/> - </xsl:with-param> - <xsl:with-param name="is_ordered"> - <xsl:value-of select="$is_ordered"/> - </xsl:with-param> - <xsl:with-param name="is_unique"> - <xsl:value-of select="$is_unique"/> - </xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:choose> <!-- Why? --> <xsl:when test='$collection = "Bag"'> ! <xsl:text>_ptr </xsl:text> </xsl:when> <xsl:when test='string-length($collection) = 0'> ! <xsl:text>_ptr </xsl:text> </xsl:when> <xsl:otherwise> ! <xsl:value-of select="$collection"/> ! <xsl:text>* </xsl:text> </xsl:otherwise> </xsl:choose> --- 8,24 ---- ! <xsl:template name="assoc_collection_ext"> ! <xsl:param name="collection"/> <xsl:choose> <!-- Why? --> <xsl:when test='$collection = "Bag"'> ! <xsl:text>_ptr</xsl:text> </xsl:when> <xsl:when test='string-length($collection) = 0'> ! <xsl:text>_ptr</xsl:text> </xsl:when> <xsl:otherwise> ! <xsl:text>*</xsl:text> </xsl:otherwise> </xsl:choose> Index: common_code.xsl =================================================================== RCS file: /cvsroot/kuml/kuml/libkuml/uml/tools/common_code.xsl,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** common_code.xsl 2001/09/27 21:51:09 1.8 --- common_code.xsl 2001/12/01 19:25:23 1.9 *************** *** 189,214 **** ! <!-- Template for mangling names. ! Special care must be taken to process idl_substitute name tags. --> - - <xsl:template match="Model:Tag" mode="mangle-name"> - <xsl:param name="the_xmi_id"/> <xsl:choose> ! <xsl:when test='contains(@elements," ")'> ! <xsl:if test='substring-before(@elements," ") = $the_xmi_id'> ! <xsl:value-of select="@name"/> ! </xsl:if> ! <xsl:if test='substring-after(@elements," ") = $the_xmi_id'> ! <xsl:value-of select="@name"/> ! </xsl:if> </xsl:when> <xsl:otherwise> ! <xsl:if test='@elements = $the_xmi_id'> ! <xsl:value-of select="@name"/> ! </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:template> --- 189,238 ---- ! <!-- Template for testing space separated lists. --> + <xsl:template name="list-contains"> + <xsl:param name="the_list"/> + <xsl:param name="the_item"/> <xsl:choose> ! <xsl:when test='contains($the_list, " ")'> ! <xsl:choose> ! <xsl:when test='starts-with($the_list, $the_item)'> ! <xsl:value-of select="true()"/> ! </xsl:when> ! <xsl:otherwise> ! <xsl:call-template name="list-contains"> ! <xsl:with-param name="the_list" ! select='substring-after($the_list," ")'/> ! <xsl:with-param name="the_item" select="$the_item"/> ! </xsl:call-template> ! </xsl:otherwise> ! </xsl:choose> </xsl:when> <xsl:otherwise> ! <xsl:value-of select="$the_list = $the_item"/> </xsl:otherwise> </xsl:choose> + + </xsl:template> + + + <!-- Template for mangling names. + Special care must be taken to process idl_substitute name tags. + --> + + + <xsl:template match="Model:Tag" mode="mangle-name"> + <xsl:param name="the_xmi_id"/> + <xsl:variable name="elems" select="@elements"/> + <xsl:variable name="elems_contains_xmi_id"> + <xsl:call-template name="list-contains"> + <xsl:with-param name="the_list" select="$elems"/> + <xsl:with-param name="the_item" select="$the_xmi_id"/> + </xsl:call-template> + </xsl:variable> + <xsl:if test='$elems_contains_xmi_id="true"'> + <xsl:value-of select='@name'/> + </xsl:if> </xsl:template> *************** *** 278,281 **** --- 302,333 ---- </xsl:if> + </xsl:template> + + + + <!-- Templates for finding a nodes package. --> + <!-- These use the package_name mode and setup the package_name variable. --> + + <xsl:template match="*" mode="package_name"/> + + <xsl:template + match="Model:DataType.typeCode | XMI.CorbaTcAlias | XMI.CorbaTypeCode" + mode="package_name"> + <xsl:apply-templates mode="package_name"/> + </xsl:template> + + <xsl:template match="XMI.CorbaTcBoolean" mode="package_name"> + <xsl:text>CORBA</xsl:text> + </xsl:template> + + <xsl:template match="XMI.CorbaTcEnum" mode="package_name"> + <xsl:text>DataTypes</xsl:text> + </xsl:template> + + <xsl:template match="Model:Class" mode="package_name"> + <xsl:call-template name="toName"> + <xsl:with-param name="text" select="ancestor::Model:Package/@name"/> + <xsl:with-param name="position" select="1"/> + </xsl:call-template> </xsl:template> Index: gen_assoc_ccs.xsl =================================================================== RCS file: /cvsroot/kuml/kuml/libkuml/uml/tools/gen_assoc_ccs.xsl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** gen_assoc_ccs.xsl 2001/10/31 22:40:38 1.2 --- gen_assoc_ccs.xsl 2001/12/01 19:25:23 1.3 *************** *** 12,15 **** --- 12,350 ---- + <xsl:template name="single-nav-impl"> + <xsl:param name="end"/> + <xsl:param name="retv_param_package"/> + <xsl:param name="retv_param_type"/> + <xsl:param name="retv_collection_kind"/> + <xsl:param name="assoc_name"/> + <xsl:param name="func_name"/> [...1136 lines suppressed...] ! <xsl:value-of select="$assoc_end2_name"/> <xsl:text> ) </xsl:text> <xsl:text>throw( </xsl:text> *************** *** 675,681 **** <xsl:text> i != fc_ref_all_links.end(); i++) </xsl:text> <xsl:text> { if ((*i)[0] == </xsl:text> ! <xsl:value-of select="$assoc_end1_type_name"/> <xsl:text> && (*i)[1] == </xsl:text> ! <xsl:value-of select="$assoc_end2_type_name"/> <xsl:text>) </xsl:text> <xsl:text> { fc_ref_all_links.erase(i); </xsl:text> --- 963,969 ---- <xsl:text> i != fc_ref_all_links.end(); i++) </xsl:text> <xsl:text> { if ((*i)[0] == </xsl:text> ! <xsl:value-of select="$assoc_end1_name"/> <xsl:text> && (*i)[1] == </xsl:text> ! <xsl:value-of select="$assoc_end2_name"/> <xsl:text>) </xsl:text> <xsl:text> { fc_ref_all_links.erase(i); </xsl:text> Index: gen_assoc_hs.xsl =================================================================== RCS file: /cvsroot/kuml/kuml/libkuml/uml/tools/gen_assoc_hs.xsl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** gen_assoc_hs.xsl 2001/09/27 21:51:09 1.4 --- gen_assoc_hs.xsl 2001/12/01 19:25:23 1.5 *************** *** 14,20 **** <xsl:template name="ASSOCIATION"> <xsl:param name="assocName"/> ! <xsl:variable name="package_name" select="ancestor::Model:Package/@name"/> <xsl:variable name="ASSOC_NAME"> <xsl:call-template name="to_upper"> --- 14,22 ---- <xsl:template name="ASSOCIATION"> <xsl:param name="assocName"/> [...577 lines suppressed...] ! <xsl:value-of select="$assocEnd2PackageName"/> ! <xsl:text>::</xsl:text> <xsl:value-of select="$assocEnd2TypeName"/> <xsl:text>_ptr </xsl:text> *************** *** 627,633 **** <xalan:write select="$filename"> <xsl:call-template name="ASSOCIATION"> ! <xsl:with-param name="assocName"> ! <xsl:value-of select="$assocName"/> ! </xsl:with-param> </xsl:call-template> </xalan:write> --- 749,754 ---- <xalan:write select="$filename"> <xsl:call-template name="ASSOCIATION"> ! <xsl:with-param name="assocName" select="$assocName"/> ! <xsl:with-param name="package_name" select="$package_name"/> </xsl:call-template> </xalan:write> |