aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/compiler/javanano/javanano_message.cc
diff options
context:
space:
mode:
authorGravatar Jisi Liu <jisi.liu@gmail.com>2015-02-17 18:03:59 -0800
committerGravatar Jisi Liu <jisi.liu@gmail.com>2015-02-19 16:43:07 -0800
commit33222b5a024821df499eaf9060206ea70ebe4574 (patch)
tree9306e0661a19b8a8e270cebaa01f7cb1d4509daf /src/google/protobuf/compiler/javanano/javanano_message.cc
parentf0e08fd4e4c33c87bbfb309b5baa4d6e976ddcc7 (diff)
Initial check in for primitive oneof fields.
Diffstat (limited to 'src/google/protobuf/compiler/javanano/javanano_message.cc')
-rw-r--r--src/google/protobuf/compiler/javanano/javanano_message.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/google/protobuf/compiler/javanano/javanano_message.cc b/src/google/protobuf/compiler/javanano/javanano_message.cc
index da7c656f..75e2573b 100644
--- a/src/google/protobuf/compiler/javanano/javanano_message.cc
+++ b/src/google/protobuf/compiler/javanano/javanano_message.cc
@@ -165,6 +165,20 @@ void MessageGenerator::Generate(io::Printer* printer) {
MessageGenerator(descriptor_->nested_type(i), params_).Generate(printer);
}
+ // oneof
+ map<string, string> vars;
+ for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
+ vars["oneof_name"] = UnderscoresToCamelCase(descriptor_->oneof_decl(i));
+ vars["oneof_capitalized_name"] =
+ UnderscoresToCapitalizedCamelCase(descriptor_->oneof_decl(i));
+ vars["oneof_index"] = SimpleItoa(descriptor_->oneof_decl(i)->index());
+ // oneofCase_ and oneof_
+ printer->Print(vars,
+ "private int $oneof_name$Case_ = 0;\n"
+ "private java.lang.Object $oneof_name$_;\n");
+ // OneofCase enum
+ }
+
// Lazy initialization of otherwise static final fields can help prevent the
// class initializer from being generated. We want to prevent it because it
// stops ProGuard from inlining any methods in this class into call sites and