DynamicMessage.java
Go to the documentation of this file.
1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 // * Redistributions in binary form must reproduce the above
12 // copyright notice, this list of conditions and the following disclaimer
13 // in the documentation and/or other materials provided with the
14 // distribution.
15 // * Neither the name of Google Inc. nor the names of its
16 // contributors may be used to endorse or promote products derived from
17 // this software without specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 package com.google.protobuf;
32 
33 import static com.google.protobuf.Internal.checkNotNull;
34 
39 import java.io.IOException;
40 import java.io.InputStream;
41 import java.util.Collections;
42 import java.util.List;
43 import java.util.Map;
44 
51 public final class DynamicMessage extends AbstractMessage {
52  private final Descriptor type;
53  private final FieldSet<FieldDescriptor> fields;
54  private final FieldDescriptor[] oneofCases;
56  private int memoizedSize = -1;
57 
68  FieldSet<FieldDescriptor> fields,
71  this.type = type;
72  this.fields = fields;
73  this.oneofCases = oneofCases;
74  this.unknownFields = unknownFields;
75  }
76 
79  int oneofDeclCount = type.toProto().getOneofDeclCount();
80  FieldDescriptor[] oneofCases = new FieldDescriptor[oneofDeclCount];
81  return new DynamicMessage(
82  type,
83  FieldSet.<FieldDescriptor>emptySet(),
84  oneofCases,
86  }
87 
88 
91  throws IOException {
93  }
94 
96  public static DynamicMessage parseFrom(
98  throws IOException {
99  return newBuilder(type).mergeFrom(input, extensionRegistry).buildParsed();
100  }
101 
106  }
107 
109  public static DynamicMessage parseFrom(
110  Descriptor type, ByteString data, ExtensionRegistry extensionRegistry)
112  return newBuilder(type).mergeFrom(data, extensionRegistry).buildParsed();
113  }
114 
116  public static DynamicMessage parseFrom(Descriptor type, byte[] data)
119  }
120 
122  public static DynamicMessage parseFrom(
123  Descriptor type, byte[] data, ExtensionRegistry extensionRegistry)
125  return newBuilder(type).mergeFrom(data, extensionRegistry).buildParsed();
126  }
127 
129  public static DynamicMessage parseFrom(Descriptor type, InputStream input) throws IOException {
131  }
132 
134  public static DynamicMessage parseFrom(
135  Descriptor type, InputStream input, ExtensionRegistry extensionRegistry) throws IOException {
136  return newBuilder(type).mergeFrom(input, extensionRegistry).buildParsed();
137  }
138 
141  return new Builder(type);
142  }
143 
148  public static Builder newBuilder(Message prototype) {
149  return new Builder(prototype.getDescriptorForType()).mergeFrom(prototype);
150  }
151 
152  // -----------------------------------------------------------------
153  // Implementation of Message interface.
154 
155  @Override
157  return type;
158  }
159 
160  @Override
162  return getDefaultInstance(type);
163  }
164 
165  @Override
166  public Map<FieldDescriptor, Object> getAllFields() {
167  return fields.getAllFields();
168  }
169 
170  @Override
171  public boolean hasOneof(OneofDescriptor oneof) {
174  if (field == null) {
175  return false;
176  }
177  return true;
178  }
179 
180  @Override
183  return oneofCases[oneof.getIndex()];
184  }
185 
186  @Override
187  public boolean hasField(FieldDescriptor field) {
189  return fields.hasField(field);
190  }
191 
192  @Override
193  public Object getField(FieldDescriptor field) {
195  Object result = fields.getField(field);
196  if (result == null) {
197  if (field.isRepeated()) {
198  result = Collections.emptyList();
199  } else if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
200  result = getDefaultInstance(field.getMessageType());
201  } else {
202  result = field.getDefaultValue();
203  }
204  }
205  return result;
206  }
207 
208  @Override
211  return fields.getRepeatedFieldCount(field);
212  }
213 
214  @Override
217  return fields.getRepeatedField(field, index);
218  }
219 
220  @Override
222  return unknownFields;
223  }
224 
225  static boolean isInitialized(Descriptor type, FieldSet<FieldDescriptor> fields) {
226  // Check that all required fields are present.
227  for (final FieldDescriptor field : type.getFields()) {
228  if (field.isRequired()) {
229  if (!fields.hasField(field)) {
230  return false;
231  }
232  }
233  }
234 
235  // Check that embedded messages are initialized.
236  return fields.isInitialized();
237  }
238 
239  @Override
240  public boolean isInitialized() {
241  return isInitialized(type, fields);
242  }
243 
244  @Override
245  public void writeTo(CodedOutputStream output) throws IOException {
246  if (type.getOptions().getMessageSetWireFormat()) {
247  fields.writeMessageSetTo(output);
249  } else {
250  fields.writeTo(output);
252  }
253  }
254 
255  @Override
256  public int getSerializedSize() {
257  int size = memoizedSize;
258  if (size != -1) return size;
259 
260  if (type.getOptions().getMessageSetWireFormat()) {
261  size = fields.getMessageSetSerializedSize();
263  } else {
264  size = fields.getSerializedSize();
266  }
267 
268  memoizedSize = size;
269  return size;
270  }
271 
272  @Override
274  return new Builder(type);
275  }
276 
277  @Override
278  public Builder toBuilder() {
279  return newBuilderForType().mergeFrom(this);
280  }
281 
282  @Override
284  return new AbstractParser<DynamicMessage>() {
285  @Override
286  public DynamicMessage parsePartialFrom(
287  CodedInputStream input, ExtensionRegistryLite extensionRegistry)
289  Builder builder = newBuilder(type);
290  try {
291  builder.mergeFrom(input, extensionRegistry);
292  } catch (InvalidProtocolBufferException e) {
293  throw e.setUnfinishedMessage(builder.buildPartial());
294  } catch (IOException e) {
296  }
297  return builder.buildPartial();
298  }
299  };
300  }
301 
304  if (field.getContainingType() != type) {
305  throw new IllegalArgumentException("FieldDescriptor does not match message type.");
306  }
307  }
308 
311  if (oneof.getContainingType() != type) {
312  throw new IllegalArgumentException("OneofDescriptor does not match message type.");
313  }
314  }
315 
316  // =================================================================
317 
319  public static final class Builder extends AbstractMessage.Builder<Builder> {
320  private final Descriptor type;
321  private FieldSet<FieldDescriptor> fields;
322  private final FieldDescriptor[] oneofCases;
324 
327  this.type = type;
328  this.fields = FieldSet.newFieldSet();
329  this.unknownFields = UnknownFieldSet.getDefaultInstance();
330  this.oneofCases = new FieldDescriptor[type.toProto().getOneofDeclCount()];
331  // A MapEntry has all of its fields present at all times.
332  if (type.getOptions().getMapEntry()) {
334  }
335  }
336 
337  private void populateMapEntry() {
338  for (FieldDescriptor field : type.getFields()) {
339  if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
340  fields.setField(field, getDefaultInstance(field.getMessageType()));
341  } else {
342  fields.setField(field, field.getDefaultValue());
343  }
344  }
345  }
346 
347  // ---------------------------------------------------------------
348  // Implementation of Message.Builder interface.
349 
350  @Override
351  public Builder clear() {
352  if (fields.isImmutable()) {
353  fields = FieldSet.newFieldSet();
354  } else {
355  fields.clear();
356  }
357  // A MapEntry has all of its fields present at all times.
358  if (type.getOptions().getMapEntry()) {
360  }
362  return this;
363  }
364 
365  @Override
366  public Builder mergeFrom(Message other) {
367  if (other instanceof DynamicMessage) {
368  // This should be somewhat faster than calling super.mergeFrom().
369  DynamicMessage otherDynamicMessage = (DynamicMessage) other;
370  if (otherDynamicMessage.type != type) {
371  throw new IllegalArgumentException(
372  "mergeFrom(Message) can only merge messages of the same type.");
373  }
374  ensureIsMutable();
375  fields.mergeFrom(otherDynamicMessage.fields);
376  mergeUnknownFields(otherDynamicMessage.unknownFields);
377  for (int i = 0; i < oneofCases.length; i++) {
378  if (oneofCases[i] == null) {
379  oneofCases[i] = otherDynamicMessage.oneofCases[i];
380  } else {
381  if ((otherDynamicMessage.oneofCases[i] != null)
382  && (oneofCases[i] != otherDynamicMessage.oneofCases[i])) {
383  fields.clearField(oneofCases[i]);
384  oneofCases[i] = otherDynamicMessage.oneofCases[i];
385  }
386  }
387  }
388  return this;
389  } else {
390  return super.mergeFrom(other);
391  }
392  }
393 
394  @Override
396  if (!isInitialized()) {
398  new DynamicMessage(
399  type,
400  fields,
401  java.util.Arrays.copyOf(oneofCases, oneofCases.length),
402  unknownFields));
403  }
404  return buildPartial();
405  }
406 
412  if (!isInitialized()) {
414  new DynamicMessage(
415  type,
416  fields,
417  java.util.Arrays.copyOf(oneofCases, oneofCases.length),
418  unknownFields))
420  }
421  return buildPartial();
422  }
423 
424  @Override
426  fields.makeImmutable();
427  DynamicMessage result =
428  new DynamicMessage(
429  type, fields, java.util.Arrays.copyOf(oneofCases, oneofCases.length), unknownFields);
430  return result;
431  }
432 
433  @Override
434  public Builder clone() {
435  Builder result = new Builder(type);
436  result.fields.mergeFrom(fields);
438  System.arraycopy(oneofCases, 0, result.oneofCases, 0, oneofCases.length);
439  return result;
440  }
441 
442  @Override
443  public boolean isInitialized() {
444  return DynamicMessage.isInitialized(type, fields);
445  }
446 
447  @Override
449  return type;
450  }
451 
452  @Override
454  return getDefaultInstance(type);
455  }
456 
457  @Override
458  public Map<FieldDescriptor, Object> getAllFields() {
459  return fields.getAllFields();
460  }
461 
462  @Override
465 
466  if (field.getJavaType() != FieldDescriptor.JavaType.MESSAGE) {
467  throw new IllegalArgumentException(
468  "newBuilderForField is only valid for fields with message type.");
469  }
470 
471  return new Builder(field.getMessageType());
472  }
473 
474  @Override
475  public boolean hasOneof(OneofDescriptor oneof) {
478  if (field == null) {
479  return false;
480  }
481  return true;
482  }
483 
484  @Override
487  return oneofCases[oneof.getIndex()];
488  }
489 
490  @Override
494  if (field != null) {
495  clearField(field);
496  }
497  return this;
498  }
499 
500  @Override
501  public boolean hasField(FieldDescriptor field) {
503  return fields.hasField(field);
504  }
505 
506  @Override
507  public Object getField(FieldDescriptor field) {
509  Object result = fields.getField(field);
510  if (result == null) {
511  if (field.isRepeated()) {
512  result = Collections.emptyList();
513  } else if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
514  result = getDefaultInstance(field.getMessageType());
515  } else {
516  result = field.getDefaultValue();
517  }
518  }
519  return result;
520  }
521 
522  @Override
525  ensureIsMutable();
526  // TODO(xiaofeng): This check should really be put in FieldSet.setField()
527  // where all other such checks are done. However, currently
528  // FieldSet.setField() permits Integer value for enum fields probably
529  // because of some internal features we support. Should figure it out
530  // and move this check to a more appropriate place.
531  if (field.getType() == FieldDescriptor.Type.ENUM) {
533  }
534  OneofDescriptor oneofDescriptor = field.getContainingOneof();
535  if (oneofDescriptor != null) {
536  int index = oneofDescriptor.getIndex();
537  FieldDescriptor oldField = oneofCases[index];
538  if ((oldField != null) && (oldField != field)) {
539  fields.clearField(oldField);
540  }
542  } else if (field.getFile().getSyntax() == Descriptors.FileDescriptor.Syntax.PROTO3) {
543  if (!field.isRepeated()
544  && field.getJavaType() != FieldDescriptor.JavaType.MESSAGE
545  && value.equals(field.getDefaultValue())) {
546  // In proto3, setting a field to its default value is equivalent to clearing the field.
547  fields.clearField(field);
548  return this;
549  }
550  }
551  fields.setField(field, value);
552  return this;
553  }
554 
555  @Override
558  ensureIsMutable();
559  OneofDescriptor oneofDescriptor = field.getContainingOneof();
560  if (oneofDescriptor != null) {
561  int index = oneofDescriptor.getIndex();
562  if (oneofCases[index] == field) {
563  oneofCases[index] = null;
564  }
565  }
566  fields.clearField(field);
567  return this;
568  }
569 
570  @Override
573  return fields.getRepeatedFieldCount(field);
574  }
575 
576  @Override
579  return fields.getRepeatedField(field, index);
580  }
581 
582  @Override
585  ensureIsMutable();
586  fields.setRepeatedField(field, index, value);
587  return this;
588  }
589 
590  @Override
593  ensureIsMutable();
594  fields.addRepeatedField(field, value);
595  return this;
596  }
597 
598  @Override
600  return unknownFields;
601  }
602 
603  @Override
605  this.unknownFields = unknownFields;
606  return this;
607  }
608 
609  @Override
611  this.unknownFields =
612  UnknownFieldSet.newBuilder(this.unknownFields).mergeFrom(unknownFields).build();
613  return this;
614  }
615 
618  if (field.getContainingType() != type) {
619  throw new IllegalArgumentException("FieldDescriptor does not match message type.");
620  }
621  }
622 
625  if (oneof.getContainingType() != type) {
626  throw new IllegalArgumentException("OneofDescriptor does not match message type.");
627  }
628  }
629 
632  checkNotNull(value);
633  if (!(value instanceof EnumValueDescriptor)) {
634  throw new IllegalArgumentException(
635  "DynamicMessage should use EnumValueDescriptor to set Enum Value.");
636  }
637  // TODO(xiaofeng): Re-enable this check after Orgstore is fixed to not
638  // set incorrect EnumValueDescriptors.
639  // EnumDescriptor fieldType = field.getEnumType();
640  // EnumDescriptor fieldValueType = ((EnumValueDescriptor) value).getType();
641  // if (fieldType != fieldValueType) {
642  // throw new IllegalArgumentException(String.format(
643  // "EnumDescriptor %s of field doesn't match EnumDescriptor %s of field value",
644  // fieldType.getFullName(), fieldValueType.getFullName()));
645  // }
646  }
647 
650  if (field.isRepeated()) {
651  for (Object item : (List) value) {
653  }
654  } else {
656  }
657  }
658 
659  private void ensureIsMutable() {
660  if (fields.isImmutable()) {
661  fields = fields.clone();
662  }
663  }
664 
665  @Override
667  // TODO(xiangl): need implementation for dynamic message
668  throw new UnsupportedOperationException(
669  "getFieldBuilder() called on a dynamic message type.");
670  }
671 
672  @Override
674  FieldDescriptor field, int index) {
675  throw new UnsupportedOperationException(
676  "getRepeatedFieldBuilder() called on a dynamic message type.");
677  }
678  }
679 }
com.google.protobuf.Descriptors
Definition: Descriptors.java:80
com.google.protobuf.DynamicMessage.unknownFields
final UnknownFieldSet unknownFields
Definition: DynamicMessage.java:55
com.google.protobuf.DynamicMessage.Builder.ensureIsMutable
void ensureIsMutable()
Definition: DynamicMessage.java:659
com.google.protobuf.DynamicMessage.fields
final FieldSet< FieldDescriptor > fields
Definition: DynamicMessage.java:53
com.google.protobuf.DynamicMessage.getOneofFieldDescriptor
FieldDescriptor getOneofFieldDescriptor(OneofDescriptor oneof)
Definition: DynamicMessage.java:181
com.google.protobuf.UnknownFieldSet.getDefaultInstance
static UnknownFieldSet getDefaultInstance()
Definition: UnknownFieldSet.java:76
com.google.protobuf.DynamicMessage.Builder.setField
Builder setField(FieldDescriptor field, Object value)
Definition: DynamicMessage.java:523
com.google.protobuf.DynamicMessage.Builder.isInitialized
boolean isInitialized()
Definition: DynamicMessage.java:443
com.google.protobuf.DynamicMessage.Builder.type
final Descriptor type
Definition: DynamicMessage.java:320
com.google.protobuf.DynamicMessage.newBuilder
static Builder newBuilder(Message prototype)
Definition: DynamicMessage.java:148
item
cJSON * item
Definition: cJSON.h:236
input
std::string input
Definition: tokenizer_unittest.cc:197
com.google.protobuf.DynamicMessage.writeTo
void writeTo(CodedOutputStream output)
Definition: DynamicMessage.java:245
com.google.protobuf.DynamicMessage.Builder.clear
Builder clear()
Definition: DynamicMessage.java:351
com.google.protobuf.DynamicMessage.parseFrom
static DynamicMessage parseFrom(Descriptor type, InputStream input)
Definition: DynamicMessage.java:129
com.google.protobuf.DynamicMessage.getField
Object getField(FieldDescriptor field)
Definition: DynamicMessage.java:193
com.google.protobuf.DynamicMessage.Builder.getAllFields
Map< FieldDescriptor, Object > getAllFields()
Definition: DynamicMessage.java:458
com.google.protobuf.DynamicMessage.Builder.addRepeatedField
Builder addRepeatedField(FieldDescriptor field, Object value)
Definition: DynamicMessage.java:591
com.google.protobuf.DynamicMessage.Builder.buildParsed
DynamicMessage buildParsed()
Definition: DynamicMessage.java:411
com.google.protobuf.DynamicMessage.getParserForType
Parser< DynamicMessage > getParserForType()
Definition: DynamicMessage.java:283
com.google.protobuf.Descriptors.OneofDescriptor.getContainingType
Descriptor getContainingType()
Definition: Descriptors.java:2618
com.google.protobuf
Definition: ProtoCaliperBenchmark.java:2
com.google.protobuf.DynamicMessage.Builder.clearOneof
Builder clearOneof(OneofDescriptor oneof)
Definition: DynamicMessage.java:491
com.google.protobuf.DynamicMessage.Builder.ensureEnumValueDescriptor
void ensureEnumValueDescriptor(FieldDescriptor field, Object value)
Definition: DynamicMessage.java:649
com.google.protobuf.DynamicMessage.type
final Descriptor type
Definition: DynamicMessage.java:52
com.google.protobuf.Descriptors.FileDescriptor.Syntax.PROTO3
PROTO3
Definition: Descriptors.java:159
com.google.protobuf.DynamicMessage.Builder.hasField
boolean hasField(FieldDescriptor field)
Definition: DynamicMessage.java:501
com.google.protobuf.UnknownFieldSet.Builder.build
UnknownFieldSet build()
Definition: UnknownFieldSet.java:358
com.google.protobuf.Descriptors.FieldDescriptor.Type
Definition: Descriptors.java:1215
com.google.protobuf.DynamicMessage.Builder.getOneofFieldDescriptor
FieldDescriptor getOneofFieldDescriptor(OneofDescriptor oneof)
Definition: DynamicMessage.java:485
com.google.protobuf.DynamicMessage.getRepeatedFieldCount
int getRepeatedFieldCount(FieldDescriptor field)
Definition: DynamicMessage.java:209
com.google.protobuf.UnknownFieldSet.writeTo
void writeTo(final CodedOutputStream output)
Definition: UnknownFieldSet.java:134
com.google.protobuf.UninitializedMessageException.asInvalidProtocolBufferException
InvalidProtocolBufferException asInvalidProtocolBufferException()
Definition: UninitializedMessageException.java:78
com.google.protobuf.UnknownFieldSet.newBuilder
static Builder newBuilder()
Definition: UnknownFieldSet.java:66
com.google.protobuf.DynamicMessage.Builder.getRepeatedFieldCount
int getRepeatedFieldCount(FieldDescriptor field)
Definition: DynamicMessage.java:571
com.google.protobuf.UnknownFieldSet.writeAsMessageSetTo
void writeAsMessageSetTo(final CodedOutputStream output)
Definition: UnknownFieldSet.java:214
com.google.protobuf.DynamicMessage.newBuilderForType
Builder newBuilderForType()
Definition: DynamicMessage.java:273
com.google.protobuf.MessageOrBuilder.getDescriptorForType
Descriptors.Descriptor getDescriptorForType()
com.google.protobuf.DynamicMessage.verifyOneofContainingType
void verifyOneofContainingType(OneofDescriptor oneof)
Definition: DynamicMessage.java:310
com.google.protobuf.DynamicMessage.getDescriptorForType
Descriptor getDescriptorForType()
Definition: DynamicMessage.java:156
com.google.protobuf.DynamicMessage.newBuilder
static Builder newBuilder(Descriptor type)
Definition: DynamicMessage.java:140
com.google.protobuf.DynamicMessage.Builder
Definition: DynamicMessage.java:319
com.google.protobuf.Parser
Definition: Parser.java:47
com.google.protobuf.CodedInputStream
Definition: CodedInputStream.java:61
com.google.protobuf.DynamicMessage.Builder.getFieldBuilder
com.google.protobuf.Message.Builder getFieldBuilder(FieldDescriptor field)
Definition: DynamicMessage.java:666
com.google.protobuf.Descriptors.OneofDescriptor
Definition: Descriptors.java:2597
com.google.protobuf.DynamicMessage.getRepeatedField
Object getRepeatedField(FieldDescriptor field, int index)
Definition: DynamicMessage.java:215
com.google.protobuf.Message.Builder
Definition: Message.java:104
com.google.protobuf.UnknownFieldSet
Definition: UnknownFieldSet.java:58
com.google.protobuf.DynamicMessage.hasField
boolean hasField(FieldDescriptor field)
Definition: DynamicMessage.java:187
com.google.protobuf.DynamicMessage.Builder.getDescriptorForType
Descriptor getDescriptorForType()
Definition: DynamicMessage.java:448
com.google.protobuf.DynamicMessage.Builder.buildPartial
DynamicMessage buildPartial()
Definition: DynamicMessage.java:425
com.google.protobuf.DynamicMessage.Builder.getRepeatedFieldBuilder
com.google.protobuf.Message.Builder getRepeatedFieldBuilder(FieldDescriptor field, int index)
Definition: DynamicMessage.java:673
com.google.protobuf.DynamicMessage.Builder.getDefaultInstanceForType
DynamicMessage getDefaultInstanceForType()
Definition: DynamicMessage.java:453
com.google.protobuf.DynamicMessage.getDefaultInstanceForType
DynamicMessage getDefaultInstanceForType()
Definition: DynamicMessage.java:161
com.google.protobuf.DynamicMessage.getDefaultInstance
static DynamicMessage getDefaultInstance(Descriptor type)
Definition: DynamicMessage.java:78
com.google.protobuf.Descriptors.FieldDescriptor.JavaType
Definition: Descriptors.java:1262
com.google.protobuf.DynamicMessage.Builder.mergeFrom
Builder mergeFrom(Message other)
Definition: DynamicMessage.java:366
com.google.protobuf.DynamicMessage.Builder.Builder
Builder(Descriptor type)
Definition: DynamicMessage.java:326
com.google.protobuf.DynamicMessage.parseFrom
static DynamicMessage parseFrom(Descriptor type, InputStream input, ExtensionRegistry extensionRegistry)
Definition: DynamicMessage.java:134
size
#define size
Definition: glcorearb.h:2944
com.google.protobuf.DynamicMessage.Builder.ensureSingularEnumValueDescriptor
void ensureSingularEnumValueDescriptor(FieldDescriptor field, Object value)
Definition: DynamicMessage.java:631
com.google.protobuf.DynamicMessage.hasOneof
boolean hasOneof(OneofDescriptor oneof)
Definition: DynamicMessage.java:171
com.google.protobuf.DynamicMessage.toBuilder
Builder toBuilder()
Definition: DynamicMessage.java:278
com.google.protobuf.Descriptors.FileDescriptor.Syntax
Definition: Descriptors.java:156
com.google.protobuf.DynamicMessage.parseFrom
static DynamicMessage parseFrom(Descriptor type, ByteString data)
Definition: DynamicMessage.java:103
com.google.protobuf.ExtensionRegistryLite
Definition: ExtensionRegistryLite.java:70
field
const FieldDescriptor * field
Definition: parser_unittest.cc:2694
com.google.protobuf.DynamicMessage.Builder.verifyOneofContainingType
void verifyOneofContainingType(OneofDescriptor oneof)
Definition: DynamicMessage.java:624
com.google.protobuf.DynamicMessage.parseFrom
static DynamicMessage parseFrom(Descriptor type, ByteString data, ExtensionRegistry extensionRegistry)
Definition: DynamicMessage.java:109
com.google.protobuf.DynamicMessage.Builder.getField
Object getField(FieldDescriptor field)
Definition: DynamicMessage.java:507
i
int i
Definition: gmock-matchers_test.cc:764
java
com.google.protobuf.Descriptors.Descriptor
Definition: Descriptors.java:629
type
GLenum type
Definition: glcorearb.h:2695
com.google.protobuf.DynamicMessage.Builder.setRepeatedField
Builder setRepeatedField(FieldDescriptor field, int index, Object value)
Definition: DynamicMessage.java:583
com.google.protobuf.DynamicMessage.Builder.oneofCases
final FieldDescriptor[] oneofCases
Definition: DynamicMessage.java:322
com.google.protobuf.DynamicMessage.Builder.build
DynamicMessage build()
Definition: DynamicMessage.java:395
com.google.protobuf.DynamicMessage.Builder.newBuilderForField
Builder newBuilderForField(FieldDescriptor field)
Definition: DynamicMessage.java:463
com.google.protobuf.DynamicMessage.parseFrom
static DynamicMessage parseFrom(Descriptor type, byte[] data)
Definition: DynamicMessage.java:116
com.google.protobuf.Descriptors.OneofDescriptor.getIndex
int getIndex()
Definition: Descriptors.java:2599
com.google.protobuf.DynamicMessage.verifyContainingType
void verifyContainingType(FieldDescriptor field)
Definition: DynamicMessage.java:303
com.google.protobuf.DynamicMessage.Builder.fields
FieldSet< FieldDescriptor > fields
Definition: DynamicMessage.java:321
size
GLsizeiptr size
Definition: glcorearb.h:2943
com.google.protobuf.DynamicMessage.Builder.unknownFields
UnknownFieldSet unknownFields
Definition: DynamicMessage.java:323
com.google.protobuf.DynamicMessage
Definition: DynamicMessage.java:51
com.google.protobuf.DynamicMessage.oneofCases
final FieldDescriptor[] oneofCases
Definition: DynamicMessage.java:54
com.google.protobuf.DynamicMessage.memoizedSize
int memoizedSize
Definition: DynamicMessage.java:56
com.google.protobuf.InvalidProtocolBufferException.setUnfinishedMessage
InvalidProtocolBufferException setUnfinishedMessage(MessageLite unfinishedMessage)
Definition: InvalidProtocolBufferException.java:63
com.google
com
com.google.protobuf.UnknownFieldSet.getSerializedSizeAsMessageSet
int getSerializedSizeAsMessageSet()
Definition: UnknownFieldSet.java:251
com.google.protobuf.DynamicMessage.Builder.setUnknownFields
Builder setUnknownFields(UnknownFieldSet unknownFields)
Definition: DynamicMessage.java:604
com.google.protobuf.AbstractMessage.Builder< Builder >::newUninitializedMessageException
static UninitializedMessageException newUninitializedMessageException(Message message)
Definition: AbstractMessage.java:475
com.google.protobuf.ExtensionRegistry
Definition: ExtensionRegistry.java:91
com.google.protobuf.AbstractMessage
Definition: AbstractMessage.java:52
com.google.protobuf.DynamicMessage.parseFrom
static DynamicMessage parseFrom(Descriptor type, CodedInputStream input)
Definition: DynamicMessage.java:90
com.google.protobuf.AbstractParser
Definition: AbstractParser.java:48
data
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: glcorearb.h:2879
com.google.protobuf.Internal
Definition: Internal.java:54
com.google.protobuf.CodedOutputStream
Definition: CodedOutputStream.java:59
com.google.protobuf.InvalidProtocolBufferException
Definition: InvalidProtocolBufferException.java:41
com.google.protobuf.DynamicMessage.isInitialized
boolean isInitialized()
Definition: DynamicMessage.java:240
com.google.protobuf.DynamicMessage.Builder.verifyContainingType
void verifyContainingType(FieldDescriptor field)
Definition: DynamicMessage.java:617
com.google.protobuf.Descriptors.EnumValueDescriptor
Definition: Descriptors.java:1774
value
GLsizei const GLfloat * value
Definition: glcorearb.h:3093
com.google.protobuf.DynamicMessage.getAllFields
Map< FieldDescriptor, Object > getAllFields()
Definition: DynamicMessage.java:166
com.google.protobuf.DynamicMessage.getUnknownFields
UnknownFieldSet getUnknownFields()
Definition: DynamicMessage.java:221
com.google.protobuf.DynamicMessage.Builder.getUnknownFields
UnknownFieldSet getUnknownFields()
Definition: DynamicMessage.java:599
Builder
struct Builder Builder
Definition: ruby/ext/google/protobuf_c/protobuf.h:67
com.google.protobuf.DynamicMessage.parseFrom
static DynamicMessage parseFrom(Descriptor type, CodedInputStream input, ExtensionRegistry extensionRegistry)
Definition: DynamicMessage.java:96
output
const upb_json_parsermethod const upb_symtab upb_sink * output
Definition: ruby/ext/google/protobuf_c/upb.h:10503
com.google.protobuf.Descriptors.FileDescriptor
Definition: Descriptors.java:87
com.google.protobuf.DynamicMessage.Builder.clone
Builder clone()
Definition: DynamicMessage.java:434
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(final UnknownFieldSet other)
Definition: UnknownFieldSet.java:426
index
GLuint index
Definition: glcorearb.h:3055
com.google.protobuf.DynamicMessage.Builder.clearField
Builder clearField(FieldDescriptor field)
Definition: DynamicMessage.java:556
com.google.protobuf.DynamicMessage.parseFrom
static DynamicMessage parseFrom(Descriptor type, byte[] data, ExtensionRegistry extensionRegistry)
Definition: DynamicMessage.java:122
com.google.protobuf.DynamicMessage.getSerializedSize
int getSerializedSize()
Definition: DynamicMessage.java:256
com.google.protobuf.DynamicMessage.Builder.getRepeatedField
Object getRepeatedField(FieldDescriptor field, int index)
Definition: DynamicMessage.java:577
com.google.protobuf.DynamicMessage.Builder.mergeUnknownFields
Builder mergeUnknownFields(UnknownFieldSet unknownFields)
Definition: DynamicMessage.java:610
com.google.protobuf.Message
Definition: Message.java:50
com.google.protobuf.DynamicMessage.Builder.populateMapEntry
void populateMapEntry()
Definition: DynamicMessage.java:337
com.google.protobuf.DynamicMessage.Builder.hasOneof
boolean hasOneof(OneofDescriptor oneof)
Definition: DynamicMessage.java:475
com.google.protobuf.UnknownFieldSet.getSerializedSize
int getSerializedSize()
Definition: UnknownFieldSet.java:205
com.google.protobuf.Descriptors.FieldDescriptor.Type.ENUM
ENUM
Definition: Descriptors.java:1229
com.google.protobuf.Descriptors.FieldDescriptor
Definition: Descriptors.java:949
com.google.protobuf.ByteString
Definition: ByteString.java:67
com.google.protobuf.Descriptors.FieldDescriptor.JavaType.MESSAGE
MESSAGE
Definition: Descriptors.java:1271


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:50