I have created an ObjectParser class which parses data into strongly typed objects using an IObjectParserDataSource as the data source (the data could be an Excel file, text file, array, query string, etc).
Examples of my implementations of IObjectParserDataSource are:
TextFileObjectParserDataSourceExcelFileObjectParserDataSource
These class names feel really long and convoluted to me.
I could name them:
TextFileDataSourceExcelFileDataSource
But this introduces a level of ambiguity and they don't became as clearly related to IObjectParserDataSource at first glance.  This becomes important because defining these data sources will happen in client code and I wish to minimize potential confusion and uncertainty.
How would you name these classes in such a scenario?
ExcelFileOPDS,TextFileOPDS. It saves a bit on typing and screen space, but it's opaque to someone who isn't familiar with the code.