RFC: Data converter interface/classes

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

RFC: Data converter interface/classes

Adrian Crum
I noticed the recent work being done with OAGIS support. At the same time I'm looking at adding iCal
support to my calendar application. Both efforts require converting external data types to/from
OFBiz data types.

I'm thinking that it would make sense to have a GenericDataConverter interface created that we could
derive implementations from for these and future conversions. Initially, the interface would just
convert from OFBiz data types to properly formatted strings and the reverse - strings to OFBiz data
types. In other words, each OFBiz data type would have two methods: fromXxxx and toXxxx.

So, the OAGIS component would have an implementation of the data converter interface called, say,
OagisDataConverter, and instead of the code:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSS'Z'Z");
Date date = new Date();
String sentDate = null;
sentDate = dateFormat.format(date);

you would have this:

String sentDate = OagisDataConverter.fromDate(new Date());

To get OFBiz data from an OAGIS data source, you would use the complimentary method:

Date sentDate = OagisDataConverter.toDate(oagisDateString);

In my calendar app I would have an iCal implementation of the interface:

String eventDate = iCalDataConverter.fromDate(new Date());
Date eventDate = iCalDataConverter.toDate(iCalDateString);

What do you think?

-Adrian
Reply | Threaded
Open this post in threaded view
|

Re: RFC: Data converter interface/classes

Adrian Crum
I was thinking that the GenericDataConverter interface could be coupled with a concrete GenericValue
decorator class to provide a GenericValue that auto-converts between data formats.

Example:

GenericDataConverter oagisConverter = new OagisDataConverter();
GenericValue someEntity = delegator.findByPrimaryKey(...);
GenericValue convertedEntity = new GenericConverterValue(someEntity, oagisConverter);
// use convertedEntity as you would a GenericEntity - get() and put() return/accept OAGIS data types
convertedEntity.put("sentDate", oagisSentDate);
convertedEntity.store();


Adrian Crum wrote:

> I noticed the recent work being done with OAGIS support. At the same
> time I'm looking at adding iCal support to my calendar application. Both
> efforts require converting external data types to/from OFBiz data types.
>
> I'm thinking that it would make sense to have a GenericDataConverter
> interface created that we could derive implementations from for these
> and future conversions. Initially, the interface would just convert from
> OFBiz data types to properly formatted strings and the reverse - strings
> to OFBiz data types. In other words, each OFBiz data type would have two
> methods: fromXxxx and toXxxx.
>
> So, the OAGIS component would have an implementation of the data
> converter interface called, say, OagisDataConverter, and instead of the
> code:
>
> DateFormat dateFormat = new
> SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSS'Z'Z");
> Date date = new Date();
> String sentDate = null;
> sentDate = dateFormat.format(date);
>
> you would have this:
>
> String sentDate = OagisDataConverter.fromDate(new Date());
>
> To get OFBiz data from an OAGIS data source, you would use the
> complimentary method:
>
> Date sentDate = OagisDataConverter.toDate(oagisDateString);
>
> In my calendar app I would have an iCal implementation of the interface:
>
> String eventDate = iCalDataConverter.fromDate(new Date());
> Date eventDate = iCalDataConverter.toDate(iCalDateString);
>
> What do you think?
>
> -Adrian
>