|
|
|
@ -117,21 +117,18 @@ std::string GetFileNamespace(const FileDescriptor* descriptor) { |
|
|
|
|
return UnderscoresToCamelCase(descriptor->package(), true, true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
std::string GetUmbrellaClassNameInternal(const std::string& proto_file) { |
|
|
|
|
std::string GetUmbrellaClassUnqualifiedName(const FileDescriptor* descriptor) { |
|
|
|
|
// umbrella_classname can no longer be set using message option.
|
|
|
|
|
std::string proto_file = descriptor->name(); |
|
|
|
|
int lastslash = proto_file.find_last_of("/"); |
|
|
|
|
std::string base = proto_file.substr(lastslash + 1); |
|
|
|
|
return UnderscoresToPascalCase(StripDotProto(base)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
std::string GetFileUmbrellaClassname(const FileDescriptor* descriptor) { |
|
|
|
|
// umbrella_classname can no longer be set using message option.
|
|
|
|
|
return GetUmbrellaClassNameInternal(descriptor->name()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
std::string GetFileUmbrellaNamespace(const FileDescriptor* descriptor) { |
|
|
|
|
std::string GetUmbrellaClassNestedNamespace(const FileDescriptor* descriptor) { |
|
|
|
|
// TODO(jtattermusch): reintroduce csharp_umbrella_namespace option
|
|
|
|
|
bool collision = false; |
|
|
|
|
std::string umbrella_classname = GetFileUmbrellaClassname(descriptor); |
|
|
|
|
std::string umbrella_classname = GetUmbrellaClassUnqualifiedName(descriptor); |
|
|
|
|
for(int i = 0; i < descriptor->message_type_count(); i++) { |
|
|
|
|
if (descriptor->message_type(i)->name() == umbrella_classname) { |
|
|
|
|
collision = true; |
|
|
|
@ -215,26 +212,17 @@ std::string ToCSharpName(const std::string& name, const FileDescriptor* file) { |
|
|
|
|
return "global::" + result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
std::string GetFullUmbrellaClassName(const FileDescriptor* descriptor) { |
|
|
|
|
std::string GetUmbrellaClassName(const FileDescriptor* descriptor) { |
|
|
|
|
std::string result = GetFileNamespace(descriptor); |
|
|
|
|
if (!result.empty()) { |
|
|
|
|
result += '.'; |
|
|
|
|
} |
|
|
|
|
result += GetQualifiedUmbrellaClassName(descriptor); |
|
|
|
|
return "global::" + result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
std::string GetQualifiedUmbrellaClassName(const FileDescriptor* descriptor) { |
|
|
|
|
std::string umbrellaNamespace = GetFileUmbrellaNamespace(descriptor); |
|
|
|
|
std::string umbrellaClassname = GetFileUmbrellaClassname(descriptor); |
|
|
|
|
|
|
|
|
|
std::string fullName = umbrellaClassname; |
|
|
|
|
std::string umbrellaNamespace = GetUmbrellaClassNestedNamespace(descriptor); |
|
|
|
|
if (!umbrellaNamespace.empty()) { |
|
|
|
|
fullName = umbrellaNamespace + "." + umbrellaClassname; |
|
|
|
|
result += umbrellaNamespace + "."; |
|
|
|
|
} |
|
|
|
|
return fullName; |
|
|
|
|
result += GetUmbrellaClassUnqualifiedName(descriptor); |
|
|
|
|
return "global::" + result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
std::string GetClassName(const Descriptor* descriptor) { |
|
|
|
|