User: rinkrank
  Date: 02/09/25 03:47:01

  Modified:    src/java/xgg/templates bean.vm xml.vm
  Log:
  Some bugfixes, initial support for attributes
  
  Revision  Changes    Path
  1.2       +3 -0      xgg/src/java/xgg/templates/bean.vm
  
  Index: bean.vm
  ===================================================================
  RCS file: /cvsroot/xdoclet/xgg/src/java/xgg/templates/bean.vm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -w -r1.1 -r1.2
  --- bean.vm   24 Sep 2002 18:31:07 -0000      1.1
  +++ bean.vm   25 Sep 2002 10:47:01 -0000      1.2
  @@ -19,6 +19,9 @@
   #else
       * This method should never return null
   #end
  +#if( ${child.targetElement.pcdata} )
  +    * This accessor represents the ${child.targetElement.name} element. 
  +#end
       */
   #if( ${child.many} )
      public Collection get${child.targetElement.javaName}Collection();
  
  
  
  1.2       +50 -8     xgg/src/java/xgg/templates/xml.vm
  
  Index: xml.vm
  ===================================================================
  RCS file: /cvsroot/xdoclet/xgg/src/java/xgg/templates/xml.vm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -w -r1.1 -r1.2
  --- xml.vm    24 Sep 2002 18:31:07 -0000      1.1
  +++ xml.vm    25 Sep 2002 10:47:01 -0000      1.2
  @@ -1,18 +1,56 @@
  +##
  +## the ${set}, ${if}, ${foreach} and ${end} variables should not be indented,
  +## as they are now, since these indentations will also occur in the final rendered 
file.
  +## it's done here only to make the generated template more readable
  +##
  +## This macro is recursive
  +##
  +## @author Aslak Hellesøy ([EMAIL PROTECTED])
  +##
   #macro( iterateElement $element $indent )
  +####
  +#### Loop over all the element's children
  +####
   #foreach( $child in $element.children )
  +######
  +###### All optional children must appear inside #if statements.
  +###### An element is optional if it has a ?, or if it is declared
  +###### inside a choice (a|b|c).
  +######
  +#if( !${child.targetElement.pcdata} && !${child.many})
  +${indent}${set}( $${child.targetElement.javaVariableName} = 
${${child.parentElement.javaVariableName}.${child.targetElement.javaVariableName}} )
  +#end
   #if( ${child.optional} )
  -## the ${set}, ${if}, ${foreach} and ${end} should not be indented,
  -## since the indentations will be in the final rendered file
  -## it's done here only to make the generated template more readable
  -## ${indent}${set}( $${child.targetElement.javaVariableName} = 
$${child.parentElement.javaVariableName}.${child.targetElement.javaVariableName} )
  +########
  +######## How the #if statement looks depends on whether the target element is PCDATA
  +######## or not. If it is, the parent element bean will have a String getFooPCDATA()
  +######## method. If not, the parent element bean will have a FooBean getFoo() 
method.
  +########
   #if( ${child.targetElement.pcdata} )
  +##########
   ${indent}${if}( 
${${child.parentElement.javaVariableName}.${child.targetElement.javaVariableName}PCDATA}
 )
  -#else
  -${indent}${if}( $${child.targetElement.javaVariableName} )
  +##########
  +#elseif( !${child.many} )
  +##########
  +${indent}${if}( ${${child.targetElement.javaVariableName}} )
  +##########
  +#end
  +########
   #end
  -#elseif( ${child.many} )
  -${indent}${foreach}( $${child.targetElement.javaVariableName} in 
$${child.parentElement.javaVariableName}.${child.targetElement.javaVariableName}Collection
 )
  +######
  +######
  +######
  +#if( ${child.many} )
  +${indent}${foreach}( $${child.targetElement.javaVariableName} in 
${${child.parentElement.javaVariableName}.${child.targetElement.javaVariableName}Collection}
 )
   #end
  +######
  +###### Now, write an <element> for the element the child represents. 
  +###### How this is done depends on whether the element is:
  +###### PCDATA  ->  <element>blah</element>
  +###### EMPTY   ->  <element/>
  +###### implicit element -> don't write anything
  +######
  +######
   #if( ${child.targetElement.pcdata} )
   
${indent}<${child.targetElement.name}>${${child.parentElement.javaVariableName}.${child.targetElement.javaVariableName}PCDATA}</${child.targetElement.name}>
   
########${indent}<${child.targetElement.name}>${${child.targetElement.javaVariableName}}</${child.targetElement.name}>
  @@ -21,6 +59,10 @@
   #elseif( !${child.targetElement.implicit} )
   ${indent}<${child.targetElement.name}>
   #end
  +######
  +######
  +######
  +######
   #if( ${child.targetElement.implicit} )
   #iterateElement( ${child.targetElement} "${indent}" )
   #else
  
  
  


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to