@andyberry88: it's an object-oriented anti-pattern to do `instanceof` switching outside of a class like this. I know I said that `getBaseReader()` shouldn't be part of `SourceModule`, and that casting would be okay, but that was on the basis that the utility was only working with this one type of class.

If that's not the case you should instead create a new interface (e.g. `StrippableSourceModule`) for working with the `JsCommentAndCodeBlockStrippingReaderFactory` class, so that it knows about the `getBaseReader()` method, which maybe should be called `getContentReader()` or `getSourceReader()`, or something more descriptive.