User: ko5tik Date: 02/10/14 05:55:06 Modified: modules/java/src/xdoclet/modules/java/javabean/resources beaninfo.xdt Log: fix for XDT-58 & XTD-10 - moved property tags to getters, added support for inheritance Revision Changes Path 1.6 +64 -66 xdoclet/modules/java/src/xdoclet/modules/java/javabean/resources/beaninfo.xdt Index: beaninfo.xdt =================================================================== RCS file: /cvsroot/xdoclet/xdoclet/modules/java/src/xdoclet/modules/java/javabean/resources/beaninfo.xdt,v retrieving revision 1.5 retrieving revision 1.6 diff -u -w -r1.5 -r1.6 --- beaninfo.xdt 6 Oct 2002 17:43:18 -0000 1.5 +++ beaninfo.xdt 14 Oct 2002 12:55:06 -0000 1.6 @@ -38,10 +38,35 @@ /** Constructor for the <XDtClass:classOf><XDtJavaBean:beanClass/></XDtClass:classOf>BeanInfo object */ - public <XDtClass:classOf><XDtJavaBean:beanClass/></XDtClass:classOf>BeanInfo() - { - try + public <XDtClass:classOf><XDtJavaBean:beanClass/></XDtClass:classOf>BeanInfo() throws java.beans.IntrospectionException { + // setup bean descriptor in constructor. + <XDtClass:ifHasClassTag tagName="javabean.class" paramName="name" superclasses="false">bd.setName("<XDtClass:classTagValue tagName="javabean.class" paramName="name"/>");</XDtClass:ifHasClassTag> + + <XDtConfig:ifConfigParamEquals paramName="i18n" value="true"> + <XDtClass:ifHasClassTag tagName="javabean.class" paramName="displayName" superclasses="false">bd.setDisplayName(res.getString("bean.displayName"));</XDtClass:ifHasClassTag> + <XDtClass:ifHasClassTag tagName="javabean.class" paramName="shortDescription" superclasses="false">bd.setShortDescription(res.getString("bean.shortDescription"));</XDtClass:ifHasClassTag> + </XDtConfig:ifConfigParamEquals> + + <XDtConfig:ifConfigParamNotEquals paramName="i18n" value="true"> + <XDtClass:ifHasClassTag tagName="javabean.class" paramName="displayName" superclasses="false">bd.setDisplayName("<XDtClass:classTagValue tagName="javabean.class" paramName="displayName"/>");</XDtClass:ifHasClassTag> + <XDtClass:ifHasClassTag tagName="javabean.class" paramName="shortDescription" superclasses="false">bd.setShortDescription("<XDtClass:classTagValue tagName="javabean.class" paramName="shortDescription"/>");</XDtClass:ifHasClassTag> + </XDtConfig:ifConfigParamNotEquals> + + <XDtClass:ifHasClassTag tagName="javabean.class" paramName="expert" superclasses="false">bd.setExpert(<XDtClass:classTagValue tagName="javabean.class" paramName="expert" values="true,false"/>);</XDtClass:ifHasClassTag> + <XDtClass:ifHasClassTag tagName="javabean.class" paramName="hidden" superclasses="false">bd.setHidden(<XDtClass:classTagValue tagName="javabean.class" paramName="hidden" values="true,false"/>);</XDtClass:ifHasClassTag> + <XDtClass:ifHasClassTag tagName="javabean.class" paramName="preferred" superclasses="false">bd.setPreferred(<XDtClass:classTagValue tagName="javabean.class" paramName="preferred" values="true,false"/>);</XDtClass:ifHasClassTag> + + <XDtClass:forAllClassTags tagName="javabean.attribute" superclasses="false"> + <XDtClass:ifClassTagValueEquals tagName="javabean.attribute" paramName="rtexpr" superclasses="false" value="true"> + bd.setValue("<XDtClass:classTagValue tagName="javabean.attribute" paramName="name"/>",<XDtClass:classTagValue tagName="javabean.attribute" paramName="value"/>); + </XDtClass:ifClassTagValueEquals> + <XDtClass:ifClassTagValueNotEquals tagName="javabean.attribute" paramName="rtexpr" superclasses="false" value="true"> + bd.setValue("<XDtClass:classTagValue tagName="javabean.attribute" paramName="name"/>","<XDtClass:classTagValue tagName="javabean.attribute" paramName="value"/>"); + </XDtClass:ifClassTagValueNotEquals> + </XDtClass:forAllClassTags> + + BeanInfo info = Introspector.getBeanInfo(getBeanDescriptor().getBeanClass().getSuperclass()); String order = info.getBeanDescriptor().getValue("propertyorder") == null ? "" : (String) info.getBeanDescriptor().getValue("propertyorder"); PropertyDescriptor[] pd = getPropertyDescriptors(); @@ -54,11 +79,6 @@ } getBeanDescriptor().setValue("propertyorder", order); } - catch (Exception e) - { - // Ignore it - } - } /** @@ -95,30 +115,6 @@ */ public BeanDescriptor getBeanDescriptor() { - <XDtClass:ifHasClassTag tagName="javabean.class" paramName="name" superclasses="false">bd.setName("<XDtClass:classTagValue tagName="javabean.class" paramName="name"/>");</XDtClass:ifHasClassTag> - - <XDtConfig:ifConfigParamEquals paramName="i18n" value="true"> - <XDtClass:ifHasClassTag tagName="javabean.class" paramName="displayName" superclasses="false">bd.setDisplayName(res.getString("bean.displayName"));</XDtClass:ifHasClassTag> - <XDtClass:ifHasClassTag tagName="javabean.class" paramName="shortDescription" superclasses="false">bd.setShortDescription(res.getString("bean.shortDescription"));</XDtClass:ifHasClassTag> - </XDtConfig:ifConfigParamEquals> - - <XDtConfig:ifConfigParamNotEquals paramName="i18n" value="true"> - <XDtClass:ifHasClassTag tagName="javabean.class" paramName="displayName" superclasses="false">bd.setDisplayName("<XDtClass:classTagValue tagName="javabean.class" paramName="displayName"/>");</XDtClass:ifHasClassTag> - <XDtClass:ifHasClassTag tagName="javabean.class" paramName="shortDescription" superclasses="false">bd.setShortDescription("<XDtClass:classTagValue tagName="javabean.class" paramName="shortDescription"/>");</XDtClass:ifHasClassTag> - </XDtConfig:ifConfigParamNotEquals> - - <XDtClass:ifHasClassTag tagName="javabean.class" paramName="expert" superclasses="false">bd.setExpert(<XDtClass:classTagValue tagName="javabean.class" paramName="expert" values="true,false"/>);</XDtClass:ifHasClassTag> - <XDtClass:ifHasClassTag tagName="javabean.class" paramName="hidden" superclasses="false">bd.setHidden(<XDtClass:classTagValue tagName="javabean.class" paramName="hidden" values="true,false"/>);</XDtClass:ifHasClassTag> - <XDtClass:ifHasClassTag tagName="javabean.class" paramName="preferred" superclasses="false">bd.setPreferred(<XDtClass:classTagValue tagName="javabean.class" paramName="preferred" values="true,false"/>);</XDtClass:ifHasClassTag> - - <XDtClass:forAllClassTags tagName="javabean.attribute" superclasses="false"> - <XDtClass:ifClassTagValueEquals tagName="javabean.attribute" paramName="rtexpr" superclasses="false" value="true"> - bd.setValue("<XDtClass:classTagValue tagName="javabean.attribute" paramName="name"/>",<XDtClass:classTagValue tagName="javabean.attribute" paramName="value"/>); - </XDtClass:ifClassTagValueEquals> - <XDtClass:ifClassTagValueNotEquals tagName="javabean.attribute" paramName="rtexpr" superclasses="false" value="true"> - bd.setValue("<XDtClass:classTagValue tagName="javabean.attribute" paramName="name"/>","<XDtClass:classTagValue tagName="javabean.attribute" paramName="value"/>"); - </XDtClass:ifClassTagValueNotEquals> - </XDtClass:forAllClassTags> return bd; } @@ -188,50 +184,52 @@ Vector descriptors = new Vector(); PropertyDescriptor descriptor = null; - <XDtClass:forAllClassTags tagName="javabean.property" superclasses="false"> - + <XDtMethod:forAllMethods superclasses="true"> + <XDtMethod:ifHasMethodTag tagName="javabean.property"> try { - <XDtClass:ifDoesntHaveClassTag tagName="javabean.property" paramName="readOnly" superclasses="false"> - descriptor = new PropertyDescriptor("<XDtClass:classTagValue tagName="javabean.property" paramName="name"/>", <XDtJavaBean:beanClass/>.class); - </XDtClass:ifDoesntHaveClassTag> - - <XDtClass:ifHasClassTag tagName="javabean.property" paramName="readOnly" superclasses="false"> - descriptor = new PropertyDescriptor("<XDtClass:classTagValue tagName="javabean.property" paramName="name"/>", <XDtJavaBean:beanClass/>.class, "<XDtJavaBean:getterPrefix tagName="javabean.property" paramName="class"/><XDtJavaBean:capitalizeClassTag tagName="javabean.property" paramName="name"/>", null); - </XDtClass:ifHasClassTag> + <XDtMethod:ifDoesntHaveMethodTag tagName="javabean.property" paramName="readOnly"> + descriptor = new PropertyDescriptor("<XDtMethod:propertyName/>", <XDtJavaBean:beanClass/>.class); + </XDtMethod:ifDoesntHaveMethodTag> + + <XDtMethod:ifHasMethodTag tagName="javabean.property" paramName="readOnly"> + descriptor = new PropertyDescriptor("<XDtMethod:propertyName/>", <XDtJavaBean:beanClass/>.class, "<XDtMethod:getterMethod/>", null); + </XDtMethod:ifHasMethodTag> } catch (IntrospectionException e) { - descriptor = new PropertyDescriptor("<XDtClass:classTagValue tagName="javabean.property" paramName="name"/>", <XDtJavaBean:beanClass/>.class, "<XDtJavaBean:getterPrefix tagName="javabean.property" paramName="class"/><XDtJavaBean:capitalizeClassTag tagName="javabean.property" paramName="name"/>", null); + descriptor = new PropertyDescriptor("<XDtMethod:propertyName/>", <XDtJavaBean:beanClass/>.class, "<XDtMethod:getterMethod/>", null); } <XDtConfig:ifConfigParamEquals paramName="i18n" value="true"> - <XDtClass:ifHasClassTag tagName="javabean.property" paramName="displayName" superclasses="false">descriptor.setDisplayName(res.getString("property.<XDtClass:classTagValue tagName="javabean.property" paramName="name"/>.displayName"));</XDtClass:ifHasClassTag> - <XDtClass:ifHasClassTag tagName="javabean.property" paramName="shortDescription" superclasses="false">descriptor.setShortDescription(res.getString("property.<XDtClass:classTagValue tagName="javabean.property" paramName="name"/>.shortDescription"));</XDtClass:ifHasClassTag> + <XDtMethod:ifHasMethodTag tagName="javabean.property" paramName="displayName" superclasses="false">descriptor.setDisplayName(res.getString("property.<XDtMethod:propertyName/>.displayName"));</XDtMethod:ifHasMethodTag> + <XDtMethod:ifHasMethodTag tagName="javabean.property" paramName="shortDescription" superclasses="false">descriptor.setShortDescription(res.getString("property.<XDtMethod:propertyName/>.shortDescription"));</XDtMethod:ifHasMethodTag> </XDtConfig:ifConfigParamEquals> <XDtConfig:ifConfigParamNotEquals paramName="i18n" value="true"> - <XDtClass:ifHasClassTag tagName="javabean.property" paramName="displayName" superclasses="false">descriptor.setDisplayName("<XDtClass:classTagValue tagName="javabean.property" paramName="displayName"/>");</XDtClass:ifHasClassTag> - <XDtClass:ifHasClassTag tagName="javabean.property" paramName="shortDescription" superclasses="false">descriptor.setShortDescription("<XDtClass:classTagValue tagName="javabean.property" paramName="shortDescription"/>");</XDtClass:ifHasClassTag> + <XDtMethod:ifHasMethodTag tagName="javabean.property" paramName="displayName" superclasses="false">descriptor.setDisplayName("<XDtMethod:methodTagValue tagName="javabean.property" paramName="displayName"/>");</XDtMethod:ifHasMethodTag> + <XDtMethod:ifHasMethodTag tagName="javabean.property" paramName="shortDescription" superclasses="false">descriptor.setShortDescription("<XDtMethod:methodTagValue tagName="javabean.property" paramName="shortDescription"/>");</XDtMethod:ifHasMethodTag> </XDtConfig:ifConfigParamNotEquals> - <XDtClass:ifHasClassTag tagName="javabean.property" paramName="expert" superclasses="false">descriptor.setExpert(<XDtClass:classTagValue tagName="javabean.property" paramName="expert" values="true,false"/>);</XDtClass:ifHasClassTag> - <XDtClass:ifHasClassTag tagName="javabean.property" paramName="hidden" superclasses="false">descriptor.setHidden(<XDtClass:classTagValue tagName="javabean.property" paramName="hidden" values="true,false"/>);</XDtClass:ifHasClassTag> - <XDtClass:ifHasClassTag tagName="javabean.property" paramName="preferred" superclasses="false">descriptor.setPreferred(<XDtClass:classTagValue tagName="javabean.property" paramName="preferred" values="true,false"/>);</XDtClass:ifHasClassTag> - - <XDtClass:ifHasClassTag tagName="javabean.property" paramName="bound" superclasses="false">descriptor.setBound(<XDtClass:classTagValue tagName="javabean.property" paramName="bound" values="true,false"/>);</XDtClass:ifHasClassTag> - <XDtClass:ifHasClassTag tagName="javabean.property" paramName="constrained" superclasses="false">descriptor.setConstrained(<XDtClass:classTagValue tagName="javabean.property" paramName="constrained" values="true,false"/>);</XDtClass:ifHasClassTag> - <XDtClass:ifHasClassTag tagName="javabean.property" paramName="propertyEditor" superclasses="false">descriptor.setPropertyEditorClass(Class.forName("<XDtClass:classTagValue tagName="javabean.property" paramName="propertyEditor"/>"));</XDtClass:ifHasClassTag> + <XDtMethod:ifHasMethodTag tagName="javabean.property" paramName="expert" superclasses="false">descriptor.setExpert(<XDtMethod:methodTagValue tagName="javabean.property" paramName="expert" values="true,false"/>);</XDtMethod:ifHasMethodTag> + <XDtMethod:ifHasMethodTag tagName="javabean.property" paramName="hidden" superclasses="false">descriptor.setHidden(<XDtMethod:methodTagValue tagName="javabean.property" paramName="hidden" values="true,false"/>);</XDtMethod:ifHasMethodTag> + <XDtMethod:ifHasMethodTag tagName="javabean.property" paramName="preferred" superclasses="false">descriptor.setPreferred(XDtMethod:methodTagValue tagName="javabean.property" paramName="preferred" values="true,false"/>);</XDtMethod:ifHasMethodTag> + + <XDtMethod:ifHasMethodTag tagName="javabean.property" paramName="bound" superclasses="false">descriptor.setBound(<XDtMethod:methodTagValue tagName="javabean.property" paramName="bound" values="true,false"/>);</XDtMethod:ifHasMethodTag> + <XDtMethod:ifHasMethodTag tagName="javabean.property" paramName="constrained" superclasses="false">descriptor.setConstrained(<XDtMethod:methodTagValue tagName="javabean.property" paramName="constrained" values="true,false"/>);</XDtMethod:ifHasMethodTag> + <XDtMethod:ifHasMethodTag tagName="javabean.property" paramName="propertyEditor" superclasses="false">descriptor.setPropertyEditorClass(Class.forName("<XDtMethod:methodTagValue tagName="javabean.property" paramName="propertyEditor"/>"));</XDtMethod:ifHasMethodTag> descriptors.add(descriptor); - - </XDtClass:forAllClassTags> + </XDtMethod:ifHasMethodTag> + </XDtMethod:forAllMethods> return (PropertyDescriptor[]) descriptors.toArray(new PropertyDescriptor[descriptors.size()]); } catch (Exception e) { // do not ignore, bomb politely so use has chance to discover what went wrong... + // I know that this is suboptimal solution, but swallowing silently is + // even worse... Propose better solution! e.printStackTrace(); } return null;
------------------------------------------------------- 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