[prev in list] [next in list] [prev in thread] [next in thread]
List: jboss-cvs-commits
Subject: [jboss-cvs] contrib/varia/src/resources/deployment/resources/6.1 weblogic-cmp-rdbms-jar.xsl
From: Alexey Loubyansky <loubyansky () users ! sourceforge ! net>
Date: 2002-10-31 17:07:16
[Download RAW message or body]
User: loubyansky
Date: 02/10/31 09:07:15
Modified: varia/src/resources/deployment/resources/6.1
weblogic-cmp-rdbms-jar.xsl
Log:
corrected column-map to key-fields convertion
Revision Changes Path
1.4 +76 -79 \
contrib/varia/src/resources/deployment/resources/6.1/weblogic-cmp-rdbms-jar.xsl
Index: weblogic-cmp-rdbms-jar.xsl
===================================================================
RCS file: /cvsroot/jboss/contrib/varia/src/resources/deployment/resources/6.1/weblogic-cmp-rdbms-jar.xsl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- weblogic-cmp-rdbms-jar.xsl 28 Oct 2002 08:36:09 -0000 1.3
+++ weblogic-cmp-rdbms-jar.xsl 31 Oct 2002 17:07:13 -0000 1.4
@@ -358,11 +358,15 @@
<!-- ejb-relation -->
<xsl:element name="ejb-relation">
+ <!-- variable relation name -->
+ <xsl:variable name="relation-name" select="./relation-name"/>
+
<!-- ejb-relation-name -->
<xsl:element name="ejb-relation-name">
- <xsl:value-of select="./relation-name"/>
- </xsl:element> <!-- ejb-relation-name -->
+ <xsl:value-of select="$relation-name"/>
+ </xsl:element>
+ <!-- choose key mapping -->
<xsl:choose>
<xsl:when test="./table-name">
<!-- relation-table-mapping -->
@@ -394,59 +398,82 @@
</xsl:otherwise>
</xsl:choose>
+ <!-- relationship-roles -->
<xsl:choose>
<!-- relationship table mapping -->
<xsl:when test="count(./weblogic-relationship-role) = 2">
- <!-- left ejb-relationship-role -->
- <xsl:call-template name="ejb-relationship-role">
- <xsl:with-param name="this-weblogic-relationship-role"
- select="./weblogic-relationship-role[1]"/>
- <xsl:with-param name="opposite-weblogic-relationship-role"
- select="./weblogic-relationship-role[2]"/>
- </xsl:call-template> <!-- left ejb-relationship-role -->
-
- <!-- right ejb-relationship-role -->
- <xsl:call-template name="ejb-relationship-role">
- <xsl:with-param name="this-weblogic-relationship-role"
- select="./weblogic-relationship-role[2]"/>
- <xsl:with-param name="opposite-weblogic-relationship-role"
- select="./weblogic-relationship-role[1]"/>
- </xsl:call-template> <!-- right ejb-relationship-role -->
+ <xsl:for-each select="./weblogic-relationship-role">
+ <!-- current role name -->
+ <xsl:variable name="thisRoleName" \
select="./relationship-role-name"/> + <!-- the current side \
entity ejb-name --> + <xsl:variable name="ejb-name">
+ <xsl:for-each \
select="document($ejb-jar)/ejb-jar/relationships/ejb-relation[ejb-relation-name=$relation-name]">
+ <xsl:for-each \
select="./ejb-relationship-role[ejb-relationship-role-name=$thisRoleName]"> + \
<xsl:value-of select="./relationship-role-source/ejb-name"/> + \
</xsl:for-each> + </xsl:for-each>
+ </xsl:variable>
+
+ <!-- ejb-relationship-role -->
+ <xsl:element name="ejb-relationship-role">
+ <!-- ejb-relationship-role-name -->
+ <xsl:element name="ejb-relationship-role-name">
+ <xsl:value-of select="./relationship-role-name"/>
+ </xsl:element>
+
+ <!-- key-fields -->
+ <xsl:element name="key-fields">
+ <xsl:for-each select="./column-map">
+ <!-- key-field -->
+ <xsl:call-template name="key-field">
+ <xsl:with-param name="column-map" select="."/>
+ <xsl:with-param name="ejb-name" \
select="$ejb-name"/> + </xsl:call-template>
+ </xsl:for-each> <!-- column-map -->
+ </xsl:element> <!-- key-fields -->
+ </xsl:element> <!-- ejb-relationship-role -->
+ </xsl:for-each> <!-- weblogic-relationship-role -->
</xsl:when>
<!-- foreign-key mapping -->
<xsl:otherwise>
- <!-- init variables for simplicity -->
- <xsl:variable name="relationName" select="./relation-name"/>
- <xsl:variable name="firstRoleName" \
select="./weblogic-relationship-role/relationship-role-name"/> + \
<!-- role name specified in weblogic-cmp-rdbms-jar.xsl --> + \
<xsl:variable name="thisRoleName" \
select="./weblogic-relationship-role/relationship-role-name"/> + \
<!-- the ejb-name of the related entity --> + <xsl:variable \
name="related-ejb-name"> + <xsl:for-each \
select="document($ejb-jar)/ejb-jar/relationships/ejb-relation[ejb-relation-name=$relation-name]">
+ <xsl:for-each \
select="./ejb-relationship-role[ejb-relationship-role-name!=$thisRoleName]"> + \
<xsl:value-of select="./relationship-role-source/ejb-name"/> + \
</xsl:for-each> + </xsl:for-each>
+ </xsl:variable>
- <!-- construct opposite ejb-relationship-role -->
+ <!-- the opposite ejb-relationship-role -->
<xsl:element name="ejb-relationship-role">
<!-- find the opposite ejb-relationship-role-name in \
ejb-jar.xml -->
- <xsl:for-each \
select="document($ejb-jar)/ejb-jar/relationships/ejb-relation[ejb-relation-name=$relationName]">
- <xsl:for-each \
select="./ejb-relationship-role[ejb-relationship-role-name!=$firstRoleName]"> + \
<xsl:for-each select="document($ejb-jar)/ejb-jar/relationships/ejb-relation[ejb-relation-name=$relation-name]">
+ <xsl:for-each \
select="./ejb-relationship-role[ejb-relationship-role-name!=$thisRoleName]">
<xsl:copy-of select="./ejb-relationship-role-name"/>
</xsl:for-each>
</xsl:for-each>
- <xsl:if test="./weblogic-relationship-role/column-map">
- <!-- key-fields -->
- <xsl:element name="key-fields">
- <xsl:for-each \
select="./weblogic-relationship-role/column-map">
- <!-- key-field -->
- <xsl:call-template name="key-field">
- <xsl:with-param name="column-map" select="."/>
- </xsl:call-template> <!-- key-field -->
- </xsl:for-each> <!-- column-map -->
- </xsl:element> <!-- key-fields -->
- </xsl:if> <!-- weblogic-relationship-role/column-map -->
+ <!-- key-fields -->
+ <xsl:element name="key-fields">
+ <xsl:for-each \
select="./weblogic-relationship-role/column-map"> + \
<!-- key-field --> + <xsl:call-template \
name="key-field"> + <xsl:with-param \
name="column-map" select="."/> + <xsl:with-param \
name="ejb-name" select="$related-ejb-name"/> + \
</xsl:call-template> + </xsl:for-each> <!-- column-map -->
+ </xsl:element> <!-- key-fields -->
</xsl:element> <!-- ejb-relationship-role -->
<!-- construct this side of the relationship -->
<xsl:element name="ejb-relationship-role">
<!-- ejb-relationship-role-name -->
<xsl:element name="ejb-relationship-role-name">
- <xsl:value-of select="$firstRoleName"/>
+ <xsl:value-of select="$thisRoleName"/>
</xsl:element> <!-- ejb-relationship-role-name -->
<!-- key-fields -->
<xsl:element name="key-fields"/>
@@ -460,64 +487,34 @@
</xsl:template> <!-- relationships -->
<!--
- | Template: ejb-relationship-role
- | Parameters:
- | this-weblogic-relationship-role - the weblogic-relationship-role
- | element that represents this (current) side of the relationship
- | opposite-weblogic-relationship-role - the weblogic-relationship-role
- | elmenet that represents the opposite side of the relationship
- | Note: column-map maps foreign keys to primary
- | while key-fields map primary to foreign
- -->
- <xsl:template name="ejb-relationship-role">
- <xsl:param name="this-weblogic-relationship-role"/>
- <xsl:param name="opposite-weblogic-relationship-role"/>
-
- <!-- ejb-relationship-role -->
- <xsl:element name="ejb-relationship-role">
-
- <!-- ejb-relationship-role-name -->
- <xsl:element name="ejb-relationship-role-name">
- <xsl:value-of \
select="$this-weblogic-relationship-role/relationship-role-name"/>
- </xsl:element> <!-- ejb-relationship-role-name -->
-
- <!-- key-fields -->
- <xsl:if test="$opposite-weblogic-relationship-role/column-map">
- <xsl:element name="key-fields">
- <xsl:for-each \
select="$opposite-weblogic-relationship-role/column-map">
- <!-- key-field -->
- <xsl:call-template name="key-field">
- <xsl:with-param name="column-map" select="."/>
- </xsl:call-template> <!-- key-field -->
- </xsl:for-each> <!-- column-map -->
- </xsl:element> <!-- key-fields -->
- </xsl:if>
-
- </xsl:element> <!-- ejb-relationship-role -->
- </xsl:template> <!-- ejb-relationship-role -->
-
- <!--
| Template: key-field
| Parameters:
| key-field - the key-field element
-->
<xsl:template name="key-field">
<xsl:param name="column-map"/>
+ <xsl:param name="ejb-name"/>
<!-- key-field -->
<xsl:element name="key-field">
- <!-- field-name -->
+ <!-- field-name corresponding to the key-column -->
<xsl:element name="field-name">
- <xsl:value-of select="$column-map/key-column"/>
- </xsl:element> <!-- field-name -->
+ <xsl:for-each select="//weblogic-rdbms-bean[ejb-name=$ejb-name]">
+ <xsl:for-each \
select="./field-map[dbms-column=$column-map/key-column]"> + \
<xsl:value-of select="./cmp-field"/> + </xsl:for-each>
+ </xsl:for-each>
+ </xsl:element>
<!-- column-name -->
- <xsl:element name="column-name">
- <xsl:value-of select="$column-map/foreign-key-column"/>
- </xsl:element> <!-- coulmn-name -->
+ <xsl:for-each select="$column-map/foreign-key-column">
+ <xsl:element name="column-name">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:for-each>
- </xsl:element> <!-- key-field -->
+ </xsl:element>
</xsl:template> <!-- key-field -->
</xsl:stylesheet>
-------------------------------------------------------
This sf.net email is sponsored by: Influence the future
of Java(TM) technology. Join the Java Community
Process(SM) (JCP(SM)) program now.
http://ads.sourceforge.net/cgi-bin/redirect.pl?sunm0004en
_______________________________________________
jboss-cvs-commits mailing list
jboss-cvs-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-cvs-commits
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic