Use map generator for maps field; skip entry message.
This commit is contained in:
parent
ab74fd1c4b
commit
4a99897c0b
2 changed files with 9 additions and 1 deletions
|
@ -36,6 +36,7 @@
|
|||
#include <google/protobuf/compiler/javanano/javanano_helpers.h>
|
||||
#include <google/protobuf/compiler/javanano/javanano_primitive_field.h>
|
||||
#include <google/protobuf/compiler/javanano/javanano_enum_field.h>
|
||||
#include <google/protobuf/compiler/javanano/javanano_map_field.h>
|
||||
#include <google/protobuf/compiler/javanano/javanano_message_field.h>
|
||||
#include <google/protobuf/stubs/common.h>
|
||||
|
||||
|
@ -97,7 +98,11 @@ FieldGenerator* FieldGeneratorMap::MakeGenerator(const FieldDescriptor* field,
|
|||
if (field->is_repeated()) {
|
||||
switch (java_type) {
|
||||
case JAVATYPE_MESSAGE:
|
||||
return new RepeatedMessageFieldGenerator(field, params);
|
||||
if (IsMapEntry(field->message_type())) {
|
||||
return new MapFieldGenerator(field, params);
|
||||
} else {
|
||||
return new RepeatedMessageFieldGenerator(field, params);
|
||||
}
|
||||
case JAVATYPE_ENUM:
|
||||
return new RepeatedEnumFieldGenerator(field, params);
|
||||
default:
|
||||
|
|
|
@ -90,6 +90,7 @@ void MessageGenerator::GenerateStaticVariables(io::Printer* printer) {
|
|||
// Generate static members for all nested types.
|
||||
for (int i = 0; i < descriptor_->nested_type_count(); i++) {
|
||||
// TODO(kenton): Reuse MessageGenerator objects?
|
||||
if (IsMapEntry(descriptor_->nested_type(i))) continue;
|
||||
MessageGenerator(descriptor_->nested_type(i), params_)
|
||||
.GenerateStaticVariables(printer);
|
||||
}
|
||||
|
@ -100,6 +101,7 @@ void MessageGenerator::GenerateStaticVariableInitializers(
|
|||
// Generate static member initializers for all nested types.
|
||||
for (int i = 0; i < descriptor_->nested_type_count(); i++) {
|
||||
// TODO(kenton): Reuse MessageGenerator objects?
|
||||
if (IsMapEntry(descriptor_->nested_type(i))) continue;
|
||||
MessageGenerator(descriptor_->nested_type(i), params_)
|
||||
.GenerateStaticVariableInitializers(printer);
|
||||
}
|
||||
|
@ -159,6 +161,7 @@ void MessageGenerator::Generate(io::Printer* printer) {
|
|||
}
|
||||
|
||||
for (int i = 0; i < descriptor_->nested_type_count(); i++) {
|
||||
if (IsMapEntry(descriptor_->nested_type(i))) continue;
|
||||
MessageGenerator(descriptor_->nested_type(i), params_).Generate(printer);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue