[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