[ 
http://opensource.atlassian.com/projects/xdoclet/browse/XDT-1652?page=all ]

Jean-Daniel Fekete updated XDT-1652:
------------------------------------

    Attachment: xdoclet-1.2.3-javabean.patch

> supporting javabean.attribute outside class-level tags and enums in property 
> tags
> ---------------------------------------------------------------------------------
>
>          Key: XDT-1652
>          URL: http://opensource.atlassian.com/projects/xdoclet/browse/XDT-1652
>      Project: XDoclet
>         Type: Improvement

>   Components: Java Module
>     Versions: 1.2.3
>     Reporter: Jean-Daniel Fekete
>     Assignee: xdoclet-devel (Use for new issues)
>  Attachments: xdoclet-1.2.3-javabean.patch
>
> Original Estimate: 30 minutes
>         Remaining: 30 minutes
>
> have modified the java module to support attribute setting in method tags and 
> started support for enum values in property tags.
> Attributes can be set to any level of annotation (class, method, property) so 
> I didn't see any reason to limit it to class annotations.
> Enum can be documented using the "enumerationValues" attribute in javabean 
> properties. This is not documented by Sun but used in Bean packages such as 
> Bean Builder.
> I tried a syntax that I submit in this patch but I don't like it particularly 
> so feel free to change for a better one if you can keep the functionality.
> I have added an example in the test/javabean/SimpleBean.java
> Since I am not familiar with XDoclet development, I send the modified files 
> in this mail, hoping someone from the development team will take care of it.
> Don't hesitate to ask questions if you have any.
> diff -w -r -u ../xdoclet-1.2.3.orig/modules/java/src/META-INF/xtags.xml 
> xdoclet-1.2.3/modules/java/src/META-INF/xtags.xml
> --- ../xdoclet-1.2.3.orig/modules/java/src/META-INF/xtags.xml 2004-08-06 
> 21:01:00.000000000 +0200
> +++ xdoclet-1.2.3/modules/java/src/META-INF/xtags.xml 2006-08-09 
> 09:21:42.484375000 +0200
> @@ -126,6 +126,7 @@
>        </tag>
>        <tag>
>          <level>class</level>
> +        <level>method</level>
>          <name>javabean.attribute</name>
>          <usage-description>Defines the attributes of the JavaBean 
> (propertyorder, etc).</usage-description>
>          <unique>false</unique>
> @@ -151,6 +152,7 @@
>                <options>
>                  <option>true</option>
>                  <option>false</option>
> +                <option>array</option>
>                </options>
>              </option-set>
>            </option-sets>
> Only in xdoclet-1.2.3/modules/java/src/META-INF: xtags.xml~
> diff -w -r -u 
> ../xdoclet-1.2.3.orig/modules/java/src/xdoclet/modules/java/javabean/resources/beaninfo.xdt
>  
> xdoclet-1.2.3/modules/java/src/xdoclet/modules/java/javabean/resources/beaninfo.xdt
> --- 
> ../xdoclet-1.2.3.orig/modules/java/src/xdoclet/modules/java/javabean/resources/beaninfo.xdt
>        2004-08-06 08:42:00.000000000 +0200
> +++ 
> xdoclet-1.2.3/modules/java/src/xdoclet/modules/java/javabean/resources/beaninfo.xdt
>        2006-08-09 08:55:54.453125000 +0200
> @@ -192,7 +192,6 @@
>        return null;
>     }
>  
> -
>     /**
>      * Gets the Property Descriptors
>      *
> @@ -249,6 +248,20 @@
>           <XDtMethod:ifHasMethodTag tagName="javabean.property" 
> paramName="propertyEditor" superclasses="false">
>           
> descriptor.setPropertyEditorClass(Class.forName("<XDtMethod:methodTagValue 
> tagName="javabean.property" paramName="propertyEditor"/>"));
>           </XDtMethod:ifHasMethodTag>
> +         <XDtMethod:forAllMethodTags tagName="javabean.attribute">
> +              <XDtMethod:ifMethodTagValueEquals tagName="javabean.attribute" 
> paramName="rtexpr" superclasses="false" value="true">
> +         descriptor.setValue("<XDtMethod:methodTagValue 
> tagName="javabean.attribute" paramName="name"/>",<XDtMethod:methodTagValue 
> tagName="javabean.attribute" paramName="value"/>);
> +              </XDtMethod:ifMethodTagValueEquals>
> +         <XDtMethod:ifMethodTagValueEquals tagName="javabean.attribute" 
> paramName="rtexpr" superclasses="false" value="array">
> +         {
> +         Object[] obj = { <XDtMethod:methodTagValue 
> tagName="javabean.attribute" paramName="value"/> };
> +         descriptor.setValue("<XDtMethod:methodTagValue 
> tagName="javabean.attribute" paramName="name"/>",obj);
> +         }
> +         </XDtMethod:ifMethodTagValueEquals>
> +              <XDtMethod:ifMethodTagValueEquals tagName="javabean.attribute" 
> paramName="rtexpr" superclasses="false" value="false">
> +         descriptor.setValue("<XDtMethod:methodTagValue 
> tagName="javabean.attribute" paramName="name"/>","<XDtMethod:methodTagValue 
> tagName="javabean.attribute" paramName="value"/>");
> +              </XDtMethod:ifMethodTagValueEquals>
> +              </XDtMethod:forAllMethodTags>
>           descriptors.add(descriptor);
>        }
>        catch (Exception ex)
> Only in 
> xdoclet-1.2.3/modules/java/src/xdoclet/modules/java/javabean/resources: 
> beaninfo.xdt~
> diff -w -r -u 
> ../xdoclet-1.2.3.orig/samples/src/java/test/javabean/SimpleBean.java 
> xdoclet-1.2.3/samples/src/java/test/javabean/SimpleBean.java
> --- ../xdoclet-1.2.3.orig/samples/src/java/test/javabean/SimpleBean.java      
> 2002-10-14 13:55:00.000000000 +0200
> +++ xdoclet-1.2.3/samples/src/java/test/javabean/SimpleBean.java      
> 2006-08-09 09:38:08.140625000 +0200
> @@ -29,6 +29,14 @@
>      protected String name = "";
>      /** A Class field. */
>      protected Class parent = null;
> +    /** An enum value. */
> +    protected int color = WHITE;
> +    /** The WHITE value. */
> +    public static final int WHITE = 0;
> +    /** The GRAY value. */
> +    public static final int GRAY = 1;
> +    /** The BLACK value. */
> +    public static final int BLACK = 2;
>  
>      /** Constructs a new SimpleBean. */
>      public SimpleBean() {
> @@ -104,4 +112,24 @@
>       public Class getParent() {
>               return parent;
>       }
> +
> +     /**
> +      * @javabean.property
> +      *     displayName="Color"
> +      *     shortDescription="Color assigned to this object"
> +      * 
> +      * @javabean.attribute
> +      *     name="enumerationValues"
> +      *     value=" \"WHITE\", 0, null,
> +      *             \"GRAY\",  1, null,
> +      *             \"BLACK\", 2, null "
> +      *    rtexpr="array"
> +      */
> +     public void setColor(int color) {
> +             this.color = color;
> +     }
> +
> +     public int getColor() {
> +             return color;
> +     }
>  }
> \ No newline at end of file

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://opensource.atlassian.com/projects/xdoclet/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
xdoclet-devel mailing list
xdoclet-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to