I just checked in the new conversion code. Some work still needs to be done on 
it.

When it is finished, users will be able to introduce custom Java object types 
into the framework. This will make the framework more flexible and extensible.

Using Harmeet's phone number example, we will be able to do things like:

<entity-one entity-name="TelecomNumber" value-field="phoneNumberValue"/>
<set field="phoneNumber" from-field="phoneNumberValue" type="PhoneNumber"/>
<!-- Do something with phoneNumber -->

-Adrian


--- On Wed, 11/4/09, Adrian Crum <[email protected]> wrote:

> From: Adrian Crum <[email protected]>
> Subject: Discussion: Improved Java Object Type Conversion
> To: [email protected]
> Date: Wednesday, November 4, 2009, 4:08 PM
> I have an idea for improved Java
> object type conversion (converting from one Java object type
> to another), and I would like to solicit comments from the
> community.
> 
> Currently, the project handles object type conversions in
> the ObjectType.simpleTypeConvert(...) method, and there are
> small conversion code snippets in other classes
> (UtilDateTime for example). Basically, object type
> conversion is scattered all over the project. This can lead
> to code inconsistency, or inconsistent conversion results.
> 
> I think it would be helpful to consolidate object type
> conversion into a simple "framework" that can be easily
> extended to handle additional conversions.
> 
> I came up with a simple interface:
> 
> public interface Converter<T, F> {
>     public T to(F obj);
> }
> 
> where T is the object type to convert to, and F is the
> object type to convert from.
> 
> A factory class is used to get a Converter instance:
> 
> public class ConverterFactory {
>     public static <T, F> Converter<T,
> F> getConverter(Class<T> toClass, Class<F>
> fromClass) {}
> }
> 
> To convert an object:
> 
> String str = "1234";
> Converter<Long, String> converter = ConverterFactory
> .getConverter(Long.class, String.class);
> Long result = converter.to(str);
> 
> The framework would include converter implementations for
> all the conversions currently being used. The
> ObjectType.simpleTypeConvert(...) method's complicated
> if-else code would be replaced with the simpler converter
> code.
> 
> Users can write their own converters and "register" them
> with the converter framework.
> 
> What do you think?
> 
> -Adrian
> 



Reply via email to