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]