I am currently developing a system for translating between data files of different types. Some of these files are just a single stream of data, some have multiple columns of data, and some have multiple channels of data (i.e. can contain multiple streams and types of data embedded). The user would be allowed to select any file type as the source, and any file type as the target, or in the case of multiple-stream sources, several file types as targets.
Since each file type has different capabilities, I am considering creating something that can examine the source file type's interface/specification, discover its available capabilities, do the same with the target file, and then automatically wire-up those capabilities that the two file types have in common.
Is there an established software pattern, open source framework, or design methodology that already does this, or something similar?