ENG-4653: Code review fix.  Use generics correctly for the win.
ENG-4653: More review feedback: Use EnumMap
ENG-4653: Code review cleanup: Better empty string checkage.