|
|
|
@ -208,7 +208,8 @@ string ClassName(const Params& params, const EnumDescriptor* descriptor) { |
|
|
|
|
const string full_name = descriptor->full_name(); |
|
|
|
|
|
|
|
|
|
// Remove enum class name as we use int's for enums
|
|
|
|
|
string base_name = full_name.substr(0, full_name.find_last_of('.')); |
|
|
|
|
int last_dot_in_name = full_name.find_last_of('.'); |
|
|
|
|
string base_name = full_name.substr(0, last_dot_in_name); |
|
|
|
|
|
|
|
|
|
if (!file->package().empty()) { |
|
|
|
|
if (file->package() == base_name.substr(0, file->package().size())) { |
|
|
|
@ -226,13 +227,22 @@ string ClassName(const Params& params, const EnumDescriptor* descriptor) { |
|
|
|
|
|
|
|
|
|
// Construct the path name from the package and outer class
|
|
|
|
|
|
|
|
|
|
// Add the java package name if it exsits
|
|
|
|
|
// Add the java package name if it exists
|
|
|
|
|
if (params.has_java_package(file_name)) { |
|
|
|
|
result += params.java_package(file_name); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Add the outer classname if it exists
|
|
|
|
|
if (params.has_java_outer_classname(file_name)) { |
|
|
|
|
// If the java_multiple_files option is present, we will generate enums into separate
|
|
|
|
|
// classes, each named after the original enum type. This takes precedence over
|
|
|
|
|
// any outer_classname.
|
|
|
|
|
if (params.java_multiple_files() && last_dot_in_name != string::npos) { |
|
|
|
|
string enum_simple_name = full_name.substr(last_dot_in_name + 1); |
|
|
|
|
if (!result.empty()) { |
|
|
|
|
result += "."; |
|
|
|
|
} |
|
|
|
|
result += enum_simple_name; |
|
|
|
|
} else if (params.has_java_outer_classname(file_name)) { |
|
|
|
|
// Add the outer classname if it exists
|
|
|
|
|
if (!result.empty()) { |
|
|
|
|
result += "."; |
|
|
|
|
} |
|
|
|
|