[ http://issues.apache.org/jira/browse/BEANUTILS-185?page=comments#action_12415729 ]
Gabriel Belingueres commented on BEANUTILS-185: ----------------------------------------------- <snip> OK but I don't see anything different here that changes my mind about what I said about the existing createDynaBean() in RowSetDynaClass - your new direct/indirect DynaClass implementations could extend RowSetDynaClass and override that method. </snip> Of course you can extend RowSetDynaClass directly to override the createDynaBean() method. If you decide both to do this and decide to keep the createDynaBean() method, I guess you should add a remark in the javadocs to show that the "best practice" for creating a different kind of DynaBean for the RowSet is by overriding createDynaBean() method. This should be sufficient guide for everyone. <snip> RowSetDynaClass is still the DynaClass (i.e. property meta data) for the individual "row" DynaBeans (in this case BasicDynaBean) and so I would disagree with you - newInstance() is exactly what should be called. Just because it bizarely creates a List of those DynaBeans as well doesn't change that. </snip> If this work as you said, then I guess the class name RowSetDynaClass is very confusing/misleading, because when you call newInstance, it creates an instance of a single row of a RowSet, not the whole RowSet. A better name would be RowDynaBean? In addition, I see a problem here because creating a new instance make sense ONLY when iterating over the java.sql.ResultSet; i.e. only make sense calling it from the inside, never from the outside (the ResultSet could be already closed). Now, the newInstance() is public, and createDynaBean() is protected...this also makes sense to me. Perhaps the best course of action would be to separate the two concepts of RowSet and the Row itself? We know that the DynaBean concept fits very well with the Row concept, but the RowSet I see it more like an utility class to create the list of Rows and then I can discard it whenever I want (usually in my applications I'm interested in the dynabean list, not the RowSetDynaClass per se) <snip> Also I'm happy to add getMap() method to BasicDynaBean which returns a Map decorator - which would provide the "indirect" access method of your requirement. </snip> Don't know if this is a good idea and I suppose we think different here. >From a performance point of view, you probably want to add a boolean >isReadonly flag as a parameter in the BasicDynaBean constructor so that you >can add a private Map instance variable representing the unmodifiable map of >properties (if isReadonly==true, or the DynaBeanMapDecorator if false), so >that whenever any of the dynabean clients call the getMap() method, only the >first time is the unmodifiable map created. (This performance optimization is >probably to make a difference if you think that the dynabean will be >referenced from several JSTL expressions in the same JSP page.) Now if my particular application never have to deal with this new getMap() functionality: Why would it have to pay for this new functionality/overhead on the BasicDynaBean? May be I'm over complicating things...don't know what is the policy here in this cases. Gabriel > [beanutils] Try to align BeanUtils with JSTL standard tags > ---------------------------------------------------------- > > Key: BEANUTILS-185 > URL: http://issues.apache.org/jira/browse/BEANUTILS-185 > Project: Commons BeanUtils > Type: Improvement > Environment: Operating System: other > Platform: Other > Reporter: Gabriel Belingueres > Priority: Minor > Attachments: AbstractRowSetDynaClass.java, BasicDirectAccessDynaBean.java, > BasicDirectAccessDynaBeanTestCase.java, BasicIndirectAccessDynaBean.java, > DirectAccessDynaBean.java, DirectRowSetDynaClass.java, > DynaBeanMapDecorator.java, DynaBeanMapDecoratorTestCase.java, > IndirectAccessDynaBean.java, IndirectRowSetDynaClass.java, beanutil-diff.txt > > Hi, > I've done some modifications to the beanutils package to better support the > use > of DynaBeans with the JSTL tags. Some of the changes are discussed in this > thread of the commons-user mailing list: > http://marc.theaimsgroup.com/?l=jakarta-commons-user&m=114669123403779&w=2 > I attach the diff file that comprises changes to the RowSetDynaClass.java > file > and build.xml file (since I added a TestCase.) Note: Please try to filter > carefully the diffs in the build.xml file since they include some local > settings I have for compilation on my machine. :-( > Together with the diff file, I attach the new java files added to the package. > Regards, > Gabriel Belingueres > [EMAIL PROTECTED] -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]