You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Alfonso da Silva <al...@e-milio.com> on 2003/07/25 15:12:05 UTC

[BeanUtils] About DynaProperty definition

Hi!

I have a suggestion about DynaProperty definition. I'm working in a
persistent layer that works with Dyna* classes.

With the DynaProperty class, the type of an attribute can be defined. But 
if I have an indexed (or a mapped) attribute (Vector, ArrayList,
HashMap...) I cann't define what class of objects can the DynaBean accepts.

I need something like this:

 /* A mapped attribute whith Integer values (and String keys) */
 DynaProperty p = new DynaProperty("integerMap",Integer.class);
 p.setMapped(true);

or

 /* An indexed attribute whith String values */
 DynaProperty p = new DynaProperty("stringArray",String.class);
 p.setIndexed(true);

or

 /* A mapped attribute that accepts any value */
 DynaProperty p = new DynaProperty("objectMap");
 p.setMapped(true);

or

 /* A simple Calendar attibute */
 DynaProperty p = new DynaProperty("calendar",Calendar.class);
 
I believe that with indexed attributes (the same with mapped attributes)
it isn't necessary to specify if it is a ArrayList or a Vector or an
Array, because we recober the values of the DynaBean with the method 
get(java.lang.String name, int index) 

What do you think?

Alf.

--
Mensaje enviado desde http://www.e-milio.com

Re: [BeanUtils] About DynaProperty definition

Posted by robert burrell donkin <ro...@blueyonder.co.uk>.
On Friday, July 25, 2003, at 01:12 PM, Alfonso da Silva wrote:

> Hi!
>
> I have a suggestion about DynaProperty definition. I'm working in a
> persistent layer that works with Dyna* classes.
>
> With the DynaProperty class, the type of an attribute can be defined. But
> if I have an indexed (or a mapped) attribute (Vector, ArrayList,
> HashMap...) I cann't define what class of objects can the DynaBean 
> accepts.
>
> I need something like this:
>
>  /* A mapped attribute whith Integer values (and String keys) */
>  DynaProperty p = new DynaProperty("integerMap",Integer.class);
>  p.setMapped(true);
>
> or
>
>  /* An indexed attribute whith String values */
>  DynaProperty p = new DynaProperty("stringArray",String.class);
>  p.setIndexed(true);
>
> or
>
>  /* A mapped attribute that accepts any value */
>  DynaProperty p = new DynaProperty("objectMap");
>  p.setMapped(true);
>
> or
>
>  /* A simple Calendar attibute */
>  DynaProperty p = new DynaProperty("calendar",Calendar.class);
>
> I believe that with indexed attributes (the same with mapped attributes)
> it isn't necessary to specify if it is a ArrayList or a Vector or an
> Array, because we recober the values of the DynaBean with the method
> get(java.lang.String name, int index)
>
> What do you think?

hi alf

this sounds like a pretty reasonable enhancement. i've taken a look at 
clazz and they use getContentClazz and getKeyClazz so maybe we could add 
two additional methods getContentType and getKeyType. these values would 
be there just to support introspection of these values rather than having 
needing any changes to the current beanutils code, wouldn't they?

comments anyone?

- robert