| 
														
															@@ -208,7 +208,8 @@ string ClassName(const Params& params, const EnumDescriptor* descriptor) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   const string full_name = descriptor->full_name(); 
														 | 
														
														 | 
														
															   const string full_name = descriptor->full_name(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   // Remove enum class name as we use int's for enums 
														 | 
														
														 | 
														
															   // 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().empty()) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (file->package() == base_name.substr(0, file->package().size())) { 
														 | 
														
														 | 
														
															     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 
														 | 
														
														 | 
														
															   // 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)) { 
														 | 
														
														 | 
														
															   if (params.has_java_package(file_name)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     result += params.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()) { 
														 | 
														
														 | 
														
															     if (!result.empty()) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       result += "."; 
														 | 
														
														 | 
														
															       result += "."; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 |