diff options
author | Andrew Spiering <aspiering@gmail.com> | 2016-12-21 13:29:06 -0800 |
---|---|---|
committer | Andrew Spiering <aspiering@gmail.com> | 2016-12-21 13:29:06 -0800 |
commit | 6c021b3d5f7b6bbda10c7e5209528bc8b35c8076 (patch) | |
tree | 2cabb2b68a1f0233ed720a3fb4d4185e6db3f518 /src/google/protobuf/compiler/csharp/csharp_message.cc | |
parent | d948b66d4f4f41e438981f49ad4668ab0ba6ab0a (diff) | |
download | protobuf-6c021b3d5f7b6bbda10c7e5209528bc8b35c8076.tar.gz protobuf-6c021b3d5f7b6bbda10c7e5209528bc8b35c8076.tar.bz2 protobuf-6c021b3d5f7b6bbda10c7e5209528bc8b35c8076.zip |
Added the support for class level deprecation which will in turn also deprecate any fields that are currently using that type
Diffstat (limited to 'src/google/protobuf/compiler/csharp/csharp_message.cc')
-rw-r--r-- | src/google/protobuf/compiler/csharp/csharp_message.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/google/protobuf/compiler/csharp/csharp_message.cc b/src/google/protobuf/compiler/csharp/csharp_message.cc index ed744854..78e076c8 100644 --- a/src/google/protobuf/compiler/csharp/csharp_message.cc +++ b/src/google/protobuf/compiler/csharp/csharp_message.cc @@ -98,12 +98,21 @@ const std::vector<const FieldDescriptor*>& MessageGenerator::fields_by_number() return fields_by_number_; } +void MessageGenerator::AddDeprecatedFlag(io::Printer* printer) { + if (descriptor_->options().deprecated()) + { + printer->Print("[global::System.ObsoleteAttribute]\n"); + } +} + void MessageGenerator::Generate(io::Printer* printer) { map<string, string> vars; vars["class_name"] = class_name(); vars["access_level"] = class_access_level(); WriteMessageDocComment(printer, descriptor_); + AddDeprecatedFlag(printer); + printer->Print( vars, "$access_level$ sealed partial class $class_name$ : pb::IMessage<$class_name$> {\n"); @@ -115,6 +124,7 @@ void MessageGenerator::Generate(io::Printer* printer) { "private static readonly pb::MessageParser<$class_name$> _parser = new pb::MessageParser<$class_name$>(() => new $class_name$());\n"); WriteGeneratedCodeAttributes(printer); + printer->Print( vars, "public static pb::MessageParser<$class_name$> Parser { get { return _parser; } }\n\n"); |