Does this mean harmony might need these methods for its own internal use before ICU is available?
When doing the toLowerCase(Locale)/toUpperCase(Locale), perhaps String.java could do:
if (locale is not Turkish or Azeri or Lithuanian)
while (ch < 0x7f)
( just do optimized fast subtraction/addition )
// bail out completely and invoke 'UCharacter.xxx'
this might be good for performance reasons? And harmony itself, if it uses this method at this point, is likely using Locale.ENGLISH or similar for consistent behavior (filenames, etc) ? Sorry I'm not too familiar with the codebase so I'm not sure if it would work. But it might speed up 'typical' lowercasing in any case, and as far as worst-case 2x for the "special casing": i find the "special" casing is going to be slow anyway: e.g. the Greek sigma example needs to calculate word boundaries!
the Turkish/Azeri case is trickier than the existing code, I think it should use UCharacter.XXX too.
The reason is it has to be able to handle the case from SpecialCasing where the 'dotted I' is written in decomposed form (e.g. I + COMBINING DOT ABOVE)