commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Zdeněk Obst (JIRA) <j...@apache.org>
Subject [jira] Updated: (BEANUTILS-376) Supporting indexed (mapped) properties of Map objects
Date Wed, 02 Jun 2010 14:35:37 GMT

     [ https://issues.apache.org/jira/browse/BEANUTILS-376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Zdeněk Obst updated BEANUTILS-376:
----------------------------------

    Description: 
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:
{code}
if (resolver.isIndexed(propertyName)) {
   String name = resolver.getProperty(propertyName);
   int idx = Integer.valueOf(resolver.getIndex(propertyName)); // handle NumberFormat exception
by your way
   Map<Object, Object[]>) castMap = (Map<Object, Object[]>) bean; // handle ClassCast
exception by your way
   return castMap.get(name)[idx]; // handle ArrayIndexOutOfBounds exception by your way
}
{code}

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

  was:
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:
{code}
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
}
{code}

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


> 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:
> {code}
> if (resolver.isIndexed(propertyName)) {
>    String name = resolver.getProperty(propertyName);
>    int idx = Integer.valueOf(resolver.getIndex(propertyName)); // handle NumberFormat
exception by your way
>    Map<Object, Object[]>) castMap = (Map<Object, Object[]>) bean; // handle
ClassCast exception by your way
>    return castMap.get(name)[idx]; // handle ArrayIndexOutOfBounds exception by your way
> }
> {code}
> 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.


Mime
View raw message