| Index: third_party/protobuf/src/google/protobuf/compiler/java/java_message.cc
|
| diff --git a/third_party/protobuf/src/google/protobuf/compiler/java/java_message.cc b/third_party/protobuf/src/google/protobuf/compiler/java/java_message.cc
|
| index 4c474a48a692f0fee2cea85f46632d969631de12..68d28b058eda3d6e332166362161205292fe5ac3 100644
|
| --- a/third_party/protobuf/src/google/protobuf/compiler/java/java_message.cc
|
| +++ b/third_party/protobuf/src/google/protobuf/compiler/java/java_message.cc
|
| @@ -205,9 +205,10 @@ GenerateFieldAccessorTable(io::Printer* printer, int* bytecode_estimate) {
|
| } else {
|
| vars["final"] = "";
|
| }
|
| + vars["ver"] = GeneratedCodeVersionSuffix();
|
| printer->Print(vars,
|
| "$private$static $final$\n"
|
| - " com.google.protobuf.GeneratedMessage.FieldAccessorTable\n"
|
| + " com.google.protobuf.GeneratedMessage$ver$.FieldAccessorTable\n"
|
| " internal_$identifier$_fieldAccessorTable;\n");
|
|
|
| // 6 bytes per field and oneof
|
| @@ -220,11 +221,11 @@ GenerateFieldAccessorTableInitializer(io::Printer* printer) {
|
| int bytecode_estimate = 10;
|
| printer->Print(
|
| "internal_$identifier$_fieldAccessorTable = new\n"
|
| - " com.google.protobuf.GeneratedMessage.FieldAccessorTable(\n"
|
| + " com.google.protobuf.GeneratedMessage$ver$.FieldAccessorTable(\n"
|
| " internal_$identifier$_descriptor,\n"
|
| " new java.lang.String[] { ",
|
| - "identifier",
|
| - UniqueFileScopeIdentifier(descriptor_));
|
| + "identifier", UniqueFileScopeIdentifier(descriptor_),
|
| + "ver", GeneratedCodeVersionSuffix());
|
| for (int i = 0; i < descriptor_->field_count(); i++) {
|
| const FieldDescriptor* field = descriptor_->field(i);
|
| const FieldGeneratorInfo* info = context_->GetFieldGeneratorInfo(field);
|
| @@ -248,22 +249,27 @@ GenerateFieldAccessorTableInitializer(io::Printer* printer) {
|
| // ===================================================================
|
|
|
| void ImmutableMessageGenerator::GenerateInterface(io::Printer* printer) {
|
| + MaybePrintGeneratedAnnotation(context_, printer, descriptor_,
|
| + /* immutable = */ true, "OrBuilder");
|
| if (descriptor_->extension_range_count() > 0) {
|
| printer->Print(
|
| - "public interface $classname$OrBuilder extends\n"
|
| - " $extra_interfaces$\n"
|
| - " com.google.protobuf.GeneratedMessage.\n"
|
| - " ExtendableMessageOrBuilder<$classname$> {\n",
|
| - "extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
|
| - "classname", descriptor_->name());
|
| + "public interface $classname$OrBuilder$idend$ extends\n"
|
| + " $extra_interfaces$\n"
|
| + " com.google.protobuf.GeneratedMessage$ver$.\n"
|
| + " ExtendableMessageOrBuilder<$classname$> {\n",
|
| + "extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
|
| + "classname", descriptor_->name(),
|
| + "idend", "", "ver", GeneratedCodeVersionSuffix());
|
| } else {
|
| printer->Print(
|
| - "public interface $classname$OrBuilder extends\n"
|
| - " $extra_interfaces$\n"
|
| - " com.google.protobuf.MessageOrBuilder {\n",
|
| - "extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
|
| - "classname", descriptor_->name());
|
| + "public interface $classname$OrBuilder$idend$ extends\n"
|
| + " $extra_interfaces$\n"
|
| + " com.google.protobuf.MessageOrBuilder {\n",
|
| + "extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
|
| + "classname", descriptor_->name(),
|
| + "idend", "");
|
| }
|
| + printer->Annotate("classname", "idend", descriptor_);
|
|
|
| printer->Indent();
|
| for (int i = 0; i < descriptor_->field_count(); i++) {
|
| @@ -291,36 +297,45 @@ void ImmutableMessageGenerator::GenerateInterface(io::Printer* printer) {
|
| // ===================================================================
|
|
|
| void ImmutableMessageGenerator::Generate(io::Printer* printer) {
|
| - bool is_own_file =
|
| - descriptor_->containing_type() == NULL &&
|
| - MultipleJavaFiles(descriptor_->file(), /* immutable = */ true);
|
| + bool is_own_file = IsOwnFile(descriptor_, /* immutable = */ true);
|
|
|
| map<string, string> variables;
|
| variables["static"] = is_own_file ? " " : " static ";
|
| variables["classname"] = descriptor_->name();
|
| variables["extra_interfaces"] = ExtraMessageInterfaces(descriptor_);
|
| + variables["ver"] = GeneratedCodeVersionSuffix();
|
|
|
| WriteMessageDocComment(printer, descriptor_);
|
| + MaybePrintGeneratedAnnotation(context_, printer, descriptor_,
|
| + /* immutable = */ true);
|
|
|
| // The builder_type stores the super type name of the nested Builder class.
|
| string builder_type;
|
| if (descriptor_->extension_range_count() > 0) {
|
| printer->Print(variables,
|
| - "public $static$final class $classname$ extends\n"
|
| - " com.google.protobuf.GeneratedMessage.ExtendableMessage<\n"
|
| - " $classname$> implements\n"
|
| - " $extra_interfaces$\n"
|
| - " $classname$OrBuilder {\n");
|
| + "public $static$final class $classname$ extends\n");
|
| + printer->Annotate("classname", descriptor_);
|
| + printer->Print(
|
| + variables,
|
| + " com.google.protobuf.GeneratedMessage$ver$.ExtendableMessage<\n"
|
| + " $classname$> implements\n"
|
| + " $extra_interfaces$\n"
|
| + " $classname$OrBuilder {\n");
|
| builder_type = strings::Substitute(
|
| - "com.google.protobuf.GeneratedMessage.ExtendableBuilder<$0, ?>",
|
| - name_resolver_->GetImmutableClassName(descriptor_));
|
| + "com.google.protobuf.GeneratedMessage$1.ExtendableBuilder<$0, ?>",
|
| + name_resolver_->GetImmutableClassName(descriptor_),
|
| + GeneratedCodeVersionSuffix());
|
| } else {
|
| printer->Print(variables,
|
| - "public $static$final class $classname$ extends\n"
|
| - " com.google.protobuf.GeneratedMessage implements\n"
|
| + "public $static$final class $classname$ extends\n");
|
| + printer->Annotate("classname", descriptor_);
|
| + printer->Print(variables,
|
| + " com.google.protobuf.GeneratedMessage$ver$ implements\n"
|
| " $extra_interfaces$\n"
|
| " $classname$OrBuilder {\n");
|
| - builder_type = "com.google.protobuf.GeneratedMessage.Builder<?>";
|
| + builder_type = strings::Substitute(
|
| + "com.google.protobuf.GeneratedMessage$0.Builder<?>",
|
| + GeneratedCodeVersionSuffix());
|
| }
|
| printer->Indent();
|
| // Using builder_type, instead of Builder, prevents the Builder class from
|
| @@ -485,9 +500,6 @@ void ImmutableMessageGenerator::Generate(io::Printer* printer) {
|
| if (context_->HasGeneratedMethods(descriptor_)) {
|
| GenerateIsInitialized(printer);
|
| GenerateMessageSerializationMethods(printer);
|
| - }
|
| -
|
| - if (HasEqualsAndHashCode(descriptor_)) {
|
| GenerateEqualsAndHashCode(printer);
|
| }
|
|
|
| @@ -574,16 +586,18 @@ GenerateMessageSerializationMethods(io::Printer* printer) {
|
| if (descriptor_->extension_range_count() > 0) {
|
| if (descriptor_->options().message_set_wire_format()) {
|
| printer->Print(
|
| - "com.google.protobuf.GeneratedMessage\n"
|
| + "com.google.protobuf.GeneratedMessage$ver$\n"
|
| " .ExtendableMessage<$classname$>.ExtensionWriter\n"
|
| " extensionWriter = newMessageSetExtensionWriter();\n",
|
| - "classname", name_resolver_->GetImmutableClassName(descriptor_));
|
| + "classname", name_resolver_->GetImmutableClassName(descriptor_),
|
| + "ver", GeneratedCodeVersionSuffix());
|
| } else {
|
| printer->Print(
|
| - "com.google.protobuf.GeneratedMessage\n"
|
| + "com.google.protobuf.GeneratedMessage$ver$\n"
|
| " .ExtendableMessage<$classname$>.ExtensionWriter\n"
|
| " extensionWriter = newExtensionWriter();\n",
|
| - "classname", name_resolver_->GetImmutableClassName(descriptor_));
|
| + "classname", name_resolver_->GetImmutableClassName(descriptor_),
|
| + "ver", GeneratedCodeVersionSuffix());
|
| }
|
| }
|
|
|
| @@ -687,43 +701,44 @@ GenerateParseFromMethods(io::Printer* printer) {
|
| "}\n"
|
| "public static $classname$ parseFrom(java.io.InputStream input)\n"
|
| " throws java.io.IOException {\n"
|
| - " return com.google.protobuf.GeneratedMessage\n"
|
| + " return com.google.protobuf.GeneratedMessage$ver$\n"
|
| " .parseWithIOException(PARSER, input);\n"
|
| "}\n"
|
| "public static $classname$ parseFrom(\n"
|
| " java.io.InputStream input,\n"
|
| " com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
|
| " throws java.io.IOException {\n"
|
| - " return com.google.protobuf.GeneratedMessage\n"
|
| + " return com.google.protobuf.GeneratedMessage$ver$\n"
|
| " .parseWithIOException(PARSER, input, extensionRegistry);\n"
|
| "}\n"
|
| "public static $classname$ parseDelimitedFrom(java.io.InputStream input)\n"
|
| " throws java.io.IOException {\n"
|
| - " return com.google.protobuf.GeneratedMessage\n"
|
| + " return com.google.protobuf.GeneratedMessage$ver$\n"
|
| " .parseDelimitedWithIOException(PARSER, input);\n"
|
| "}\n"
|
| "public static $classname$ parseDelimitedFrom(\n"
|
| " java.io.InputStream input,\n"
|
| " com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
|
| " throws java.io.IOException {\n"
|
| - " return com.google.protobuf.GeneratedMessage\n"
|
| + " return com.google.protobuf.GeneratedMessage$ver$\n"
|
| " .parseDelimitedWithIOException(PARSER, input, extensionRegistry);\n"
|
| "}\n"
|
| "public static $classname$ parseFrom(\n"
|
| " com.google.protobuf.CodedInputStream input)\n"
|
| " throws java.io.IOException {\n"
|
| - " return com.google.protobuf.GeneratedMessage\n"
|
| + " return com.google.protobuf.GeneratedMessage$ver$\n"
|
| " .parseWithIOException(PARSER, input);\n"
|
| "}\n"
|
| "public static $classname$ parseFrom(\n"
|
| " com.google.protobuf.CodedInputStream input,\n"
|
| " com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
|
| " throws java.io.IOException {\n"
|
| - " return com.google.protobuf.GeneratedMessage\n"
|
| + " return com.google.protobuf.GeneratedMessage$ver$\n"
|
| " .parseWithIOException(PARSER, input, extensionRegistry);\n"
|
| "}\n"
|
| "\n",
|
| - "classname", name_resolver_->GetImmutableClassName(descriptor_));
|
| + "classname", name_resolver_->GetImmutableClassName(descriptor_),
|
| + "ver", GeneratedCodeVersionSuffix());
|
| }
|
|
|
| void ImmutableMessageGenerator::GenerateSerializeOneField(
|
| @@ -762,10 +777,11 @@ void ImmutableMessageGenerator::GenerateBuilder(io::Printer* printer) {
|
| printer->Print(
|
| "@java.lang.Override\n"
|
| "protected Builder newBuilderForType(\n"
|
| - " com.google.protobuf.GeneratedMessage.BuilderParent parent) {\n"
|
| + " com.google.protobuf.GeneratedMessage$ver$.BuilderParent parent) {\n"
|
| " Builder builder = new Builder(parent);\n"
|
| " return builder;\n"
|
| - "}\n");
|
| + "}\n",
|
| + "ver", GeneratedCodeVersionSuffix());
|
|
|
| MessageBuilderGenerator builderGenerator(descriptor_, context_);
|
| builderGenerator.Generate(printer);
|
| @@ -819,7 +835,7 @@ GenerateDescriptorMethods(io::Printer* printer) {
|
| "}\n");
|
| }
|
| printer->Print(
|
| - "protected com.google.protobuf.GeneratedMessage.FieldAccessorTable\n"
|
| + "protected com.google.protobuf.GeneratedMessage$ver$.FieldAccessorTable\n"
|
| " internalGetFieldAccessorTable() {\n"
|
| " return $fileclass$.internal_$identifier$_fieldAccessorTable\n"
|
| " .ensureFieldAccessorsInitialized(\n"
|
| @@ -828,7 +844,8 @@ GenerateDescriptorMethods(io::Printer* printer) {
|
| "\n",
|
| "classname", name_resolver_->GetImmutableClassName(descriptor_),
|
| "fileclass", name_resolver_->GetImmutableClassName(descriptor_->file()),
|
| - "identifier", UniqueFileScopeIdentifier(descriptor_));
|
| + "identifier", UniqueFileScopeIdentifier(descriptor_),
|
| + "ver", GeneratedCodeVersionSuffix());
|
| }
|
|
|
| // ===================================================================
|
| @@ -911,7 +928,7 @@ void ImmutableMessageGenerator::GenerateIsInitialized(
|
| case FieldDescriptor::LABEL_REPEATED:
|
| if (IsMapEntry(field->message_type())) {
|
| printer->Print(
|
| - "for ($type$ item : get$name$().values()) {\n"
|
| + "for ($type$ item : get$name$Map().values()) {\n"
|
| " if (!item.isInitialized()) {\n"
|
| " memoizedIsInitialized = 0;\n"
|
| " return false;\n"
|
| @@ -1225,8 +1242,7 @@ GenerateParsingConstructor(io::Printer* printer) {
|
| "default: {\n"
|
| " if (!input.skipField(tag)) {\n"
|
| " done = true;\n" // it's an endgroup tag
|
| - " }\n");
|
| - printer->Print(
|
| + " }\n"
|
| " break;\n"
|
| "}\n");
|
| }
|
|
|