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