Java: C++11 strong enum and various fixes

Take into account strongly-typed values scope name