LA> 1) The actual conversion logic should be implemented in small chunks,
LA> inside the most primitive, bare code-container, interface :

LA>   public interface Conversion {
LA>     public Object convert(Object value) throws Exception;
LA>   }

I agree that the interface should be small, but I am not too sure
about the Exception.  Throw-everything forces the caller to
Catch-everything.  Maybe a more specific Exception, like
ConversionFailedException, is sufficient.

LA> One implementation should do one simple, well-specified conversion,
[...]

Agreed.

LA> 2) There should be multiple manager classes to implementing distinct
LA> policies for choosing a Conversion.  ConversionRegistry will be one
LA> such manager.  Other managers may build transitive Conversion chains,
LA> handle inheritance, provide accessors for primitives, etc.  Clients
LA> will work with managers, never Conversions themselves.  Managers will
LA> wrap exceptions thrown by Conversions in ConversionExceptions.  There
LA> is no one interface that could sum up all possible managers.

I also agree very much, but I'd like to see an intermediate structure
to store converters (which I have presented recently as
ConverterRegistry).  The managers (ConverterLookup, or however it may
be named) would provide the algorithm to work on the converters.

[snip]

I like the ideas you presented quite a bit.  The one thing I don't
understand is how you decide which converter to take.  In other words,
why don't you need the input/output type information?

If you want, check out my ideas at
http://www.rblasch.org/convert/convert-docs.zip
http://www.rblasch.org/convert/convert-proto2.zip

Ron


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to