Update of 
/cvsroot/xdoclet-plugins/xdoclet-plugins/plugin-hibernate/src/main/java/org/xdoclet/plugin/hibernate
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24356/src/main/java/org/xdoclet/plugin/hibernate

Modified Files:
        CompositeId.jelly CompositeMapKey.jelly 
        HibernateMappingPlugin.java Id.jelly 
Added Files:
        KeyManyToOne.jelly KeyProperty.jelly 
Log Message:
(XDP-55) Added support of @hibernate.composite-map-key

--- NEW FILE: KeyManyToOne.jelly ---
<j:jelly xmlns:j="jelly:core" xmlns:g="generama:core">
    <j:set var="keyManyToOneTag" 
value="${keyProperty.entity.getTagByName('hibernate.key-many-to-one')}"/>

    <key-many-to-one name="${keyProperty.name}"
                     access="${keyManyToOneTag.access}"
                     type="${keyManyToOneTag.type}"
                     column="${keyManyToOneTag.column}"
                     length="${keyManyToOneTag.length}"
                     class="${keyManyToOneTag.class_}">
        <j:forEach var="metaTag" 
items="${keyProperty.entity.getTagsByName('hibernate.meta')}">
            <j:import uri="org/xdoclet/plugin/hibernate/Meta.jelly" 
inherit="true"/>
        </j:forEach>
        <j:forEach var="columnTag" 
items="${keyProperty.entity.getTagsByName('hibernate.column')}">
            <j:import uri="org/xdoclet/plugin/hibernate/Column.jelly" 
inherit="true"/>
        </j:forEach>
    </key-many-to-one>
</j:jelly>
Index: HibernateMappingPlugin.java
===================================================================
RCS file: 
/cvsroot/xdoclet-plugins/xdoclet-plugins/plugin-hibernate/src/main/java/org/xdoclet/plugin/hibernate/HibernateMappingPlugin.java,v
retrieving revision 1.37
retrieving revision 1.38
diff -C2 -d -r1.37 -r1.38
*** HibernateMappingPlugin.java 13 May 2005 07:50:37 -0000      1.37
--- HibernateMappingPlugin.java 16 May 2005 17:56:32 -0000      1.38
***************
*** 65,68 ****
--- 65,69 ----
          PROPERTY_TAGS.add("hibernate.primitive-array");
          PROPERTY_TAGS.add("hibernate.key-property");
+         PROPERTY_TAGS.add("hibernate.key-many-to-one");
          PROPERTY_TAGS.add("hibernate.parent");
          HIERARCHY_STOP_TAGS.add("hibernate.class");

Index: CompositeId.jelly
===================================================================
RCS file: 
/cvsroot/xdoclet-plugins/xdoclet-plugins/plugin-hibernate/src/main/java/org/xdoclet/plugin/hibernate/CompositeId.jelly,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** CompositeId.jelly   13 May 2005 07:50:37 -0000      1.7
--- CompositeId.jelly   16 May 2005 17:56:32 -0000      1.8
***************
*** 1,3 ****
! <j:jelly xmlns:j="jelly:core">
      <j:set var="compositeIdTag" 
value="${property.entity.getTagByName('hibernate.composite-id')}"/>
      <composite-id
--- 1,3 ----
! <j:jelly xmlns:j="jelly:core" xmlns:g="generama:core">
      <j:set var="compositeIdTag" 
value="${property.entity.getTagByName('hibernate.composite-id')}"/>
      <composite-id
***************
*** 15,52 ****
          <j:forEach begin="1" end="${size(props)}" indexVar="propsI">
              <j:forEach var="keyProperty" items="${props}">
!                 <j:set var="keyPropertyTag" 
value="${keyProperty.entity.getTagByName('hibernate.key-property')}"/>
!                 <j:set var="keyManyToOne" 
value="${keyProperty.entity.getTagByName('hibernate.key-many-to-one')}"/>
! 
!                 <j:if test="${size(keyPropertyTag) > 0}">
!                     <j:if test="${size(keyManyToOne) > 0}">
!                         <j:set var="message" value="key-property and 
key-many-to-one in class ${class.name} for property ${property.name}"/>
!                 ${plugin.assertTrue(message,false)}
!                     </j:if>
!                 </j:if>
  
!                 <j:if test="${keyPropertyTag != null}">
!                     <j:if test="${keyPropertyTag.position == propsI}">
!                         <key-property name="${keyProperty.name}" 
access="${keyProperty.access}" type="${keyPropertyTag.type}" 
column="${keyPropertyTag.column}" length="${keyPropertyTag.length}">
!                             <j:forEach var="metaTag" 
items="${keyProperty.entity.getTagsByName('hibernate.meta')}">
!                                 <j:import 
uri="org/xdoclet/plugin/hibernate/Meta.jelly" inherit="true"/>
!                             </j:forEach>
!                             <j:forEach var="columnTag" 
items="${keyProperty.entity.getTagsByName('hibernate.column')}">
!                                 <j:import 
uri="org/xdoclet/plugin/hibernate/Column.jelly" inherit="true"/>
!                             </j:forEach>
!                         </key-property>
!                     </j:if>
                  </j:if>
  
!                 <j:if test="${keyManyToOne != null}">
!                     <j:if test="${keyManyToOne.position == propsI}">
!                         <key-many-to-one name="${keyManyToOne.name}" 
access="${keyManyToOne.access}" type="${keyManyToOne.type}" 
column="${keyManyToOne.column}" length="${keyManyToOne.length}" 
class="keyManyToOne.class">
!                             <j:forEach var="metaTag" 
items="${keyManyToOne.entity.getTagsByName('hibernate.meta')}">
!                                 <j:import 
uri="org/xdoclet/plugin/hibernate/Meta.jelly" inherit="true"/>
!                             </j:forEach>
!                             <j:forEach var="columnTag" 
items="${keyManyToOne.entity.getTagsByName('hibernate.column')}">
!                                 <j:import 
uri="org/xdoclet/plugin/hibernate/Column.jelly" inherit="true"/>
!                             </j:forEach>
!                         </key-many-to-one>
!                     </j:if>
                  </j:if>
              </j:forEach>
--- 15,26 ----
          <j:forEach begin="1" end="${size(props)}" indexVar="propsI">
              <j:forEach var="keyProperty" items="${props}">
!                 <j:set var="elementTags" 
value="${plugin.getTags(keyProperty.entity,'hibernate.key-property|hibernate.key-many-to-one')}"/>
  
!                 <j:if test="${size(elementTags) > 1}">
!                     <g:fail>key-property and key-many-to-one in class 
${class.name} for property ${property.name}</g:fail>
                  </j:if>
  
!                 <j:if test="${size(elementTags) == 1 and 
elementTags[0].position == propsI}">
!                     <j:import 
uri="${plugin.dispatchTag(elementTags[0].name)}" inherit="true"/>
                  </j:if>
              </j:forEach>

--- NEW FILE: KeyProperty.jelly ---
<j:jelly xmlns:j="jelly:core" xmlns:g="generama:core">
    <j:set var="keyPropertyTag" 
value="${keyProperty.entity.getTagByName('hibernate.key-property')}"/>

    <key-property name="${keyProperty.name}"
                  access="${keyProperty.access}"
                  type="${keyPropertyTag.type}"
                  column="${keyPropertyTag.column}"
                  length="${keyPropertyTag.length}">
        <j:forEach var="metaTag" 
items="${keyProperty.entity.getTagsByName('hibernate.meta')}">
            <j:import uri="org/xdoclet/plugin/hibernate/Meta.jelly" 
inherit="true"/>
        </j:forEach>
        <j:forEach var="columnTag" 
items="${keyProperty.entity.getTagsByName('hibernate.column')}">
            <j:import uri="org/xdoclet/plugin/hibernate/Column.jelly" 
inherit="true"/>
        </j:forEach>
    </key-property>
</j:jelly>
Index: CompositeMapKey.jelly
===================================================================
RCS file: 
/cvsroot/xdoclet-plugins/xdoclet-plugins/plugin-hibernate/src/main/java/org/xdoclet/plugin/hibernate/CompositeMapKey.jelly,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** CompositeMapKey.jelly       26 Apr 2005 07:00:07 -0000      1.1
--- CompositeMapKey.jelly       16 May 2005 17:56:32 -0000      1.2
***************
*** 1,6 ****
! <j:jelly xmlns:j="jelly:core">
      <j:set var="compositeMapKeyTag" 
value="${property.entity.getTagByName('hibernate.composite-map-key')}"/>
      <j:if test="${compositeMapKeyTag != null}">
!     ${plugin.assertTrue('@hibernate.composite-map-key is not yet 
implemented',false)}
      </j:if>
  </j:jelly>
\ No newline at end of file
--- 1,23 ----
! <j:jelly xmlns:j="jelly:core" xmlns:g="generama:core">
      <j:set var="compositeMapKeyTag" 
value="${property.entity.getTagByName('hibernate.composite-map-key')}"/>
      <j:if test="${compositeMapKeyTag != null}">
!         <j:set var="compositeMapKeyClass" 
value="${plugin.getMetadata(compositeMapKeyTag.class_)}"/>
! 
!         <composite-map-key class="${compositeMapKeyTag.class_}">
!             <j:forEach var="keyProperty" 
items="${plugin.getClassProperties(compositeMapKeyClass)}">
!                 <j:set var="elementTags" 
value="${plugin.getTags(keyProperty.entity,'hibernate.key-property|hibernate.key-many-to-one')}"/>
! 
!                 <j:if test="${size(elementTags) > 1}">
!                     <g:fail>more than one element tag deined in class 
${class.name} for ${property.name}</g:fail>
!                 </j:if>
!                 <j:if test="${size(elementTags) == 0}">
!                     <g:fail>no element tag deined in class ${class.name} for 
${property.name}</g:fail>
!                 </j:if>
! 
!                 <j:if test="${size(elementTags) == 1}">
!                     <j:import 
uri="${plugin.dispatchTag(elementTags[0].name)}" inherit="true"/>
!                 </j:if>
!             </j:forEach>
!         </composite-map-key>
      </j:if>
  </j:jelly>
\ No newline at end of file

Index: Id.jelly
===================================================================
RCS file: 
/cvsroot/xdoclet-plugins/xdoclet-plugins/plugin-hibernate/src/main/java/org/xdoclet/plugin/hibernate/Id.jelly,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Id.jelly    13 May 2005 07:50:37 -0000      1.2
--- Id.jelly    16 May 2005 17:56:33 -0000      1.3
***************
*** 1,25 ****
  <j:jelly xmlns:j="jelly:core">
      <!-- primitive id -->
!     <j:set var="primitiveId" 
value="${property.entity.getTagByName('hibernate.id')}"/>
      <id name="${property.name}"
!         node="${primitiveId.node}"
          access="${property.access}"
!         column="${primitiveId.column}"
!         type="${primitiveId.type}"
!         length="${primitiveId.length}"
!         unsaved-value="${primitiveId.unsavedValue}">
  
-         <!-- process meta -->
          <j:forEach var="metaTag" 
items="${property.entity.getTagsByName('hibernate.meta')}">
              <j:import uri="org/xdoclet/plugin/hibernate/Meta.jelly" 
inherit="true"/>
          </j:forEach>
  
-         <!-- process column -->
          <j:forEach var="columnTag" 
items="${property.entity.getTagsByName('hibernate.column')}">
              <j:import uri="org/xdoclet/plugin/hibernate/Column.jelly" 
inherit="true"/>
          </j:forEach>
  
!         <!-- process generator -->
!         <generator class="${primitiveId.generatorClass}">
              <j:forEach var="generatorParamTag" 
items="${property.entity.getTagsByName('hibernate.generator-param')}">
                  <j:set var="paramTag" value="${generatorParamTag}"/>
--- 1,22 ----
  <j:jelly xmlns:j="jelly:core">
      <!-- primitive id -->
!     <j:set var="idTag" 
value="${property.entity.getTagByName('hibernate.id')}"/>
      <id name="${property.name}"
!         node="${idTag.node}"
          access="${property.access}"
!         column="${idTag.column}"
!         type="${idTag.type}"
!         length="${idTag.length}"
!         unsaved-value="${idTag.unsavedValue}">
  
          <j:forEach var="metaTag" 
items="${property.entity.getTagsByName('hibernate.meta')}">
              <j:import uri="org/xdoclet/plugin/hibernate/Meta.jelly" 
inherit="true"/>
          </j:forEach>
  
          <j:forEach var="columnTag" 
items="${property.entity.getTagsByName('hibernate.column')}">
              <j:import uri="org/xdoclet/plugin/hibernate/Column.jelly" 
inherit="true"/>
          </j:forEach>
  
!         <generator class="${idTag.generatorClass}">
              <j:forEach var="generatorParamTag" 
items="${property.entity.getTagsByName('hibernate.generator-param')}">
                  <j:set var="paramTag" value="${generatorParamTag}"/>



-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click
_______________________________________________
xdoclet-plugins-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xdoclet-plugins-commits

Reply via email to