This whole section isn't about imports - the imports need fully qualified class names.  This is about stripping packages from already imported classes, since the simple class name will suffice. 

Another approach would be to pass in the list of all imported types and use it to strip, but this (and compressType) was a good-enough heuristic.  If the next element in the FQCN is not a capital it's package so don't strip.  It's just automating the naming convention.  It's that or a lot of special casing and any time I added an Import, I would also have to add the special case. 

I could build it such that if we emit the import, we keep the class and strip those, but I'm going to have to do splitting on periods, and I was trying to avoid building that more complex code generator system you cautioned me about. :)