Java: C++11 strong enum and various fixes

Take into account strongly-typed values scope name
But you're correct that removing this code does not affect output