[
https://issues.apache.org/jira/browse/SANDBOX-501?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matthew P Mann updated SANDBOX-501:
-----------------------------------
Attachment: commons-beanutils2.java8.patch
Benedikt,
What do you think of this patch?
{code}
@Test
public void test() throws MalformedURLException, ParseException {
final DateFormat dateFormat = new SimpleDateFormat("MMMM d, yyyy");
final BeanUtils beanUtils = BeanUtils
.builder()
.withDefaultTransformers()
.withTransformer(MethodTransformer.from(String.class).to(Date.class).using(dateFormat,
"parse"))
.withTransformer(FunctionTransformer.from(String.class).to(PhoneNumber.class).using(PhoneNumber::parse))
.withTransformer(FunctionTransformer.from(String.class).to(State.class).using(State::valueOf))
.build();
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(State.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,
beanUtils
.bean(new Person())
.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(
beanUtils
.bean(new Address())
.set("streetAddress").with("1600 Pennsylvania Avenue
Northwest")
.set("city").with("Washington")
.set("stateCode").with("DC")
.set("postalCode").with(20500)
.set("countryCode").with("US")
.get()
)
.get()
);
}
{code}
-Matt
> Add configurable type conversion support
> ----------------------------------------
>
> Key: SANDBOX-501
> URL: https://issues.apache.org/jira/browse/SANDBOX-501
> Project: Commons Sandbox
> Issue Type: New Feature
> Components: BeanUtils2
> Reporter: Benedikt Ritter
> Attachments: commons-beanutils2.java8.patch
>
>
> BeanUtils1 supports automatic type conversion when setting properties. This
> should be added to BeanUtils2.
> A problem of the implementation of BeanUtils1 is, that the registry of
> converts is cached in the BeanUtils class. BeanUtils2 should provide an API
> for creating new instances of the o.a.c.beanutils2.BeanUtils with a
> customized typ conversion registry.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)