|
@@ -205,9 +205,10 @@ GenerateFieldAccessorTable(io::Printer* printer, int* bytecode_estimate) {
|
|
} else {
|
|
} else {
|
|
vars["final"] = "";
|
|
vars["final"] = "";
|
|
}
|
|
}
|
|
|
|
+ vars["ver"] = GeneratedCodeVersionSuffix();
|
|
printer->Print(vars,
|
|
printer->Print(vars,
|
|
"$private$static $final$\n"
|
|
"$private$static $final$\n"
|
|
- " com.google.protobuf.GeneratedMessage.FieldAccessorTable\n"
|
|
|
|
|
|
+ " com.google.protobuf.GeneratedMessage$ver$.FieldAccessorTable\n"
|
|
" internal_$identifier$_fieldAccessorTable;\n");
|
|
" internal_$identifier$_fieldAccessorTable;\n");
|
|
|
|
|
|
// 6 bytes per field and oneof
|
|
// 6 bytes per field and oneof
|
|
@@ -220,11 +221,11 @@ GenerateFieldAccessorTableInitializer(io::Printer* printer) {
|
|
int bytecode_estimate = 10;
|
|
int bytecode_estimate = 10;
|
|
printer->Print(
|
|
printer->Print(
|
|
"internal_$identifier$_fieldAccessorTable = new\n"
|
|
"internal_$identifier$_fieldAccessorTable = new\n"
|
|
- " com.google.protobuf.GeneratedMessage.FieldAccessorTable(\n"
|
|
|
|
|
|
+ " com.google.protobuf.GeneratedMessage$ver$.FieldAccessorTable(\n"
|
|
" internal_$identifier$_descriptor,\n"
|
|
" internal_$identifier$_descriptor,\n"
|
|
" new java.lang.String[] { ",
|
|
" new java.lang.String[] { ",
|
|
- "identifier",
|
|
|
|
- UniqueFileScopeIdentifier(descriptor_));
|
|
|
|
|
|
+ "identifier", UniqueFileScopeIdentifier(descriptor_),
|
|
|
|
+ "ver", GeneratedCodeVersionSuffix());
|
|
for (int i = 0; i < descriptor_->field_count(); i++) {
|
|
for (int i = 0; i < descriptor_->field_count(); i++) {
|
|
const FieldDescriptor* field = descriptor_->field(i);
|
|
const FieldDescriptor* field = descriptor_->field(i);
|
|
const FieldGeneratorInfo* info = context_->GetFieldGeneratorInfo(field);
|
|
const FieldGeneratorInfo* info = context_->GetFieldGeneratorInfo(field);
|
|
@@ -254,11 +255,11 @@ void ImmutableMessageGenerator::GenerateInterface(io::Printer* printer) {
|
|
printer->Print(
|
|
printer->Print(
|
|
"public interface $classname$OrBuilder$idend$ extends\n"
|
|
"public interface $classname$OrBuilder$idend$ extends\n"
|
|
" $extra_interfaces$\n"
|
|
" $extra_interfaces$\n"
|
|
- " com.google.protobuf.GeneratedMessage.\n"
|
|
|
|
|
|
+ " com.google.protobuf.GeneratedMessage$ver$.\n"
|
|
" ExtendableMessageOrBuilder<$classname$> {\n",
|
|
" ExtendableMessageOrBuilder<$classname$> {\n",
|
|
"extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
|
|
"extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
|
|
"classname", descriptor_->name(),
|
|
"classname", descriptor_->name(),
|
|
- "idend", "");
|
|
|
|
|
|
+ "idend", "", "ver", GeneratedCodeVersionSuffix());
|
|
} else {
|
|
} else {
|
|
printer->Print(
|
|
printer->Print(
|
|
"public interface $classname$OrBuilder$idend$ extends\n"
|
|
"public interface $classname$OrBuilder$idend$ extends\n"
|
|
@@ -302,6 +303,7 @@ void ImmutableMessageGenerator::Generate(io::Printer* printer) {
|
|
variables["static"] = is_own_file ? " " : " static ";
|
|
variables["static"] = is_own_file ? " " : " static ";
|
|
variables["classname"] = descriptor_->name();
|
|
variables["classname"] = descriptor_->name();
|
|
variables["extra_interfaces"] = ExtraMessageInterfaces(descriptor_);
|
|
variables["extra_interfaces"] = ExtraMessageInterfaces(descriptor_);
|
|
|
|
+ variables["ver"] = GeneratedCodeVersionSuffix();
|
|
|
|
|
|
WriteMessageDocComment(printer, descriptor_);
|
|
WriteMessageDocComment(printer, descriptor_);
|
|
MaybePrintGeneratedAnnotation(context_, printer, descriptor_,
|
|
MaybePrintGeneratedAnnotation(context_, printer, descriptor_,
|
|
@@ -315,22 +317,25 @@ void ImmutableMessageGenerator::Generate(io::Printer* printer) {
|
|
printer->Annotate("classname", descriptor_);
|
|
printer->Annotate("classname", descriptor_);
|
|
printer->Print(
|
|
printer->Print(
|
|
variables,
|
|
variables,
|
|
- " com.google.protobuf.GeneratedMessage.ExtendableMessage<\n"
|
|
|
|
|
|
+ " com.google.protobuf.GeneratedMessage$ver$.ExtendableMessage<\n"
|
|
" $classname$> implements\n"
|
|
" $classname$> implements\n"
|
|
" $extra_interfaces$\n"
|
|
" $extra_interfaces$\n"
|
|
" $classname$OrBuilder {\n");
|
|
" $classname$OrBuilder {\n");
|
|
builder_type = strings::Substitute(
|
|
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 {
|
|
} else {
|
|
printer->Print(variables,
|
|
printer->Print(variables,
|
|
"public $static$final class $classname$ extends\n");
|
|
"public $static$final class $classname$ extends\n");
|
|
printer->Annotate("classname", descriptor_);
|
|
printer->Annotate("classname", descriptor_);
|
|
printer->Print(variables,
|
|
printer->Print(variables,
|
|
- " com.google.protobuf.GeneratedMessage implements\n"
|
|
|
|
|
|
+ " com.google.protobuf.GeneratedMessage$ver$ implements\n"
|
|
" $extra_interfaces$\n"
|
|
" $extra_interfaces$\n"
|
|
" $classname$OrBuilder {\n");
|
|
" $classname$OrBuilder {\n");
|
|
- builder_type = "com.google.protobuf.GeneratedMessage.Builder<?>";
|
|
|
|
|
|
+ builder_type = strings::Substitute(
|
|
|
|
+ "com.google.protobuf.GeneratedMessage$0.Builder<?>",
|
|
|
|
+ GeneratedCodeVersionSuffix());
|
|
}
|
|
}
|
|
printer->Indent();
|
|
printer->Indent();
|
|
// Using builder_type, instead of Builder, prevents the Builder class from
|
|
// Using builder_type, instead of Builder, prevents the Builder class from
|
|
@@ -581,16 +586,18 @@ GenerateMessageSerializationMethods(io::Printer* printer) {
|
|
if (descriptor_->extension_range_count() > 0) {
|
|
if (descriptor_->extension_range_count() > 0) {
|
|
if (descriptor_->options().message_set_wire_format()) {
|
|
if (descriptor_->options().message_set_wire_format()) {
|
|
printer->Print(
|
|
printer->Print(
|
|
- "com.google.protobuf.GeneratedMessage\n"
|
|
|
|
|
|
+ "com.google.protobuf.GeneratedMessage$ver$\n"
|
|
" .ExtendableMessage<$classname$>.ExtensionWriter\n"
|
|
" .ExtendableMessage<$classname$>.ExtensionWriter\n"
|
|
" extensionWriter = newMessageSetExtensionWriter();\n",
|
|
" extensionWriter = newMessageSetExtensionWriter();\n",
|
|
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
|
|
|
|
|
|
+ "classname", name_resolver_->GetImmutableClassName(descriptor_),
|
|
|
|
+ "ver", GeneratedCodeVersionSuffix());
|
|
} else {
|
|
} else {
|
|
printer->Print(
|
|
printer->Print(
|
|
- "com.google.protobuf.GeneratedMessage\n"
|
|
|
|
|
|
+ "com.google.protobuf.GeneratedMessage$ver$\n"
|
|
" .ExtendableMessage<$classname$>.ExtensionWriter\n"
|
|
" .ExtendableMessage<$classname$>.ExtensionWriter\n"
|
|
" extensionWriter = newExtensionWriter();\n",
|
|
" extensionWriter = newExtensionWriter();\n",
|
|
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
|
|
|
|
|
|
+ "classname", name_resolver_->GetImmutableClassName(descriptor_),
|
|
|
|
+ "ver", GeneratedCodeVersionSuffix());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -694,43 +701,44 @@ GenerateParseFromMethods(io::Printer* printer) {
|
|
"}\n"
|
|
"}\n"
|
|
"public static $classname$ parseFrom(java.io.InputStream input)\n"
|
|
"public static $classname$ parseFrom(java.io.InputStream input)\n"
|
|
" throws java.io.IOException {\n"
|
|
" throws java.io.IOException {\n"
|
|
- " return com.google.protobuf.GeneratedMessage\n"
|
|
|
|
|
|
+ " return com.google.protobuf.GeneratedMessage$ver$\n"
|
|
" .parseWithIOException(PARSER, input);\n"
|
|
" .parseWithIOException(PARSER, input);\n"
|
|
"}\n"
|
|
"}\n"
|
|
"public static $classname$ parseFrom(\n"
|
|
"public static $classname$ parseFrom(\n"
|
|
" java.io.InputStream input,\n"
|
|
" java.io.InputStream input,\n"
|
|
" com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
|
|
" com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
|
|
" throws java.io.IOException {\n"
|
|
" throws java.io.IOException {\n"
|
|
- " return com.google.protobuf.GeneratedMessage\n"
|
|
|
|
|
|
+ " return com.google.protobuf.GeneratedMessage$ver$\n"
|
|
" .parseWithIOException(PARSER, input, extensionRegistry);\n"
|
|
" .parseWithIOException(PARSER, input, extensionRegistry);\n"
|
|
"}\n"
|
|
"}\n"
|
|
"public static $classname$ parseDelimitedFrom(java.io.InputStream input)\n"
|
|
"public static $classname$ parseDelimitedFrom(java.io.InputStream input)\n"
|
|
" throws java.io.IOException {\n"
|
|
" throws java.io.IOException {\n"
|
|
- " return com.google.protobuf.GeneratedMessage\n"
|
|
|
|
|
|
+ " return com.google.protobuf.GeneratedMessage$ver$\n"
|
|
" .parseDelimitedWithIOException(PARSER, input);\n"
|
|
" .parseDelimitedWithIOException(PARSER, input);\n"
|
|
"}\n"
|
|
"}\n"
|
|
"public static $classname$ parseDelimitedFrom(\n"
|
|
"public static $classname$ parseDelimitedFrom(\n"
|
|
" java.io.InputStream input,\n"
|
|
" java.io.InputStream input,\n"
|
|
" com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
|
|
" com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
|
|
" throws java.io.IOException {\n"
|
|
" throws java.io.IOException {\n"
|
|
- " return com.google.protobuf.GeneratedMessage\n"
|
|
|
|
|
|
+ " return com.google.protobuf.GeneratedMessage$ver$\n"
|
|
" .parseDelimitedWithIOException(PARSER, input, extensionRegistry);\n"
|
|
" .parseDelimitedWithIOException(PARSER, input, extensionRegistry);\n"
|
|
"}\n"
|
|
"}\n"
|
|
"public static $classname$ parseFrom(\n"
|
|
"public static $classname$ parseFrom(\n"
|
|
" com.google.protobuf.CodedInputStream input)\n"
|
|
" com.google.protobuf.CodedInputStream input)\n"
|
|
" throws java.io.IOException {\n"
|
|
" throws java.io.IOException {\n"
|
|
- " return com.google.protobuf.GeneratedMessage\n"
|
|
|
|
|
|
+ " return com.google.protobuf.GeneratedMessage$ver$\n"
|
|
" .parseWithIOException(PARSER, input);\n"
|
|
" .parseWithIOException(PARSER, input);\n"
|
|
"}\n"
|
|
"}\n"
|
|
"public static $classname$ parseFrom(\n"
|
|
"public static $classname$ parseFrom(\n"
|
|
" com.google.protobuf.CodedInputStream input,\n"
|
|
" com.google.protobuf.CodedInputStream input,\n"
|
|
" com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
|
|
" com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
|
|
" throws java.io.IOException {\n"
|
|
" throws java.io.IOException {\n"
|
|
- " return com.google.protobuf.GeneratedMessage\n"
|
|
|
|
|
|
+ " return com.google.protobuf.GeneratedMessage$ver$\n"
|
|
" .parseWithIOException(PARSER, input, extensionRegistry);\n"
|
|
" .parseWithIOException(PARSER, input, extensionRegistry);\n"
|
|
"}\n"
|
|
"}\n"
|
|
"\n",
|
|
"\n",
|
|
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
|
|
|
|
|
|
+ "classname", name_resolver_->GetImmutableClassName(descriptor_),
|
|
|
|
+ "ver", GeneratedCodeVersionSuffix());
|
|
}
|
|
}
|
|
|
|
|
|
void ImmutableMessageGenerator::GenerateSerializeOneField(
|
|
void ImmutableMessageGenerator::GenerateSerializeOneField(
|
|
@@ -769,10 +777,11 @@ void ImmutableMessageGenerator::GenerateBuilder(io::Printer* printer) {
|
|
printer->Print(
|
|
printer->Print(
|
|
"@java.lang.Override\n"
|
|
"@java.lang.Override\n"
|
|
"protected Builder newBuilderForType(\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"
|
|
" Builder builder = new Builder(parent);\n"
|
|
" return builder;\n"
|
|
" return builder;\n"
|
|
- "}\n");
|
|
|
|
|
|
+ "}\n",
|
|
|
|
+ "ver", GeneratedCodeVersionSuffix());
|
|
|
|
|
|
MessageBuilderGenerator builderGenerator(descriptor_, context_);
|
|
MessageBuilderGenerator builderGenerator(descriptor_, context_);
|
|
builderGenerator.Generate(printer);
|
|
builderGenerator.Generate(printer);
|
|
@@ -826,7 +835,7 @@ GenerateDescriptorMethods(io::Printer* printer) {
|
|
"}\n");
|
|
"}\n");
|
|
}
|
|
}
|
|
printer->Print(
|
|
printer->Print(
|
|
- "protected com.google.protobuf.GeneratedMessage.FieldAccessorTable\n"
|
|
|
|
|
|
+ "protected com.google.protobuf.GeneratedMessage$ver$.FieldAccessorTable\n"
|
|
" internalGetFieldAccessorTable() {\n"
|
|
" internalGetFieldAccessorTable() {\n"
|
|
" return $fileclass$.internal_$identifier$_fieldAccessorTable\n"
|
|
" return $fileclass$.internal_$identifier$_fieldAccessorTable\n"
|
|
" .ensureFieldAccessorsInitialized(\n"
|
|
" .ensureFieldAccessorsInitialized(\n"
|
|
@@ -835,7 +844,8 @@ GenerateDescriptorMethods(io::Printer* printer) {
|
|
"\n",
|
|
"\n",
|
|
"classname", name_resolver_->GetImmutableClassName(descriptor_),
|
|
"classname", name_resolver_->GetImmutableClassName(descriptor_),
|
|
"fileclass", name_resolver_->GetImmutableClassName(descriptor_->file()),
|
|
"fileclass", name_resolver_->GetImmutableClassName(descriptor_->file()),
|
|
- "identifier", UniqueFileScopeIdentifier(descriptor_));
|
|
|
|
|
|
+ "identifier", UniqueFileScopeIdentifier(descriptor_),
|
|
|
|
+ "ver", GeneratedCodeVersionSuffix());
|
|
}
|
|
}
|
|
|
|
|
|
// ===================================================================
|
|
// ===================================================================
|