commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Björn Moritz <bjoern.mor...@gmail.com>
Subject Re: Re: [beanutils] BeanUtilsBean#setProperty() behaviour in 1.7 and 1.8
Date Fri, 11 Mar 2011 08:16:55 GMT
> Wed, 09 Mar 2011 15:38:23 -0800
>
> 2011/3/7 Björn Moritz <bjoern.mor...@gmail.com>:
> > Hello,
> >
> > is there a reason for BeanUtilsBean#setProperty() in line 968 not
> > using the PropertyType of the current PropertyDescriptor as the type
> > of class to convert to, but instead the class of the value to be
> > converted?
> > Until beanutils 1.7 a String array was converted to a string using the
> > first element of the array; since 1.8 the string array is converted to
> > a string using the toString method of the array (as the destination
> > type is now an array type).
> > Why can't we use the property descriptor for these mapped properties, too?
>
> BeanUtils (uniquely) has the concept of a MappedPropertyDescriptor
> like the IndexedPropertyDescriptor, so that if you have acessor
> methods in your bean with a key parameter, then it assumes it is
> accessing an underlying Map. In that scenario it does indeed use the
> descriptor to determine the type. However if it has  a Map property
> (i.e. has methods that set/return a Map) then there is no way to
> determine the type. By the time it reaches the line number you quote,
> then its in the later scenario and the type can't be determined -
> since the descriptor type should be a Map.
>
> Niall

Hi Niall,

thank you for your answer.
So you're suggesting to replace in our beans code like this:

public SortedMap<String, String> getWidth() {
        return widthMap;
}

public void setWidth(SortedMap<String, String> widthMap) {
     this.widthMap= widthMap;
}

with:

public String getWidth(String index) {
        return widthMap.get(index);
}

public void setWidth(String index, String width) {
     widthMap.put(index, width);
}

Then BeanUtils will use a MappedPropertyDescriptor and map our values correctly?

Björn

>
>
> > Regards,
> >
> > Björn
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
> > For additional commands, e-mail: user-h...@commons.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
> For additional commands, e-mail: user-h...@commons.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message