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

Benedikt Ritter updated BEANUTILS-481:
--------------------------------------
    Description: 
Please consider the attached patch for the commons-beanutils2 project. I added 
support for nested properties and automatic conversion. Excerpt from 
AutoConversionTest:

{code}
final DateFormat dateFormat = new SimpleDateFormat("MMMM d, yyyy");
final TransformerRegistry transformerRegistry = new TransformerRegistry()
    .register(new StringToDate(dateFormat))
    .register(new IntegerToString())
    .register(new StringToColor())
    .register(new IntegerToColor())
    .register(new StringToURL())
    .register(new StringToPhoneNumber());
final PhoneNumber phoneNumber = new PhoneNumber();
phoneNumber.setAreaCode("202");
phoneNumber.setPrefix("456");
phoneNumber.setLineNumber("1111");
final Address address = new Address();
address.setStreetAddress("1600 Pennsylvania Avenue Northwest");
address.setCity("Washington");
address.setStateCode("DC");
address.setPostalCode("20500");
address.setCountryCode("US");
final Person person = new Person();
person.setFirstName("Barack");
person.setLastName("Obama");
person.setBirthDate(dateFormat.parse("August 4, 1961"));
person.setEyeColor(Color.decode("#362819"));
person.setHairColor(GRAY);
person.setPhoneNumber(phoneNumber);
person.setAddress(address);
person.setWebsite(new URL("https://www.barackobama.com/";));
assertEquals(person, on(new Person(), transformerRegistry)
    .set("firstName").with("Barack")
    .set("lastName").with("Obama")
    .set("birthDate").with("August 4, 1961")
    .set("hairColor").with(0x808080)
    .set("eyeColor").with("#362819")
    .set("website").with("https://www.barackobama.com/";)
    .set("phoneNumber").with("202-456-1111")
    .set("address").with(new Address())
    .set("address.streetAddress").with("1600 Pennsylvania Avenue Northwest")
    .set("address.city").with("Washington")
    .set("address.stateCode").with("DC")
    .set("address.postalCode").with(20500)
    .set("address.countryCode").with("US")
    .get());
{code}

Thanks,
Matt

  was:
Please consider the attached patch for the commons-beanutils2 project. I added 
support for nested properties and automatic conversion. Excerpt from 
AutoConversionTest:

final DateFormat dateFormat = new SimpleDateFormat("MMMM d, yyyy");
final TransformerRegistry transformerRegistry = new TransformerRegistry()
    .register(new StringToDate(dateFormat))
    .register(new IntegerToString())
    .register(new StringToColor())
    .register(new IntegerToColor())
    .register(new StringToURL())
    .register(new StringToPhoneNumber());
final PhoneNumber phoneNumber = new PhoneNumber();
phoneNumber.setAreaCode("202");
phoneNumber.setPrefix("456");
phoneNumber.setLineNumber("1111");
final Address address = new Address();
address.setStreetAddress("1600 Pennsylvania Avenue Northwest");
address.setCity("Washington");
address.setStateCode("DC");
address.setPostalCode("20500");
address.setCountryCode("US");
final Person person = new Person();
person.setFirstName("Barack");
person.setLastName("Obama");
person.setBirthDate(dateFormat.parse("August 4, 1961"));
person.setEyeColor(Color.decode("#362819"));
person.setHairColor(GRAY);
person.setPhoneNumber(phoneNumber);
person.setAddress(address);
person.setWebsite(new URL("https://www.barackobama.com/";));
assertEquals(person, on(new Person(), transformerRegistry)
    .set("firstName").with("Barack")
    .set("lastName").with("Obama")
    .set("birthDate").with("August 4, 1961")
    .set("hairColor").with(0x808080)
    .set("eyeColor").with("#362819")
    .set("website").with("https://www.barackobama.com/";)
    .set("phoneNumber").with("202-456-1111")
    .set("address").with(new Address())
    .set("address.streetAddress").with("1600 Pennsylvania Avenue Northwest")
    .set("address.city").with("Washington")
    .set("address.stateCode").with("DC")
    .set("address.postalCode").with(20500)
    .set("address.countryCode").with("US")
    .get());

Thanks,
Matt


> [beanutils2] Support for nested properties and automatic conversion.
> --------------------------------------------------------------------
>
>                 Key: BEANUTILS-481
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-481
>             Project: Commons BeanUtils
>          Issue Type: Improvement
>            Reporter: Matthew P Mann
>         Attachments: commons-beanutils2.patch
>
>
> Please consider the attached patch for the commons-beanutils2 project. I 
> added support for nested properties and automatic conversion. Excerpt from 
> AutoConversionTest:
> {code}
> final DateFormat dateFormat = new SimpleDateFormat("MMMM d, yyyy");
> final TransformerRegistry transformerRegistry = new TransformerRegistry()
>     .register(new StringToDate(dateFormat))
>     .register(new IntegerToString())
>     .register(new StringToColor())
>     .register(new IntegerToColor())
>     .register(new StringToURL())
>     .register(new StringToPhoneNumber());
> final PhoneNumber phoneNumber = new PhoneNumber();
> phoneNumber.setAreaCode("202");
> phoneNumber.setPrefix("456");
> phoneNumber.setLineNumber("1111");
> final Address address = new Address();
> address.setStreetAddress("1600 Pennsylvania Avenue Northwest");
> address.setCity("Washington");
> address.setStateCode("DC");
> address.setPostalCode("20500");
> address.setCountryCode("US");
> final Person person = new Person();
> person.setFirstName("Barack");
> person.setLastName("Obama");
> person.setBirthDate(dateFormat.parse("August 4, 1961"));
> person.setEyeColor(Color.decode("#362819"));
> person.setHairColor(GRAY);
> person.setPhoneNumber(phoneNumber);
> person.setAddress(address);
> person.setWebsite(new URL("https://www.barackobama.com/";));
> assertEquals(person, on(new Person(), transformerRegistry)
>     .set("firstName").with("Barack")
>     .set("lastName").with("Obama")
>     .set("birthDate").with("August 4, 1961")
>     .set("hairColor").with(0x808080)
>     .set("eyeColor").with("#362819")
>     .set("website").with("https://www.barackobama.com/";)
>     .set("phoneNumber").with("202-456-1111")
>     .set("address").with(new Address())
>     .set("address.streetAddress").with("1600 Pennsylvania Avenue Northwest")
>     .set("address.city").with("Washington")
>     .set("address.stateCode").with("DC")
>     .set("address.postalCode").with(20500)
>     .set("address.countryCode").with("US")
>     .get());
> {code}
> Thanks,
> Matt



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to