Supporting indexed (mapped) properties of Map objects
-----------------------------------------------------

                 Key: BEANUTILS-376
                 URL: https://issues.apache.org/jira/browse/BEANUTILS-376
             Project: Commons BeanUtils
          Issue Type: Improvement
          Components: Bean / Property Utils
         Environment: JDK1.5_22, WinXP
            Reporter: Zdeněk Obst
            Priority: Minor


So far, BeanUtils does not support indexed or mapped properties of Map object 
(PropertyUtilsBean.getPropertyOfMapBean(Map bean, String propertyName) )
and throw IllegalArgumentException.

For instance if you have Map<String, String[]> and you want to get property by 
calling propName[0] (or propName(0)), method isIndexed (isMapped) of 
DefaultResolver returns true which raises previously mentioned exception. From 
my point of view it seems that method gets data which needs and is possible to 
parse propertyName to get desired result.

E.g. something similar to:
if  (resolver.isIndexed(propertyName)) {
   String name = resolver.getProperty(propertyName);
   int idx = Integer.valueOf(resolver.getIndex(propertyName)); // handle 
NumberFormat exception by your way
   return bean.get(name)[idx]; // handle ArrayIndexOutOfBounds exception by 
your way
}

I was a bit surprised that I didn't find this issue in existing ones. I'm sorry 
if there is any which I omitted. 
Is it possible that this funcionality will be provided in any future release? 
Thank you

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to