1a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// Protocol Buffers - Google's data interchange format 2a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// Copyright 2008 Google Inc. All rights reserved. 3afb4b72037e3f13db208590fc782c4bc8e27f862Jeff Davidson// https://developers.google.com/protocol-buffers/ 4a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// 5a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// Redistribution and use in source and binary forms, with or without 6a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// modification, are permitted provided that the following conditions are 7a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// met: 8a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// 9a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// * Redistributions of source code must retain the above copyright 10a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// notice, this list of conditions and the following disclaimer. 11a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// * Redistributions in binary form must reproduce the above 12a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// copyright notice, this list of conditions and the following disclaimer 13a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// in the documentation and/or other materials provided with the 14a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// distribution. 15a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// * Neither the name of Google Inc. nor the names of its 16a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// contributors may be used to endorse or promote products derived from 17a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// this software without specific prior written permission. 18a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// 19a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 31a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// Author: niwasaki@google.com (Naoki Iwasaki) 32a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// Based on original Protocol Buffers design by 33a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// Sanjay Ghemawat, Jeff Dean, and others. 34a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 35a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson#include <google/protobuf/compiler/java/java_context.h> 36a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson#include <google/protobuf/compiler/java/java_lazy_message_field.h> 37a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson#include <google/protobuf/compiler/java/java_doc_comment.h> 38a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson#include <google/protobuf/compiler/java/java_helpers.h> 39a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson#include <google/protobuf/io/printer.h> 40a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 41a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonnamespace google { 42a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonnamespace protobuf { 43a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonnamespace compiler { 44a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonnamespace java { 45a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 46a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonImmutableLazyMessageFieldGenerator:: 47a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonImmutableLazyMessageFieldGenerator( 48a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson const FieldDescriptor* descriptor, 49a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson int messageBitIndex, 50a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson int builderBitIndex, 51a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson Context* context) 52a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson : ImmutableMessageFieldGenerator( 53a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson descriptor, messageBitIndex, builderBitIndex, context) { 54a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 55a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 56a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonImmutableLazyMessageFieldGenerator::~ImmutableLazyMessageFieldGenerator() {} 57a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 58a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageFieldGenerator:: 59a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateMembers(io::Printer* printer) const { 60a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 61a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "private com.google.protobuf.LazyFieldLite $name$_ =\n" 62a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " new com.google.protobuf.LazyFieldLite();\n"); 63a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 64a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintExtraFieldInfo(variables_, printer); 65a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 66a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 67a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public boolean has$capitalized_name$() {\n" 68a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return $get_has_field_bit_message$;\n" 69a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 70a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 71a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 72a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 73a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public $type$ get$capitalized_name$() {\n" 74a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return ($type$) $name$_.getValue($type$.getDefaultInstance());\n" 75b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "}\n"); 76b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer WriteFieldDocComment(printer, descriptor_); 77b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer printer->Print(variables_, 78b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder() {\n" 79b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return $name$_;\n" 80b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "}\n"); 81a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 82a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 83a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageFieldGenerator:: 84a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateBuilderMembers(io::Printer* printer) const { 85a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // When using nested-builders, the code initially works just like the 86a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // non-nested builder case. It only creates a nested builder lazily on 87a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // demand and then forever delegates to it after creation. 88a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 89a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 90a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "private com.google.protobuf.LazyFieldLite $name$_ =\n" 91a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " new com.google.protobuf.LazyFieldLite();\n"); 92a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 93b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer printer->Print(variables_, 94b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // If this builder is non-null, it is used and the other fields are 95b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // ignored. 96b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "private com.google.protobuf.SingleFieldBuilder<\n" 97b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $type$, $type$.Builder, $type$OrBuilder> $name$Builder_;" 98b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "\n"); 99a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 100a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // The comments above the methods below are based on a hypothetical 101a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // field of type "Field" called "Field". 102a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 103a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // boolean hasField() 104a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 105a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 106a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public boolean has$capitalized_name$() {\n" 107a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return $get_has_field_bit_builder$;\n" 108a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 109a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 110a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 111a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public $type$ get$capitalized_name$() {\n" 112a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return ($type$) $name$_.getValue($type$.getDefaultInstance());\n" 113a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 114a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 115a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Field.Builder setField(Field value) 116a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 117a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 118a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder set$capitalized_name$($type$ value)", 119a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 120a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if (value == null) {\n" 121a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " throw new NullPointerException();\n" 122a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 123a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_.setValue(value);\n" 124a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 125a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 126a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson NULL, // Lazy fields are supported only for lite-runtime. 127a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 128a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$set_has_field_bit_builder$;\n" 129a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 130a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 131a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Field.Builder setField(Field.Builder builderForValue) 132a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 133a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 134a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder set$capitalized_name$(\n" 135a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $type$.Builder builderForValue)", 136a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 137a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_.setValue(builderForValue.build());\n" 138a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 139a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 140a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson NULL, 141a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 142a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$set_has_field_bit_builder$;\n" 143a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 144a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 145a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Field.Builder mergeField(Field value) 146a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 147a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 148a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder merge$capitalized_name$($type$ value)", 149a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 150a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if ($get_has_field_bit_builder$ &&\n" 151a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " !$name$_.containsDefaultInstance()) {\n" 152a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $name$_.setValue(\n" 153a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $type$.newBuilder(\n" 154a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " get$capitalized_name$()).mergeFrom(value).buildPartial());\n" 155a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "} else {\n" 156a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $name$_.setValue(value);\n" 157a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 158a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 159a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 160a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson NULL, 161a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 162a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$set_has_field_bit_builder$;\n" 163a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 164a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 165a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Field.Builder clearField() 166a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 167a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 168a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder clear$capitalized_name$()", 169a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 170a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_.clear();\n" 171a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 172a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 173a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson NULL, 174a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 175a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$clear_has_field_bit_builder$;\n" 176a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 177a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 178b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer WriteFieldDocComment(printer, descriptor_); 179b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer printer->Print(variables_, 180b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "$deprecation$public $type$.Builder get$capitalized_name$Builder() {\n" 181b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $set_has_field_bit_builder$;\n" 182b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $on_changed$\n" 183b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return get$capitalized_name$FieldBuilder().getBuilder();\n" 184b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "}\n"); 185b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer WriteFieldDocComment(printer, descriptor_); 186b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer printer->Print(variables_, 187b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder() {\n" 188b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " if ($name$Builder_ != null) {\n" 189b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return $name$Builder_.getMessageOrBuilder();\n" 190b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " } else {\n" 191b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return $name$_;\n" 192b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " }\n" 193b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "}\n"); 194b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer WriteFieldDocComment(printer, descriptor_); 195b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer printer->Print(variables_, 196b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "private com.google.protobuf.SingleFieldBuilder<\n" 197b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $type$, $type$.Builder, $type$OrBuilder> \n" 198b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " get$capitalized_name$FieldBuilder() {\n" 199b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " if ($name$Builder_ == null) {\n" 200b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $name$Builder_ = new com.google.protobuf.SingleFieldBuilder<\n" 201b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $type$, $type$.Builder, $type$OrBuilder>(\n" 202b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $name$_,\n" 203b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " getParentForChildren(),\n" 204b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " isClean());\n" 205b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $name$_ = null;\n" 206b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " }\n" 207b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return $name$Builder_;\n" 208b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "}\n"); 209a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 210a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 211a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 212a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageFieldGenerator:: 213a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateInitializationCode(io::Printer* printer) const { 214a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, "$name$_.clear();\n"); 215a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 216a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 217a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageFieldGenerator:: 218a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateBuilderClearCode(io::Printer* printer) const { 219a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, "$name$_.clear();\n"); 220a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, "$clear_has_field_bit_builder$;\n"); 221a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 222a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 223a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageFieldGenerator:: 224a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateMergingCode(io::Printer* printer) const { 225a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 226a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if (other.has$capitalized_name$()) {\n" 227a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $name$_.merge(other.$name$_);\n" 228a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $set_has_field_bit_builder$;\n" 229a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 230a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 231a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 232a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageFieldGenerator:: 233a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateBuildingCode(io::Printer* printer) const { 234a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 235a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if ($get_has_field_bit_from_local$) {\n" 236a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $set_has_field_bit_to_local$;\n" 237a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 238a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 239a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 240b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "result.$name$_.set(\n" 241b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $name$_);\n"); 242a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 243a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 244a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageFieldGenerator:: 245a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateParsingCode(io::Printer* printer) const { 246a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 247a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_.setByteString(input.readBytes(), extensionRegistry);\n"); 248a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 249a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$set_has_field_bit_message$;\n"); 250a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 251a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 252a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageFieldGenerator:: 253a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateSerializationCode(io::Printer* printer) const { 254a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Do not de-serialize lazy fields. 255a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 256a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if ($get_has_field_bit_message$) {\n" 257a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " output.writeBytes($number$, $name$_.toByteString());\n" 258a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 259a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 260a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 261a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageFieldGenerator:: 262a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateSerializedSizeCode(io::Printer* printer) const { 263a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 264a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if ($get_has_field_bit_message$) {\n" 265a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " size += com.google.protobuf.CodedOutputStream\n" 266a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " .computeLazyFieldSize($number$, $name$_);\n" 267a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 268a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 269a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 270a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// =================================================================== 271a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 272a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonImmutableLazyMessageOneofFieldGenerator:: 273a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonImmutableLazyMessageOneofFieldGenerator(const FieldDescriptor* descriptor, 274a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson int messageBitIndex, 275a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson int builderBitIndex, 276a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson Context* context) 277a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson : ImmutableLazyMessageFieldGenerator( 278a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson descriptor, messageBitIndex, builderBitIndex, context) { 279a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson const OneofGeneratorInfo* info = 280a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson context->GetOneofGeneratorInfo(descriptor->containing_oneof()); 281a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson SetCommonOneofVariables(descriptor, info, &variables_); 282a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson variables_["lazy_type"] = "com.google.protobuf.LazyFieldLite"; 283a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 284a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 285a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonImmutableLazyMessageOneofFieldGenerator:: 286a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson~ImmutableLazyMessageOneofFieldGenerator() {} 287a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 288a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageOneofFieldGenerator:: 289a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateMembers(io::Printer* printer) const { 290a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintExtraFieldInfo(variables_, printer); 291a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 292a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 293a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 294a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public boolean has$capitalized_name$() {\n" 295a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return $has_oneof_case_message$;\n" 296a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 297a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 298a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 299a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 300a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public $type$ get$capitalized_name$() {\n" 301a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " if ($has_oneof_case_message$) {\n" 302a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return ($type$) (($lazy_type$) $oneof_name$_).getValue(\n" 303a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $type$.getDefaultInstance());\n" 304a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " }\n" 305a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return $type$.getDefaultInstance();\n" 306a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 307a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 308a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 309a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageOneofFieldGenerator:: 310a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateBuilderMembers(io::Printer* printer) const { 311a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // boolean hasField() 312a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 313a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 314a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public boolean has$capitalized_name$() {\n" 315a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return $has_oneof_case_message$;\n" 316a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 317a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 318a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 319a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public $type$ get$capitalized_name$() {\n" 320a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " if ($has_oneof_case_message$) {\n" 321a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return ($type$) (($lazy_type$) $oneof_name$_).getValue(\n" 322a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $type$.getDefaultInstance());\n" 323a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " }\n" 324a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return $type$.getDefaultInstance();\n" 325a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 326a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 327a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Field.Builder setField(Field value) 328a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 329a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 330a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder set$capitalized_name$($type$ value)", 331a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 332a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if (value == null) {\n" 333a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " throw new NullPointerException();\n" 334a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 335a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if (!($has_oneof_case_message$)) {\n" 336a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $oneof_name$_ = new $lazy_type$();\n" 337a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $set_oneof_case_message$;\n" 338a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 339a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "(($lazy_type$) $oneof_name$_).setValue(value);\n" 340a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 341a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 342a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson NULL, // Lazy fields are supported only for lite-runtime. 343a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 344a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 345a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 346a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Field.Builder setField(Field.Builder builderForValue) 347a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 348a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 349a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder set$capitalized_name$(\n" 350a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $type$.Builder builderForValue)", 351a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 352a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if (!($has_oneof_case_message$)) {\n" 353a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $oneof_name$_ = new $lazy_type$();\n" 354a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $set_oneof_case_message$;\n" 355a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 356a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "(($lazy_type$) $oneof_name$_).setValue(builderForValue.build());\n" 357a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 358a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 359a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson NULL, 360a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 361a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 362a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 363a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Field.Builder mergeField(Field value) 364a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 365a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 366a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder merge$capitalized_name$($type$ value)", 367a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 368a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if ($has_oneof_case_message$ &&\n" 369a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " !(($lazy_type$) $oneof_name$_).containsDefaultInstance()) {\n" 370a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " (($lazy_type$) $oneof_name$_).setValue(\n" 371a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $type$.newBuilder(\n" 372a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " get$capitalized_name$()).mergeFrom(value).buildPartial());\n" 373a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "} else {\n" 374a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " if (!($has_oneof_case_message$)) {\n" 375a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $oneof_name$_ = new $lazy_type$();\n" 376a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $set_oneof_case_message$;\n" 377a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " }\n" 378a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " (($lazy_type$) $oneof_name$_).setValue(value);\n" 379a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 380a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 381a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 382a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson NULL, 383a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 384a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 385a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 386a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Field.Builder clearField() 387a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 388a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 389a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder clear$capitalized_name$()", 390a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 391a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if ($has_oneof_case_message$) {\n" 392a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $clear_oneof_case_message$;\n" 393a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $oneof_name$_ = null;\n" 394a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $on_changed$\n" 395a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n", 396a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 397a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson NULL, 398a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 399a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 400a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 401a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 402a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageOneofFieldGenerator:: 403a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateMergingCode(io::Printer* printer) const { 404a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 405a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if (!($has_oneof_case_message$)) {\n" 406a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $oneof_name$_ = new $lazy_type$();\n" 407a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 408a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "(($lazy_type$) $oneof_name$_).merge(\n" 409a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " ($lazy_type$) other.$oneof_name$_);\n" 410a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$set_oneof_case_message$;\n"); 411a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 412a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 413a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageOneofFieldGenerator:: 414a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateBuildingCode(io::Printer* printer) const { 415a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 416a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if ($has_oneof_case_message$) {\n"); 417a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Indent(); 418a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 419a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 420a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "result.$oneof_name$_ = new $lazy_type$();\n" 421b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "(($lazy_type$) result.$oneof_name$_).set(\n" 422b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " (($lazy_type$) $oneof_name$_));\n"); 423a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Outdent(); 424a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print("}\n"); 425a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 426a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 427a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageOneofFieldGenerator:: 428a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateParsingCode(io::Printer* printer) const { 429a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 430a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if (!($has_oneof_case_message$)) {\n" 431a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $oneof_name$_ = new $lazy_type$();\n" 432a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 433a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "(($lazy_type$) $oneof_name$_).setByteString(\n" 434a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " input.readBytes(), extensionRegistry);\n" 435a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$set_oneof_case_message$;\n"); 436a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 437a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 438a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageOneofFieldGenerator:: 439a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateSerializationCode(io::Printer* printer) const { 440a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Do not de-serialize lazy fields. 441a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 442a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if ($has_oneof_case_message$) {\n" 443a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " output.writeBytes(\n" 444a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $number$, (($lazy_type$) $oneof_name$_).toByteString());\n" 445a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 446a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 447a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 448a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid ImmutableLazyMessageOneofFieldGenerator:: 449a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateSerializedSizeCode(io::Printer* printer) const { 450a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 451a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if ($has_oneof_case_message$) {\n" 452a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " size += com.google.protobuf.CodedOutputStream\n" 453a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " .computeLazyFieldSize($number$, ($lazy_type$) $oneof_name$_);\n" 454a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 455a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 456a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 457a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson// =================================================================== 458a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 459a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonRepeatedImmutableLazyMessageFieldGenerator:: 460a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonRepeatedImmutableLazyMessageFieldGenerator( 461a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson const FieldDescriptor* descriptor, 462a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson int messageBitIndex, 463a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson int builderBitIndex, 464a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson Context* context) 465a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson : RepeatedImmutableMessageFieldGenerator( 466a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson descriptor, messageBitIndex, builderBitIndex, context) { 467a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 468a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 469a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 470a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonRepeatedImmutableLazyMessageFieldGenerator:: 471a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson~RepeatedImmutableLazyMessageFieldGenerator() {} 472a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 473a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid RepeatedImmutableLazyMessageFieldGenerator:: 474a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateMembers(io::Printer* printer) const { 475a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 476a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "private java.util.List<com.google.protobuf.LazyFieldLite> $name$_;\n"); 477a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintExtraFieldInfo(variables_, printer); 478a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 479a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 480a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public java.util.List<$type$>\n" 481a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " get$capitalized_name$List() {\n" 482a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " java.util.List<$type$> list =\n" 483a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " new java.util.ArrayList<$type$>($name$_.size());\n" 484a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " for (com.google.protobuf.LazyFieldLite lf : $name$_) {\n" 485a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " list.add(($type$) lf.getValue($type$.getDefaultInstance()));\n" 486a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " }\n" 487a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return list;\n" 488a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 489a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 490a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 491a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public java.util.List<? extends $type$OrBuilder>\n" 492a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " get$capitalized_name$OrBuilderList() {\n" 493a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return get$capitalized_name$List();\n" 494a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 495a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 496a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 497a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public int get$capitalized_name$Count() {\n" 498a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return $name$_.size();\n" 499a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 500a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 501a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 502a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public $type$ get$capitalized_name$(int index) {\n" 503a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return ($type$)\n" 504a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $name$_.get(index).getValue($type$.getDefaultInstance());\n" 505a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 506a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 507a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 508a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder(\n" 509a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " int index) {\n" 510a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " return ($type$OrBuilder)\n" 511a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $name$_.get(index).getValue($type$.getDefaultInstance());\n" 512a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 513a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 514a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 515a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid RepeatedImmutableLazyMessageFieldGenerator:: 516a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateBuilderMembers(io::Printer* printer) const { 517a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // When using nested-builders, the code initially works just like the 518a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // non-nested builder case. It only creates a nested builder lazily on 519a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // demand and then forever delegates to it after creation. 520a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 521a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 522a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "private java.util.List<com.google.protobuf.LazyFieldLite> $name$_ =\n" 523a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " java.util.Collections.emptyList();\n" 524a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 525a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "private void ensure$capitalized_name$IsMutable() {\n" 526a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " if (!$get_mutable_bit_builder$) {\n" 527a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $name$_ =\n" 528a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " new java.util.ArrayList<com.google.protobuf.LazyFieldLite>(\n" 529a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $name$_);\n" 530a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $set_mutable_bit_builder$;\n" 531a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " }\n" 532a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 533a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "\n"); 534a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 535b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer printer->Print(variables_, 536b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // If this builder is non-null, it is used and the other fields are 537b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // ignored. 538b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "private com.google.protobuf.RepeatedFieldBuilder<\n" 539b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $type$, $type$.Builder, $type$OrBuilder> $name$Builder_;\n" 540b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "\n"); 541a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 542a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // The comments above the methods below are based on a hypothetical 543a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // repeated field of type "Field" called "RepeatedField". 544a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 545a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // List<Field> getRepeatedFieldList() 546a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 547a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 548a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public java.util.List<$type$> get$capitalized_name$List()", 549a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 550a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "java.util.List<$type$> list =\n" 551a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " new java.util.ArrayList<$type$>($name$_.size());\n" 552a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "for (com.google.protobuf.LazyFieldLite lf : $name$_) {\n" 553a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " list.add(($type$) lf.getValue($type$.getDefaultInstance()));\n" 554a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 555a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return java.util.Collections.unmodifiableList(list);\n", 556a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 557a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return $name$Builder_.getMessageList();\n", 558a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 559a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson NULL); 560a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 561a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // int getRepeatedFieldCount() 562a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 563a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 564a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public int get$capitalized_name$Count()", 565a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 566a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return $name$_.size();\n", 567a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return $name$Builder_.getCount();\n", 568a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 569a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson NULL); 570a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 571a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Field getRepeatedField(int index) 572a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 573a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 574a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public $type$ get$capitalized_name$(int index)", 575a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 576a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return ($type$) $name$_.get(index).getValue(\n" 577a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $type$.getDefaultInstance());\n", 578a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 579a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return $name$Builder_.getMessage(index);\n", 580a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 581a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson NULL); 582a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 583a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Builder setRepeatedField(int index, Field value) 584a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 585a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 586a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder set$capitalized_name$(\n" 587a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " int index, $type$ value)", 588a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if (value == null) {\n" 589a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " throw new NullPointerException();\n" 590a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 591a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "ensure$capitalized_name$IsMutable();\n" 592a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_.set(index, com.google.protobuf.LazyFieldLite.fromValue(value));\n" 593a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 594a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$Builder_.setMessage(index, value);\n", 595a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 596a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 597a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Builder setRepeatedField(int index, Field.Builder builderForValue) 598a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 599a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 600a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder set$capitalized_name$(\n" 601a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " int index, $type$.Builder builderForValue)", 602a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 603a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "ensure$capitalized_name$IsMutable();\n" 604a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_.set(index, com.google.protobuf.LazyFieldLite.fromValue(\n" 605a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " builderForValue.build()));\n" 606a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 607a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 608a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$Builder_.setMessage(index, builderForValue.build());\n", 609a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 610a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 611a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 612a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Builder addRepeatedField(Field value) 613a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 614a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 615a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder add$capitalized_name$($type$ value)", 616a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 617a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if (value == null) {\n" 618a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " throw new NullPointerException();\n" 619a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 620a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "ensure$capitalized_name$IsMutable();\n" 621a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_.add(com.google.protobuf.LazyFieldLite.fromValue(value));\n" 622a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 623a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 624a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 625a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$Builder_.addMessage(value);\n", 626a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 627a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 628a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 629a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Builder addRepeatedField(int index, Field value) 630a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 631a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 632a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder add$capitalized_name$(\n" 633a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " int index, $type$ value)", 634a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 635a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if (value == null) {\n" 636a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " throw new NullPointerException();\n" 637a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 638a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "ensure$capitalized_name$IsMutable();\n" 639a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_.add(index, com.google.protobuf.LazyFieldLite.fromValue(value));\n" 640a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 641a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 642a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$Builder_.addMessage(index, value);\n", 643a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 644a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 645a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 646a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Builder addRepeatedField(Field.Builder builderForValue) 647a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 648a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 649a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder add$capitalized_name$(\n" 650a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $type$.Builder builderForValue)", 651a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 652a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "ensure$capitalized_name$IsMutable();\n" 653a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_.add(com.google.protobuf.LazyFieldLite.fromValue(\n" 654a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " builderForValue.build()));\n" 655a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 656a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 657a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$Builder_.addMessage(builderForValue.build());\n", 658a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 659a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 660a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 661a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Builder addRepeatedField(int index, Field.Builder builderForValue) 662a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 663a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 664a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder add$capitalized_name$(\n" 665a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " int index, $type$.Builder builderForValue)", 666a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 667a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "ensure$capitalized_name$IsMutable();\n" 668a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_.add(index, com.google.protobuf.LazyFieldLite.fromValue(\n" 669a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " builderForValue.build()));\n" 670a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 671a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 672a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$Builder_.addMessage(index, builderForValue.build());\n", 673a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 674a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 675a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 676a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Builder addAllRepeatedField(Iterable<Field> values) 677a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 678a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 679a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder addAll$capitalized_name$(\n" 680a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " java.lang.Iterable<? extends $type$> values)", 681a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 682a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "ensure$capitalized_name$IsMutable();\n" 683a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "for (com.google.protobuf.MessageLite v : values) {\n" 684a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $name$_.add(com.google.protobuf.LazyFieldLite.fromValue(v));\n" 685a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 686a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 687a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 688a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$Builder_.addAllMessages(values);\n", 689a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 690a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 691a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 692a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Builder clearAllRepeatedField() 693a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 694a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 695a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder clear$capitalized_name$()", 696a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 697a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_ = java.util.Collections.emptyList();\n" 698a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$clear_mutable_bit_builder$;\n" 699a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 700a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 701a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$Builder_.clear();\n", 702a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 703a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 704a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 705a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson // Builder removeRepeatedField(int index) 706a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson WriteFieldDocComment(printer, descriptor_); 707a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson PrintNestedBuilderFunction(printer, 708a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$deprecation$public Builder remove$capitalized_name$(int index)", 709a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 710a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "ensure$capitalized_name$IsMutable();\n" 711a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_.remove(index);\n" 712a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$on_changed$\n", 713a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 714a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$Builder_.remove(index);\n", 715a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 716a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "return this;\n"); 717a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 718b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer WriteFieldDocComment(printer, descriptor_); 719b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer printer->Print(variables_, 720b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "$deprecation$public $type$.Builder get$capitalized_name$Builder(\n" 721b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " int index) {\n" 722b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return get$capitalized_name$FieldBuilder().getBuilder(index);\n" 723b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "}\n"); 724a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 725b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer WriteFieldDocComment(printer, descriptor_); 726b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer printer->Print(variables_, 727b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder(\n" 728b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " int index) {\n" 729b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " if ($name$Builder_ == null) {\n" 730b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return $name$_.get(index);" 731b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " } else {\n" 732b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return $name$Builder_.getMessageOrBuilder(index);\n" 733b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " }\n" 734b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "}\n"); 735a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 736b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer WriteFieldDocComment(printer, descriptor_); 737b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer printer->Print(variables_, 738b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "$deprecation$public java.util.List<? extends $type$OrBuilder> \n" 739b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " get$capitalized_name$OrBuilderList() {\n" 740b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " if ($name$Builder_ != null) {\n" 741b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return $name$Builder_.getMessageOrBuilderList();\n" 742b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " } else {\n" 743b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return java.util.Collections.unmodifiableList($name$_);\n" 744b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " }\n" 745b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "}\n"); 746a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 747b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer WriteFieldDocComment(printer, descriptor_); 748b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer printer->Print(variables_, 749b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "$deprecation$public $type$.Builder add$capitalized_name$Builder() {\n" 750b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return get$capitalized_name$FieldBuilder().addBuilder(\n" 751b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $type$.getDefaultInstance());\n" 752b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "}\n"); 753b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer WriteFieldDocComment(printer, descriptor_); 754b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer printer->Print(variables_, 755b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "$deprecation$public $type$.Builder add$capitalized_name$Builder(\n" 756b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " int index) {\n" 757b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return get$capitalized_name$FieldBuilder().addBuilder(\n" 758b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " index, $type$.getDefaultInstance());\n" 759b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "}\n"); 760b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer WriteFieldDocComment(printer, descriptor_); 761b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer printer->Print(variables_, 762b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "$deprecation$public java.util.List<$type$.Builder> \n" 763b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " get$capitalized_name$BuilderList() {\n" 764b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return get$capitalized_name$FieldBuilder().getBuilderList();\n" 765b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "}\n" 766b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "private com.google.protobuf.RepeatedFieldBuilder<\n" 767b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $type$, $type$.Builder, $type$OrBuilder> \n" 768b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " get$capitalized_name$FieldBuilder() {\n" 769b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " if ($name$Builder_ == null) {\n" 770b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $name$Builder_ = new com.google.protobuf.RepeatedFieldBuilder<\n" 771b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $type$, $type$.Builder, $type$OrBuilder>(\n" 772b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $name$_,\n" 773b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $get_mutable_bit_builder$,\n" 774b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " getParentForChildren(),\n" 775b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " isClean());\n" 776b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " $name$_ = null;\n" 777b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " }\n" 778b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer " return $name$Builder_;\n" 779b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer "}\n"); 780a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 781a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 782a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid RepeatedImmutableLazyMessageFieldGenerator:: 783a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateParsingCode(io::Printer* printer) const { 784a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 785a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "if (!$get_mutable_bit_parser$) {\n" 786a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $name$_ =\n" 787a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " new java.util.ArrayList<com.google.protobuf.LazyFieldLite>();\n" 788a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " $set_mutable_bit_parser$;\n" 789a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n" 790a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "$name$_.add(new com.google.protobuf.LazyFieldLite(\n" 791a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " extensionRegistry, input.readBytes()));\n"); 792a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 793a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 794a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid RepeatedImmutableLazyMessageFieldGenerator:: 795a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateSerializationCode(io::Printer* printer) const { 796a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 797a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "for (int i = 0; i < $name$_.size(); i++) {\n" 798a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " output.writeBytes($number$, $name$_.get(i).toByteString());\n" 799a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 800a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 801a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 802a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidsonvoid RepeatedImmutableLazyMessageFieldGenerator:: 803a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff DavidsonGenerateSerializedSizeCode(io::Printer* printer) const { 804a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson printer->Print(variables_, 805a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "for (int i = 0; i < $name$_.size(); i++) {\n" 806a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " size += com.google.protobuf.CodedOutputStream\n" 807a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson " .computeLazyFieldSize($number$, $name$_.get(i));\n" 808a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson "}\n"); 809a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} 810a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson 811a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} // namespace java 812a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} // namespace compiler 813a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} // namespace protobuf 814a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson} // namespace google 815