GeneratedMessage.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 
39 
40 import java.io.IOException;
41 import java.io.InputStream;
42 import java.io.ObjectStreamException;
43 import java.io.Serializable;
44 import java.lang.reflect.InvocationTargetException;
45 import java.lang.reflect.Method;
46 import java.util.ArrayList;
47 import java.util.Collections;
48 import java.util.Iterator;
49 import java.util.List;
50 import java.util.Map;
51 import java.util.TreeMap;
52 
61 public abstract class GeneratedMessage extends AbstractMessage
62  implements Serializable {
63  private static final long serialVersionUID = 1L;
64 
70  protected static boolean alwaysUseFieldBuilders = false;
71 
74 
75  protected GeneratedMessage() {
77  }
78 
79  protected GeneratedMessage(Builder<?> builder) {
80  unknownFields = builder.getUnknownFields();
81  }
82 
83  @Override
85  throw new UnsupportedOperationException(
86  "This is supposed to be overridden by subclasses.");
87  }
88 
95  static void enableAlwaysUseFieldBuildersForTesting() {
97  }
98 
104  protected abstract FieldAccessorTable internalGetFieldAccessorTable();
105 
106  @Override
109  }
110 
118  private Map<FieldDescriptor, Object> getAllFieldsMutable(
119  boolean getBytesForString) {
120  final TreeMap<FieldDescriptor, Object> result =
121  new TreeMap<FieldDescriptor, Object>();
123  final List<FieldDescriptor> fields = descriptor.getFields();
124 
125  for (int i = 0; i < fields.size(); i++) {
126  FieldDescriptor field = fields.get(i);
127  final OneofDescriptor oneofDescriptor = field.getContainingOneof();
128 
129  /*
130  * If the field is part of a Oneof, then at maximum one field in the Oneof is set
131  * and it is not repeated. There is no need to iterate through the others.
132  */
133  if (oneofDescriptor != null) {
134  // Skip other fields in the Oneof we know are not set
135  i += oneofDescriptor.getFieldCount() - 1;
136  if (!hasOneof(oneofDescriptor)) {
137  // If no field is set in the Oneof, skip all the fields in the Oneof
138  continue;
139  }
140  // Get the pointer to the only field which is set in the Oneof
141  field = getOneofFieldDescriptor(oneofDescriptor);
142  } else {
143  // If we are not in a Oneof, we need to check if the field is set and if it is repeated
144  if (field.isRepeated()) {
145  final List<?> value = (List<?>) getField(field);
146  if (!value.isEmpty()) {
147  result.put(field, value);
148  }
149  continue;
150  }
151  if (!hasField(field)) {
152  continue;
153  }
154  }
155  // Add the field to the map
156  if (getBytesForString && field.getJavaType() == FieldDescriptor.JavaType.STRING) {
157  result.put(field, getFieldRaw(field));
158  } else {
159  result.put(field, getField(field));
160  }
161  }
162  return result;
163  }
164 
165  @Override
166  public boolean isInitialized() {
167  for (final FieldDescriptor field : getDescriptorForType().getFields()) {
168  // Check that all required fields are present.
169  if (field.isRequired()) {
170  if (!hasField(field)) {
171  return false;
172  }
173  }
174  // Check that embedded messages are initialized.
175  if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
176  if (field.isRepeated()) {
177  @SuppressWarnings("unchecked") final
178  List<Message> messageList = (List<Message>) getField(field);
179  for (final Message element : messageList) {
180  if (!element.isInitialized()) {
181  return false;
182  }
183  }
184  } else {
185  if (hasField(field) && !((Message) getField(field)).isInitialized()) {
186  return false;
187  }
188  }
189  }
190  }
191 
192  return true;
193  }
194 
195  @Override
196  public Map<FieldDescriptor, Object> getAllFields() {
197  return Collections.unmodifiableMap(
198  getAllFieldsMutable(/* getBytesForString = */ false));
199  }
200 
211  Map<FieldDescriptor, Object> getAllFieldsRaw() {
212  return Collections.unmodifiableMap(
213  getAllFieldsMutable(/* getBytesForString = */ true));
214  }
215 
216  @Override
217  public boolean hasOneof(final OneofDescriptor oneof) {
218  return internalGetFieldAccessorTable().getOneof(oneof).has(this);
219  }
220 
221  @Override
223  return internalGetFieldAccessorTable().getOneof(oneof).get(this);
224  }
225 
226  @Override
227  public boolean hasField(final FieldDescriptor field) {
229  }
230 
231  @Override
232  public Object getField(final FieldDescriptor field) {
234  }
235 
244  Object getFieldRaw(final FieldDescriptor field) {
246  }
247 
248  @Override
251  .getRepeatedCount(this);
252  }
253 
254  @Override
255  public Object getRepeatedField(final FieldDescriptor field, final int index) {
257  .getRepeated(this, index);
258  }
259 
260  @Override
262  throw new UnsupportedOperationException(
263  "This is supposed to be overridden by subclasses.");
264  }
265 
270  protected boolean parseUnknownField(
273  ExtensionRegistryLite extensionRegistry,
274  int tag) throws IOException {
275  return unknownFields.mergeFieldFrom(tag, input);
276  }
277 
278  protected static <M extends Message> M parseWithIOException(Parser<M> parser, InputStream input)
279  throws IOException {
280  try {
281  return parser.parseFrom(input);
282  } catch (InvalidProtocolBufferException e) {
283  throw e.unwrapIOException();
284  }
285  }
286 
287  protected static <M extends Message> M parseWithIOException(Parser<M> parser, InputStream input,
288  ExtensionRegistryLite extensions) throws IOException {
289  try {
290  return parser.parseFrom(input, extensions);
291  } catch (InvalidProtocolBufferException e) {
292  throw e.unwrapIOException();
293  }
294  }
295 
296  protected static <M extends Message> M parseWithIOException(Parser<M> parser,
297  CodedInputStream input) throws IOException {
298  try {
299  return parser.parseFrom(input);
300  } catch (InvalidProtocolBufferException e) {
301  throw e.unwrapIOException();
302  }
303  }
304 
305  protected static <M extends Message> M parseWithIOException(Parser<M> parser,
306  CodedInputStream input, ExtensionRegistryLite extensions) throws IOException {
307  try {
308  return parser.parseFrom(input, extensions);
309  } catch (InvalidProtocolBufferException e) {
310  throw e.unwrapIOException();
311  }
312  }
313 
314  protected static <M extends Message> M parseDelimitedWithIOException(Parser<M> parser,
315  InputStream input) throws IOException {
316  try {
317  return parser.parseDelimitedFrom(input);
318  } catch (InvalidProtocolBufferException e) {
319  throw e.unwrapIOException();
320  }
321  }
322 
323  protected static <M extends Message> M parseDelimitedWithIOException(Parser<M> parser,
324  InputStream input, ExtensionRegistryLite extensions) throws IOException {
325  try {
326  return parser.parseDelimitedFrom(input, extensions);
327  } catch (InvalidProtocolBufferException e) {
328  throw e.unwrapIOException();
329  }
330  }
331 
332  @Override
333  public void writeTo(final CodedOutputStream output) throws IOException {
334  MessageReflection.writeMessageTo(this, getAllFieldsRaw(), output, false);
335  }
336 
337  @Override
338  public int getSerializedSize() {
339  int size = memoizedSize;
340  if (size != -1) {
341  return size;
342  }
343 
344  memoizedSize = MessageReflection.getSerializedSize(
345  this, getAllFieldsRaw());
346  return memoizedSize;
347  }
348 
349 
350 
354  protected void makeExtensionsImmutable() {
355  // Noop for messages without extensions.
356  }
357 
364  protected interface BuilderParent extends AbstractMessage.BuilderParent {}
365 
369  protected abstract Message.Builder newBuilderForType(BuilderParent parent);
370 
371  @Override
373  return newBuilderForType(new BuilderParent() {
374  @Override
375  public void markDirty() {
376  parent.markDirty();
377  }
378  });
379  }
380 
381 
382  @SuppressWarnings("unchecked")
383  public abstract static class Builder <BuilderType extends Builder<BuilderType>>
384  extends AbstractMessage.Builder<BuilderType> {
385 
387 
388  private BuilderParentImpl meAsParent;
389 
390  // Indicates that we've built a message and so we are now obligated
391  // to dispatch dirty invalidations. See GeneratedMessage.BuilderListener.
392  private boolean isClean;
393 
396 
397  protected Builder() {
398  this(null);
399  }
400 
401  protected Builder(BuilderParent builderParent) {
402  this.builderParent = builderParent;
403  }
404 
405  @Override
406  void dispose() {
407  builderParent = null;
408  }
409 
413  protected void onBuilt() {
414  if (builderParent != null) {
415  markClean();
416  }
417  }
418 
423  @Override
424  protected void markClean() {
425  this.isClean = true;
426  }
427 
433  protected boolean isClean() {
434  return isClean;
435  }
436 
437  @Override
438  public BuilderType clone() {
439  BuilderType builder =
441  builder.mergeFrom(buildPartial());
442  return builder;
443  }
444 
449  @Override
450  public BuilderType clear() {
452  onChanged();
453  return (BuilderType) this;
454  }
455 
462 
463  @Override
466  }
467 
468  @Override
469  public Map<FieldDescriptor, Object> getAllFields() {
470  return Collections.unmodifiableMap(getAllFieldsMutable());
471  }
472 
474  private Map<FieldDescriptor, Object> getAllFieldsMutable() {
475  final TreeMap<FieldDescriptor, Object> result =
476  new TreeMap<FieldDescriptor, Object>();
478  final List<FieldDescriptor> fields = descriptor.getFields();
479 
480  for (int i = 0; i < fields.size(); i++) {
481  FieldDescriptor field = fields.get(i);
482  final OneofDescriptor oneofDescriptor = field.getContainingOneof();
483 
484  /*
485  * If the field is part of a Oneof, then at maximum one field in the Oneof is set
486  * and it is not repeated. There is no need to iterate through the others.
487  */
488  if (oneofDescriptor != null) {
489  // Skip other fields in the Oneof we know are not set
490  i += oneofDescriptor.getFieldCount() - 1;
491  if (!hasOneof(oneofDescriptor)) {
492  // If no field is set in the Oneof, skip all the fields in the Oneof
493  continue;
494  }
495  // Get the pointer to the only field which is set in the Oneof
496  field = getOneofFieldDescriptor(oneofDescriptor);
497  } else {
498  // If we are not in a Oneof, we need to check if the field is set and if it is repeated
499  if (field.isRepeated()) {
500  final List<?> value = (List<?>) getField(field);
501  if (!value.isEmpty()) {
502  result.put(field, value);
503  }
504  continue;
505  }
506  if (!hasField(field)) {
507  continue;
508  }
509  }
510  // Add the field to the map
511  result.put(field, getField(field));
512  }
513  return result;
514  }
515 
516  @Override
519  }
520 
521  @Override
524  }
525 
526  @Override
529  this, index);
530  }
531 
532  @Override
533  public boolean hasOneof(final OneofDescriptor oneof) {
534  return internalGetFieldAccessorTable().getOneof(oneof).has(this);
535  }
536 
537  @Override
539  return internalGetFieldAccessorTable().getOneof(oneof).get(this);
540  }
541 
542  @Override
543  public boolean hasField(final FieldDescriptor field) {
545  }
546 
547  @Override
548  public Object getField(final FieldDescriptor field) {
549  Object object = internalGetFieldAccessorTable().getField(field).get(this);
550  if (field.isRepeated()) {
551  // The underlying list object is still modifiable at this point.
552  // Make sure not to expose the modifiable list to the caller.
553  return Collections.unmodifiableList((List) object);
554  } else {
555  return object;
556  }
557  }
558 
559  @Override
560  public BuilderType setField(final FieldDescriptor field, final Object value) {
562  return (BuilderType) this;
563  }
564 
565  @Override
566  public BuilderType clearField(final FieldDescriptor field) {
568  return (BuilderType) this;
569  }
570 
571  @Override
572  public BuilderType clearOneof(final OneofDescriptor oneof) {
574  return (BuilderType) this;
575  }
576 
577  @Override
580  .getRepeatedCount(this);
581  }
582 
583  @Override
584  public Object getRepeatedField(final FieldDescriptor field, final int index) {
586  .getRepeated(this, index);
587  }
588 
589  @Override
590  public BuilderType setRepeatedField(
591  final FieldDescriptor field, final int index, final Object value) {
593  .setRepeated(this, index, value);
594  return (BuilderType) this;
595  }
596 
597  @Override
598  public BuilderType addRepeatedField(final FieldDescriptor field, final Object value) {
600  return (BuilderType) this;
601  }
602 
603  @Override
604  public BuilderType setUnknownFields(final UnknownFieldSet unknownFields) {
605  this.unknownFields = unknownFields;
606  onChanged();
607  return (BuilderType) this;
608  }
609 
610  @Override
611  public BuilderType mergeUnknownFields(
613  this.unknownFields =
614  UnknownFieldSet.newBuilder(this.unknownFields)
616  .build();
617  onChanged();
618  return (BuilderType) this;
619  }
620 
621  @Override
622  public boolean isInitialized() {
623  for (final FieldDescriptor field : getDescriptorForType().getFields()) {
624  // Check that all required fields are present.
625  if (field.isRequired()) {
626  if (!hasField(field)) {
627  return false;
628  }
629  }
630  // Check that embedded messages are initialized.
631  if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
632  if (field.isRepeated()) {
633  @SuppressWarnings("unchecked") final
634  List<Message> messageList = (List<Message>) getField(field);
635  for (final Message element : messageList) {
636  if (!element.isInitialized()) {
637  return false;
638  }
639  }
640  } else {
641  if (hasField(field) &&
643  return false;
644  }
645  }
646  }
647  }
648  return true;
649  }
650 
651  @Override
653  return unknownFields;
654  }
655 
660  protected boolean parseUnknownField(
661  final CodedInputStream input,
663  final ExtensionRegistryLite extensionRegistry,
664  final int tag) throws IOException {
665  return unknownFields.mergeFieldFrom(tag, input);
666  }
667 
673  private class BuilderParentImpl implements BuilderParent {
674 
675  @Override
676  public void markDirty() {
677  onChanged();
678  }
679  }
680 
686  if (meAsParent == null) {
687  meAsParent = new BuilderParentImpl();
688  }
689  return meAsParent;
690  }
691 
696  protected final void onChanged() {
697  if (isClean && builderParent != null) {
698  builderParent.markDirty();
699 
700  // Don't keep dispatching invalidations until build is called again.
701  isClean = false;
702  }
703  }
704 
716  @SuppressWarnings({"unused", "rawtypes"})
717  protected MapField internalGetMapField(int fieldNumber) {
718  // Note that we can't use descriptor names here because this method will
719  // be called when descriptor is being initialized.
720  throw new RuntimeException(
721  "No map fields found in " + getClass().getName());
722  }
723 
725  @SuppressWarnings({"unused", "rawtypes"})
726  protected MapField internalGetMutableMapField(int fieldNumber) {
727  // Note that we can't use descriptor names here because this method will
728  // be called when descriptor is being initialized.
729  throw new RuntimeException(
730  "No map fields found in " + getClass().getName());
731  }
732  }
733 
734  // =================================================================
735  // Extensions-related stuff
736 
737  public interface ExtendableMessageOrBuilder<
738  MessageType extends ExtendableMessage> extends MessageOrBuilder {
739  // Re-define for return type covariance.
740  @Override
742 
744  <Type> boolean hasExtension(
746 
748  <Type> int getExtensionCount(
749  ExtensionLite<MessageType, List<Type>> extension);
750 
754 
757  ExtensionLite<MessageType, List<Type>> extension,
758  int index);
759 
761  <Type> boolean hasExtension(
764  <Type> boolean hasExtension(
767  <Type> int getExtensionCount(
768  Extension<MessageType, List<Type>> extension);
770  <Type> int getExtensionCount(
771  GeneratedExtension<MessageType, List<Type>> extension);
780  Extension<MessageType, List<Type>> extension,
781  int index);
784  GeneratedExtension<MessageType, List<Type>> extension,
785  int index);
786  }
787 
823  public abstract static class ExtendableMessage<
824  MessageType extends ExtendableMessage>
825  extends GeneratedMessage
826  implements ExtendableMessageOrBuilder<MessageType> {
827 
828  private static final long serialVersionUID = 1L;
829 
830  private final FieldSet<FieldDescriptor> extensions;
831 
832  protected ExtendableMessage() {
833  this.extensions = FieldSet.newFieldSet();
834  }
835 
836  protected ExtendableMessage(
838  super(builder);
839  this.extensions = builder.buildExtensions();
840  }
841 
844  if (extension.getDescriptor().getContainingType() !=
846  // This can only happen if someone uses unchecked operations.
847  throw new IllegalArgumentException(
848  "Extension is for type \"" +
849  extension.getDescriptor().getContainingType().getFullName() +
850  "\" which does not match message type \"" +
851  getDescriptorForType().getFullName() + "\".");
852  }
853  }
854 
856  @Override
857  @SuppressWarnings("unchecked")
858  public final <Type> boolean hasExtension(final ExtensionLite<MessageType, Type> extensionLite) {
860 
862  return extensions.hasField(extension.getDescriptor());
863  }
864 
866  @Override
867  @SuppressWarnings("unchecked")
868  public final <Type> int getExtensionCount(
869  final ExtensionLite<MessageType, List<Type>> extensionLite) {
871 
873  final FieldDescriptor descriptor = extension.getDescriptor();
874  return extensions.getRepeatedFieldCount(descriptor);
875  }
876 
878  @Override
879  @SuppressWarnings("unchecked")
880  public final <Type> Type getExtension(final ExtensionLite<MessageType, Type> extensionLite) {
882 
884  FieldDescriptor descriptor = extension.getDescriptor();
885  final Object value = extensions.getField(descriptor);
886  if (value == null) {
887  if (descriptor.isRepeated()) {
888  return (Type) Collections.emptyList();
889  } else if (descriptor.getJavaType() ==
891  return (Type) extension.getMessageDefaultInstance();
892  } else {
893  return (Type) extension.fromReflectionType(
894  descriptor.getDefaultValue());
895  }
896  } else {
897  return (Type) extension.fromReflectionType(value);
898  }
899  }
900 
902  @Override
903  @SuppressWarnings("unchecked")
904  public final <Type> Type getExtension(
905  final ExtensionLite<MessageType, List<Type>> extensionLite, final int index) {
907 
909  FieldDescriptor descriptor = extension.getDescriptor();
910  return (Type) extension.singularFromReflectionType(
911  extensions.getRepeatedField(descriptor, index));
912  }
913 
915  @Override
916  public final <Type> boolean hasExtension(final Extension<MessageType, Type> extension) {
918  }
920  @Override
921  public final <Type> boolean hasExtension(
924  }
926  @Override
927  public final <Type> int getExtensionCount(
928  final Extension<MessageType, List<Type>> extension) {
929  return getExtensionCount((ExtensionLite<MessageType, List<Type>>) extension);
930  }
932  @Override
933  public final <Type> int getExtensionCount(
934  final GeneratedExtension<MessageType, List<Type>> extension) {
935  return getExtensionCount((ExtensionLite<MessageType, List<Type>>) extension);
936  }
938  @Override
941  }
943  @Override
944  public final <Type> Type getExtension(
947  }
949  @Override
950  public final <Type> Type getExtension(
951  final Extension<MessageType, List<Type>> extension, final int index) {
952  return getExtension((ExtensionLite<MessageType, List<Type>>) extension, index);
953  }
955  @Override
956  public final <Type> Type getExtension(
957  final GeneratedExtension<MessageType, List<Type>> extension, final int index) {
958  return getExtension((ExtensionLite<MessageType, List<Type>>) extension, index);
959  }
960 
962  protected boolean extensionsAreInitialized() {
963  return extensions.isInitialized();
964  }
965 
966  @Override
967  public boolean isInitialized() {
968  return super.isInitialized() && extensionsAreInitialized();
969  }
970 
971  @Override
972  protected boolean parseUnknownField(
975  ExtensionRegistryLite extensionRegistry,
976  int tag) throws IOException {
977  return MessageReflection.mergeFieldFrom(
978  input, unknownFields, extensionRegistry, getDescriptorForType(),
979  new MessageReflection.ExtensionAdapter(extensions), tag);
980  }
981 
982 
986  @Override
987  protected void makeExtensionsImmutable() {
988  extensions.makeImmutable();
989  }
990 
997  protected class ExtensionWriter {
998  // Imagine how much simpler this code would be if Java iterators had
999  // a way to get the next element without advancing the iterator.
1000 
1001  private final Iterator<Map.Entry<FieldDescriptor, Object>> iter =
1002  extensions.iterator();
1003  private Map.Entry<FieldDescriptor, Object> next;
1004  private final boolean messageSetWireFormat;
1005 
1006  private ExtensionWriter(final boolean messageSetWireFormat) {
1007  if (iter.hasNext()) {
1008  next = iter.next();
1009  }
1010  this.messageSetWireFormat = messageSetWireFormat;
1011  }
1012 
1013  public void writeUntil(final int end, final CodedOutputStream output)
1014  throws IOException {
1015  while (next != null && next.getKey().getNumber() < end) {
1016  FieldDescriptor descriptor = next.getKey();
1017  if (messageSetWireFormat && descriptor.getLiteJavaType() ==
1019  !descriptor.isRepeated()) {
1020  if (next instanceof LazyField.LazyEntry<?>) {
1021  output.writeRawMessageSetExtension(descriptor.getNumber(),
1022  ((LazyField.LazyEntry<?>) next).getField().toByteString());
1023  } else {
1024  output.writeMessageSetExtension(descriptor.getNumber(),
1025  (Message) next.getValue());
1026  }
1027  } else {
1028  // TODO(xiangl): Taken care of following code, it may cause
1029  // problem when we use LazyField for normal fields/extensions.
1030  // Due to the optional field can be duplicated at the end of
1031  // serialized bytes, which will make the serialized size change
1032  // after lazy field parsed. So when we use LazyField globally,
1033  // we need to change the following write method to write cached
1034  // bytes directly rather than write the parsed message.
1035  FieldSet.writeField(descriptor, next.getValue(), output);
1036  }
1037  if (iter.hasNext()) {
1038  next = iter.next();
1039  } else {
1040  next = null;
1041  }
1042  }
1043  }
1044  }
1045 
1047  return new ExtensionWriter(false);
1048  }
1050  return new ExtensionWriter(true);
1051  }
1052 
1054  protected int extensionsSerializedSize() {
1055  return extensions.getSerializedSize();
1056  }
1058  return extensions.getMessageSetSerializedSize();
1059  }
1060 
1061  // ---------------------------------------------------------------
1062  // Reflection
1063 
1064  protected Map<FieldDescriptor, Object> getExtensionFields() {
1065  return extensions.getAllFields();
1066  }
1067 
1068  @Override
1069  public Map<FieldDescriptor, Object> getAllFields() {
1070  final Map<FieldDescriptor, Object> result =
1071  super.getAllFieldsMutable(/* getBytesForString = */ false);
1072  result.putAll(getExtensionFields());
1073  return Collections.unmodifiableMap(result);
1074  }
1075 
1076  @Override
1077  public Map<FieldDescriptor, Object> getAllFieldsRaw() {
1078  final Map<FieldDescriptor, Object> result =
1079  super.getAllFieldsMutable(/* getBytesForString = */ false);
1080  result.putAll(getExtensionFields());
1081  return Collections.unmodifiableMap(result);
1082  }
1083 
1084  @Override
1085  public boolean hasField(final FieldDescriptor field) {
1086  if (field.isExtension()) {
1088  return extensions.hasField(field);
1089  } else {
1090  return super.hasField(field);
1091  }
1092  }
1093 
1094  @Override
1095  public Object getField(final FieldDescriptor field) {
1096  if (field.isExtension()) {
1098  final Object value = extensions.getField(field);
1099  if (value == null) {
1100  if (field.isRepeated()) {
1101  return Collections.emptyList();
1102  } else if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
1103  // Lacking an ExtensionRegistry, we have no way to determine the
1104  // extension's real type, so we return a DynamicMessage.
1105  return DynamicMessage.getDefaultInstance(field.getMessageType());
1106  } else {
1107  return field.getDefaultValue();
1108  }
1109  } else {
1110  return value;
1111  }
1112  } else {
1113  return super.getField(field);
1114  }
1115  }
1116 
1117  @Override
1119  if (field.isExtension()) {
1121  return extensions.getRepeatedFieldCount(field);
1122  } else {
1123  return super.getRepeatedFieldCount(field);
1124  }
1125  }
1126 
1127  @Override
1129  final int index) {
1130  if (field.isExtension()) {
1132  return extensions.getRepeatedField(field, index);
1133  } else {
1134  return super.getRepeatedField(field, index);
1135  }
1136  }
1137 
1139  if (field.getContainingType() != getDescriptorForType()) {
1140  throw new IllegalArgumentException(
1141  "FieldDescriptor does not match message type.");
1142  }
1143  }
1144  }
1145 
1183  @SuppressWarnings("unchecked")
1184  public abstract static class ExtendableBuilder<
1185  MessageType extends ExtendableMessage,
1186  BuilderType extends ExtendableBuilder<MessageType, BuilderType>>
1187  extends Builder<BuilderType>
1188  implements ExtendableMessageOrBuilder<MessageType> {
1189 
1190  private FieldSet<FieldDescriptor> extensions = FieldSet.emptySet();
1191 
1192  protected ExtendableBuilder() {}
1193 
1195  BuilderParent parent) {
1196  super(parent);
1197  }
1198 
1199  // For immutable message conversion.
1200  void internalSetExtensionSet(FieldSet<FieldDescriptor> extensions) {
1201  this.extensions = extensions;
1202  }
1203 
1204  @Override
1205  public BuilderType clear() {
1206  extensions = FieldSet.emptySet();
1207  return super.clear();
1208  }
1209 
1210  // This is implemented here only to work around an apparent bug in the
1211  // Java compiler and/or build system. See bug #1898463. The mere presence
1212  // of this clone() implementation makes it go away.
1213  @Override
1214  public BuilderType clone() {
1215  return super.clone();
1216  }
1217 
1218  private void ensureExtensionsIsMutable() {
1219  if (extensions.isImmutable()) {
1220  extensions = extensions.clone();
1221  }
1222  }
1223 
1226  if (extension.getDescriptor().getContainingType() !=
1228  // This can only happen if someone uses unchecked operations.
1229  throw new IllegalArgumentException(
1230  "Extension is for type \"" +
1231  extension.getDescriptor().getContainingType().getFullName() +
1232  "\" which does not match message type \"" +
1233  getDescriptorForType().getFullName() + "\".");
1234  }
1235  }
1236 
1238  @Override
1239  public final <Type> boolean hasExtension(final ExtensionLite<MessageType, Type> extensionLite) {
1241 
1242  verifyExtensionContainingType(extension);
1243  return extensions.hasField(extension.getDescriptor());
1244  }
1245 
1247  @Override
1248  public final <Type> int getExtensionCount(
1249  final ExtensionLite<MessageType, List<Type>> extensionLite) {
1251 
1252  verifyExtensionContainingType(extension);
1253  final FieldDescriptor descriptor = extension.getDescriptor();
1254  return extensions.getRepeatedFieldCount(descriptor);
1255  }
1256 
1258  @Override
1259  public final <Type> Type getExtension(final ExtensionLite<MessageType, Type> extensionLite) {
1261 
1262  verifyExtensionContainingType(extension);
1263  FieldDescriptor descriptor = extension.getDescriptor();
1264  final Object value = extensions.getField(descriptor);
1265  if (value == null) {
1266  if (descriptor.isRepeated()) {
1267  return (Type) Collections.emptyList();
1268  } else if (descriptor.getJavaType() ==
1270  return (Type) extension.getMessageDefaultInstance();
1271  } else {
1272  return (Type) extension.fromReflectionType(
1273  descriptor.getDefaultValue());
1274  }
1275  } else {
1276  return (Type) extension.fromReflectionType(value);
1277  }
1278  }
1279 
1281  @Override
1282  public final <Type> Type getExtension(
1283  final ExtensionLite<MessageType, List<Type>> extensionLite, final int index) {
1285 
1286  verifyExtensionContainingType(extension);
1287  FieldDescriptor descriptor = extension.getDescriptor();
1288  return (Type) extension.singularFromReflectionType(
1289  extensions.getRepeatedField(descriptor, index));
1290  }
1291 
1293  public final <Type> BuilderType setExtension(
1294  final ExtensionLite<MessageType, Type> extensionLite,
1295  final Type value) {
1297 
1298  verifyExtensionContainingType(extension);
1299  ensureExtensionsIsMutable();
1300  final FieldDescriptor descriptor = extension.getDescriptor();
1301  extensions.setField(descriptor, extension.toReflectionType(value));
1302  onChanged();
1303  return (BuilderType) this;
1304  }
1305 
1307  public final <Type> BuilderType setExtension(
1308  final ExtensionLite<MessageType, List<Type>> extensionLite,
1309  final int index, final Type value) {
1311 
1312  verifyExtensionContainingType(extension);
1313  ensureExtensionsIsMutable();
1314  final FieldDescriptor descriptor = extension.getDescriptor();
1315  extensions.setRepeatedField(
1316  descriptor, index,
1317  extension.singularToReflectionType(value));
1318  onChanged();
1319  return (BuilderType) this;
1320  }
1321 
1323  public final <Type> BuilderType addExtension(
1324  final ExtensionLite<MessageType, List<Type>> extensionLite,
1325  final Type value) {
1327 
1328  verifyExtensionContainingType(extension);
1329  ensureExtensionsIsMutable();
1330  final FieldDescriptor descriptor = extension.getDescriptor();
1331  extensions.addRepeatedField(
1332  descriptor, extension.singularToReflectionType(value));
1333  onChanged();
1334  return (BuilderType) this;
1335  }
1336 
1338  public final <Type> BuilderType clearExtension(
1339  final ExtensionLite<MessageType, ?> extensionLite) {
1341 
1342  verifyExtensionContainingType(extension);
1343  ensureExtensionsIsMutable();
1344  extensions.clearField(extension.getDescriptor());
1345  onChanged();
1346  return (BuilderType) this;
1347  }
1348 
1350  @Override
1351  public final <Type> boolean hasExtension(final Extension<MessageType, Type> extension) {
1352  return hasExtension((ExtensionLite<MessageType, Type>) extension);
1353  }
1355  @Override
1356  public final <Type> boolean hasExtension(
1358  return hasExtension((ExtensionLite<MessageType, Type>) extension);
1359  }
1361  @Override
1362  public final <Type> int getExtensionCount(
1363  final Extension<MessageType, List<Type>> extension) {
1364  return getExtensionCount((ExtensionLite<MessageType, List<Type>>) extension);
1365  }
1367  @Override
1368  public final <Type> int getExtensionCount(
1369  final GeneratedExtension<MessageType, List<Type>> extension) {
1370  return getExtensionCount((ExtensionLite<MessageType, List<Type>>) extension);
1371  }
1373  @Override
1375  return getExtension((ExtensionLite<MessageType, Type>) extension);
1376  }
1378  @Override
1379  public final <Type> Type getExtension(
1381  return getExtension((ExtensionLite<MessageType, Type>) extension);
1382  }
1384  @Override
1385  public final <Type> Type getExtension(
1386  final Extension<MessageType, List<Type>> extension, final int index) {
1387  return getExtension((ExtensionLite<MessageType, List<Type>>) extension, index);
1388  }
1390  @Override
1391  public final <Type> Type getExtension(
1392  final GeneratedExtension<MessageType, List<Type>> extension, final int index) {
1393  return getExtension((ExtensionLite<MessageType, List<Type>>) extension, index);
1394  }
1396  public final <Type> BuilderType setExtension(
1398  return setExtension((ExtensionLite<MessageType, Type>) extension, value);
1399  }
1401  public <Type> BuilderType setExtension(
1403  return setExtension((ExtensionLite<MessageType, Type>) extension, value);
1404  }
1406  public final <Type> BuilderType setExtension(
1407  final Extension<MessageType, List<Type>> extension,
1408  final int index, final Type value) {
1409  return setExtension((ExtensionLite<MessageType, List<Type>>) extension, index, value);
1410  }
1412  public <Type> BuilderType setExtension(
1413  final GeneratedExtension<MessageType, List<Type>> extension,
1414  final int index, final Type value) {
1415  return setExtension((ExtensionLite<MessageType, List<Type>>) extension, index, value);
1416  }
1418  public final <Type> BuilderType addExtension(
1419  final Extension<MessageType, List<Type>> extension, final Type value) {
1420  return addExtension((ExtensionLite<MessageType, List<Type>>) extension, value);
1421  }
1423  public <Type> BuilderType addExtension(
1424  final GeneratedExtension<MessageType, List<Type>> extension, final Type value) {
1425  return addExtension((ExtensionLite<MessageType, List<Type>>) extension, value);
1426  }
1428  public final <Type> BuilderType clearExtension(
1430  return clearExtension((ExtensionLite<MessageType, ?>) extension);
1431  }
1433  public <Type> BuilderType clearExtension(
1435  return clearExtension((ExtensionLite<MessageType, ?>) extension);
1436  }
1437 
1439  protected boolean extensionsAreInitialized() {
1440  return extensions.isInitialized();
1441  }
1442 
1447  private FieldSet<FieldDescriptor> buildExtensions() {
1448  extensions.makeImmutable();
1449  return extensions;
1450  }
1451 
1452  @Override
1453  public boolean isInitialized() {
1454  return super.isInitialized() && extensionsAreInitialized();
1455  }
1456 
1461  @Override
1462  protected boolean parseUnknownField(
1463  final CodedInputStream input,
1465  final ExtensionRegistryLite extensionRegistry,
1466  final int tag) throws IOException {
1467  return MessageReflection.mergeFieldFrom(
1468  input, unknownFields, extensionRegistry, getDescriptorForType(),
1469  new MessageReflection.BuilderAdapter(this), tag);
1470  }
1471 
1472  // ---------------------------------------------------------------
1473  // Reflection
1474 
1475  @Override
1476  public Map<FieldDescriptor, Object> getAllFields() {
1477  final Map<FieldDescriptor, Object> result = super.getAllFieldsMutable();
1478  result.putAll(extensions.getAllFields());
1479  return Collections.unmodifiableMap(result);
1480  }
1481 
1482  @Override
1483  public Object getField(final FieldDescriptor field) {
1484  if (field.isExtension()) {
1485  verifyContainingType(field);
1486  final Object value = extensions.getField(field);
1487  if (value == null) {
1488  if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
1489  // Lacking an ExtensionRegistry, we have no way to determine the
1490  // extension's real type, so we return a DynamicMessage.
1491  return DynamicMessage.getDefaultInstance(field.getMessageType());
1492  } else {
1493  return field.getDefaultValue();
1494  }
1495  } else {
1496  return value;
1497  }
1498  } else {
1499  return super.getField(field);
1500  }
1501  }
1502 
1503  @Override
1505  if (field.isExtension()) {
1506  verifyContainingType(field);
1507  return extensions.getRepeatedFieldCount(field);
1508  } else {
1509  return super.getRepeatedFieldCount(field);
1510  }
1511  }
1512 
1513  @Override
1515  final int index) {
1516  if (field.isExtension()) {
1517  verifyContainingType(field);
1518  return extensions.getRepeatedField(field, index);
1519  } else {
1520  return super.getRepeatedField(field, index);
1521  }
1522  }
1523 
1524  @Override
1525  public boolean hasField(final FieldDescriptor field) {
1526  if (field.isExtension()) {
1527  verifyContainingType(field);
1528  return extensions.hasField(field);
1529  } else {
1530  return super.hasField(field);
1531  }
1532  }
1533 
1534  @Override
1535  public BuilderType setField(final FieldDescriptor field,
1536  final Object value) {
1537  if (field.isExtension()) {
1538  verifyContainingType(field);
1539  ensureExtensionsIsMutable();
1540  extensions.setField(field, value);
1541  onChanged();
1542  return (BuilderType) this;
1543  } else {
1544  return super.setField(field, value);
1545  }
1546  }
1547 
1548  @Override
1549  public BuilderType clearField(final FieldDescriptor field) {
1550  if (field.isExtension()) {
1551  verifyContainingType(field);
1552  ensureExtensionsIsMutable();
1553  extensions.clearField(field);
1554  onChanged();
1555  return (BuilderType) this;
1556  } else {
1557  return super.clearField(field);
1558  }
1559  }
1560 
1561  @Override
1562  public BuilderType setRepeatedField(final FieldDescriptor field,
1563  final int index, final Object value) {
1564  if (field.isExtension()) {
1565  verifyContainingType(field);
1566  ensureExtensionsIsMutable();
1567  extensions.setRepeatedField(field, index, value);
1568  onChanged();
1569  return (BuilderType) this;
1570  } else {
1571  return super.setRepeatedField(field, index, value);
1572  }
1573  }
1574 
1575  @Override
1576  public BuilderType addRepeatedField(final FieldDescriptor field,
1577  final Object value) {
1578  if (field.isExtension()) {
1579  verifyContainingType(field);
1580  ensureExtensionsIsMutable();
1581  extensions.addRepeatedField(field, value);
1582  onChanged();
1583  return (BuilderType) this;
1584  } else {
1585  return super.addRepeatedField(field, value);
1586  }
1587  }
1588 
1589  protected final void mergeExtensionFields(final ExtendableMessage other) {
1590  ensureExtensionsIsMutable();
1591  extensions.mergeFrom(other.extensions);
1592  onChanged();
1593  }
1594 
1596  if (field.getContainingType() != getDescriptorForType()) {
1597  throw new IllegalArgumentException(
1598  "FieldDescriptor does not match message type.");
1599  }
1600  }
1601  }
1602 
1603  // -----------------------------------------------------------------
1604 
1609  static interface ExtensionDescriptorRetriever {
1610  FieldDescriptor getDescriptor();
1611  }
1612 
1614  public static <ContainingType extends Message, Type>
1615  GeneratedExtension<ContainingType, Type>
1617  final int descriptorIndex,
1618  final Class singularType,
1619  final Message defaultInstance) {
1620  // For extensions scoped within a Message, we use the Message to resolve
1621  // the outer class's descriptor, from which the extension descriptor is
1622  // obtained.
1625  @Override
1626  public FieldDescriptor loadDescriptor() {
1627  return scope.getDescriptorForType().getExtensions().get(descriptorIndex);
1628  }
1629  },
1630  singularType,
1631  defaultInstance,
1633  }
1634 
1636  public static <ContainingType extends Message, Type>
1638  newFileScopedGeneratedExtension(final Class singularType,
1639  final Message defaultInstance) {
1640  // For extensions scoped within a file, we rely on the outer class's
1641  // static initializer to call internalInit() on the extension when the
1642  // descriptor is available.
1644  null, // ExtensionDescriptorRetriever is initialized in internalInit();
1645  singularType,
1646  defaultInstance,
1648  }
1649 
1650  private abstract static class CachedDescriptorRetriever
1651  implements ExtensionDescriptorRetriever {
1652  private volatile FieldDescriptor descriptor;
1653  protected abstract FieldDescriptor loadDescriptor();
1654 
1655  @Override
1657  if (descriptor == null) {
1658  synchronized (this) {
1659  if (descriptor == null) {
1661  }
1662  }
1663  }
1664  return descriptor;
1665  }
1666  }
1667 
1675  public static <ContainingType extends Message, Type>
1678  final Message scope, final String name,
1679  final Class singularType, final Message defaultInstance) {
1680  // For extensions scoped within a Message, we use the Message to resolve
1681  // the outer class's descriptor, from which the extension descriptor is
1682  // obtained.
1685  @Override
1686  protected FieldDescriptor loadDescriptor() {
1687  return scope.getDescriptorForType().findFieldByName(name);
1688  }
1689  },
1690  singularType,
1691  defaultInstance,
1693  }
1694 
1702  public static <ContainingType extends Message, Type>
1705  final Class singularType, final Message defaultInstance,
1706  final String descriptorOuterClass, final String extensionName) {
1707  // For extensions scoped within a file, we load the descriptor outer
1708  // class and rely on it to get the FileDescriptor which then can be
1709  // used to obtain the extension's FieldDescriptor.
1712  @Override
1713  protected FieldDescriptor loadDescriptor() {
1714  try {
1715  Class clazz = singularType.getClassLoader().loadClass(descriptorOuterClass);
1716  FileDescriptor file = (FileDescriptor) clazz.getField("descriptor").get(null);
1717  return file.findExtensionByName(extensionName);
1718  } catch (Exception e) {
1719  throw new RuntimeException(
1720  "Cannot load descriptors: "
1721  + descriptorOuterClass
1722  + " is not a valid descriptor class name",
1723  e);
1724  }
1725  }
1726  },
1727  singularType,
1728  defaultInstance,
1730  }
1731 
1757  public static class GeneratedExtension<
1758  ContainingType extends Message, Type> extends
1759  Extension<ContainingType, Type> {
1760  // TODO(kenton): Find ways to avoid using Java reflection within this
1761  // class. Also try to avoid suppressing unchecked warnings.
1762 
1763  // We can't always initialize the descriptor of a GeneratedExtension when
1764  // we first construct it due to initialization order difficulties (namely,
1765  // the descriptor may not have been constructed yet, since it is often
1766  // constructed by the initializer of a separate module).
1767  //
1768  // In the case of nested extensions, we initialize the
1769  // ExtensionDescriptorRetriever with an instance that uses the scoping
1770  // Message's default instance to retrieve the extension's descriptor.
1771  //
1772  // In the case of non-nested extensions, we initialize the
1773  // ExtensionDescriptorRetriever to null and rely on the outer class's static
1774  // initializer to call internalInit() after the descriptor has been parsed.
1775  GeneratedExtension(ExtensionDescriptorRetriever descriptorRetriever,
1776  Class singularType,
1778  ExtensionType extensionType) {
1779  if (Message.class.isAssignableFrom(singularType) &&
1780  !singularType.isInstance(messageDefaultInstance)) {
1781  throw new IllegalArgumentException(
1782  "Bad messageDefaultInstance for " + singularType.getName());
1783  }
1784  this.descriptorRetriever = descriptorRetriever;
1785  this.singularType = singularType;
1786  this.messageDefaultInstance = messageDefaultInstance;
1787 
1788  if (ProtocolMessageEnum.class.isAssignableFrom(singularType)) {
1789  this.enumValueOf = getMethodOrDie(singularType, "valueOf",
1790  EnumValueDescriptor.class);
1791  this.enumGetValueDescriptor =
1792  getMethodOrDie(singularType, "getValueDescriptor");
1793  } else {
1794  this.enumValueOf = null;
1795  this.enumGetValueDescriptor = null;
1796  }
1797  this.extensionType = extensionType;
1798  }
1799 
1802  if (descriptorRetriever != null) {
1803  throw new IllegalStateException("Already initialized.");
1804  }
1806  new ExtensionDescriptorRetriever() {
1807  @Override
1808  public FieldDescriptor getDescriptor() {
1809  return descriptor;
1810  }
1811  };
1812  }
1813 
1814  private ExtensionDescriptorRetriever descriptorRetriever;
1815  private final Class singularType;
1817  private final Method enumValueOf;
1819  private final ExtensionType extensionType;
1820 
1821  @Override
1823  if (descriptorRetriever == null) {
1824  throw new IllegalStateException(
1825  "getDescriptor() called before internalInit()");
1826  }
1827  return descriptorRetriever.getDescriptor();
1828  }
1829 
1834  @Override
1836  return messageDefaultInstance;
1837  }
1838 
1839  @Override
1840  protected ExtensionType getExtensionType() {
1841  return extensionType;
1842  }
1843 
1850  @Override
1851  @SuppressWarnings("unchecked")
1852  protected Object fromReflectionType(final Object value) {
1854  if (descriptor.isRepeated()) {
1855  if (descriptor.getJavaType() == FieldDescriptor.JavaType.MESSAGE ||
1856  descriptor.getJavaType() == FieldDescriptor.JavaType.ENUM) {
1857  // Must convert the whole list.
1858  final List result = new ArrayList();
1859  for (final Object element : (List) value) {
1860  result.add(singularFromReflectionType(element));
1861  }
1862  return result;
1863  } else {
1864  return value;
1865  }
1866  } else {
1868  }
1869  }
1870 
1875  @Override
1876  protected Object singularFromReflectionType(final Object value) {
1878  switch (descriptor.getJavaType()) {
1879  case MESSAGE:
1880  if (singularType.isInstance(value)) {
1881  return value;
1882  } else {
1884  .mergeFrom((Message) value).build();
1885  }
1886  case ENUM:
1888  default:
1889  return value;
1890  }
1891  }
1892 
1899  @Override
1900  @SuppressWarnings("unchecked")
1901  protected Object toReflectionType(final Object value) {
1903  if (descriptor.isRepeated()) {
1904  if (descriptor.getJavaType() == FieldDescriptor.JavaType.ENUM) {
1905  // Must convert the whole list.
1906  final List result = new ArrayList();
1907  for (final Object element : (List) value) {
1908  result.add(singularToReflectionType(element));
1909  }
1910  return result;
1911  } else {
1912  return value;
1913  }
1914  } else {
1916  }
1917  }
1918 
1923  @Override
1924  protected Object singularToReflectionType(final Object value) {
1926  switch (descriptor.getJavaType()) {
1927  case ENUM:
1929  default:
1930  return value;
1931  }
1932  }
1933 
1934  @Override
1935  public int getNumber() {
1936  return getDescriptor().getNumber();
1937  }
1938 
1939  @Override
1941  return getDescriptor().getLiteType();
1942  }
1943 
1944  @Override
1945  public boolean isRepeated() {
1946  return getDescriptor().isRepeated();
1947  }
1948 
1949  @Override
1950  @SuppressWarnings("unchecked")
1952  if (isRepeated()) {
1953  return (Type) Collections.emptyList();
1954  }
1955  if (getDescriptor().getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
1956  return (Type) messageDefaultInstance;
1957  }
1960  }
1961  }
1962 
1963  // =================================================================
1964 
1966  @SuppressWarnings("unchecked")
1967  private static Method getMethodOrDie(
1968  final Class clazz, final String name, final Class... params) {
1969  try {
1970  return clazz.getMethod(name, params);
1971  } catch (NoSuchMethodException e) {
1972  throw new RuntimeException(
1973  "Generated message class \"" + clazz.getName() +
1974  "\" missing method \"" + name + "\".", e);
1975  }
1976  }
1977 
1979  private static Object invokeOrDie(
1980  final Method method, final Object object, final Object... params) {
1981  try {
1982  return method.invoke(object, params);
1983  } catch (IllegalAccessException e) {
1984  throw new RuntimeException(
1985  "Couldn't use Java reflection to implement protocol message " +
1986  "reflection.", e);
1987  } catch (InvocationTargetException e) {
1988  final Throwable cause = e.getCause();
1989  if (cause instanceof RuntimeException) {
1990  throw (RuntimeException) cause;
1991  } else if (cause instanceof Error) {
1992  throw (Error) cause;
1993  } else {
1994  throw new RuntimeException(
1995  "Unexpected exception thrown by generated accessor method.", cause);
1996  }
1997  }
1998  }
1999 
2011  @SuppressWarnings({"rawtypes", "unused"})
2012  protected MapField internalGetMapField(int fieldNumber) {
2013  // Note that we can't use descriptor names here because this method will
2014  // be called when descriptor is being initialized.
2015  throw new RuntimeException(
2016  "No map fields found in " + getClass().getName());
2017  }
2018 
2023  public static final class FieldAccessorTable {
2024 
2036  final Descriptor descriptor,
2037  final String[] camelCaseNames,
2038  final Class<? extends GeneratedMessage> messageClass,
2039  final Class<? extends Builder> builderClass) {
2040  this(descriptor, camelCaseNames);
2041  ensureFieldAccessorsInitialized(messageClass, builderClass);
2042  }
2043 
2049  final Descriptor descriptor,
2050  final String[] camelCaseNames) {
2051  this.descriptor = descriptor;
2052  this.camelCaseNames = camelCaseNames;
2053  fields = new FieldAccessor[descriptor.getFields().size()];
2054  oneofs = new OneofAccessor[descriptor.getOneofs().size()];
2055  initialized = false;
2056  }
2057 
2059  boolean result = true;
2060  return result;
2061  }
2062 
2071  Class<? extends GeneratedMessage> messageClass,
2072  Class<? extends Builder> builderClass) {
2073  if (initialized) { return this; }
2074  synchronized (this) {
2075  if (initialized) { return this; }
2076  int fieldsSize = fields.length;
2077  for (int i = 0; i < fieldsSize; i++) {
2079  String containingOneofCamelCaseName = null;
2080  if (field.getContainingOneof() != null) {
2081  containingOneofCamelCaseName =
2082  camelCaseNames[fieldsSize + field.getContainingOneof().getIndex()];
2083  }
2084  if (field.isRepeated()) {
2085  if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
2086  if (field.isMapField() && isMapFieldEnabled(field)) {
2087  fields[i] = new MapFieldAccessor(
2088  field, camelCaseNames[i], messageClass, builderClass);
2089  } else {
2091  field, camelCaseNames[i], messageClass, builderClass);
2092  }
2093  } else if (field.getJavaType() == FieldDescriptor.JavaType.ENUM) {
2095  field, camelCaseNames[i], messageClass, builderClass);
2096  } else {
2098  field, camelCaseNames[i], messageClass, builderClass);
2099  }
2100  } else {
2101  if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
2103  field, camelCaseNames[i], messageClass, builderClass,
2104  containingOneofCamelCaseName);
2105  } else if (field.getJavaType() == FieldDescriptor.JavaType.ENUM) {
2107  field, camelCaseNames[i], messageClass, builderClass,
2108  containingOneofCamelCaseName);
2109  } else if (field.getJavaType() == FieldDescriptor.JavaType.STRING) {
2111  field, camelCaseNames[i], messageClass, builderClass,
2112  containingOneofCamelCaseName);
2113  } else {
2115  field, camelCaseNames[i], messageClass, builderClass,
2116  containingOneofCamelCaseName);
2117  }
2118  }
2119  }
2120 
2121  int oneofsSize = oneofs.length;
2122  for (int i = 0; i < oneofsSize; i++) {
2123  oneofs[i] = new OneofAccessor(
2124  descriptor, camelCaseNames[i + fieldsSize],
2125  messageClass, builderClass);
2126  }
2127  initialized = true;
2128  camelCaseNames = null;
2129  return this;
2130  }
2131  }
2132 
2133  private final Descriptor descriptor;
2134  private final FieldAccessor[] fields;
2135  private String[] camelCaseNames;
2136  private final OneofAccessor[] oneofs;
2137  private volatile boolean initialized;
2138 
2141  if (field.getContainingType() != descriptor) {
2142  throw new IllegalArgumentException(
2143  "FieldDescriptor does not match message type.");
2144  } else if (field.isExtension()) {
2145  // If this type had extensions, it would subclass ExtendableMessage,
2146  // which overrides the reflection interface to handle extensions.
2147  throw new IllegalArgumentException(
2148  "This type does not have extensions.");
2149  }
2150  return fields[field.getIndex()];
2151  }
2152 
2154  private OneofAccessor getOneof(final OneofDescriptor oneof) {
2155  if (oneof.getContainingType() != descriptor) {
2156  throw new IllegalArgumentException(
2157  "OneofDescriptor does not match message type.");
2158  }
2159  return oneofs[oneof.getIndex()];
2160  }
2161 
2166  private interface FieldAccessor {
2167  Object get(GeneratedMessage message);
2168  Object get(GeneratedMessage.Builder builder);
2170  Object getRaw(GeneratedMessage.Builder builder);
2171  void set(Builder builder, Object value);
2173  Object getRepeated(GeneratedMessage.Builder builder, int index);
2175  Object getRepeatedRaw(GeneratedMessage.Builder builder, int index);
2176  void setRepeated(Builder builder,
2177  int index, Object value);
2178  void addRepeated(Builder builder, Object value);
2179  boolean has(GeneratedMessage message);
2180  boolean has(GeneratedMessage.Builder builder);
2183  void clear(Builder builder);
2187  int index);
2188  }
2189 
2191  private static class OneofAccessor {
2192  OneofAccessor(
2193  final Descriptor descriptor, final String camelCaseName,
2194  final Class<? extends GeneratedMessage> messageClass,
2195  final Class<? extends Builder> builderClass) {
2196  this.descriptor = descriptor;
2197  caseMethod =
2198  getMethodOrDie(messageClass, "get" + camelCaseName + "Case");
2200  getMethodOrDie(builderClass, "get" + camelCaseName + "Case");
2201  clearMethod = getMethodOrDie(builderClass, "clear" + camelCaseName);
2202  }
2203 
2204  private final Descriptor descriptor;
2205  private final Method caseMethod;
2206  private final Method caseMethodBuilder;
2207  private final Method clearMethod;
2208 
2209  public boolean has(final GeneratedMessage message) {
2210  if (((Internal.EnumLite) invokeOrDie(caseMethod, message)).getNumber() == 0) {
2211  return false;
2212  }
2213  return true;
2214  }
2215 
2216  public boolean has(GeneratedMessage.Builder builder) {
2217  if (((Internal.EnumLite) invokeOrDie(caseMethodBuilder, builder)).getNumber() == 0) {
2218  return false;
2219  }
2220  return true;
2221  }
2222 
2224  int fieldNumber = ((Internal.EnumLite) invokeOrDie(caseMethod, message)).getNumber();
2225  if (fieldNumber > 0) {
2226  return descriptor.findFieldByNumber(fieldNumber);
2227  }
2228  return null;
2229  }
2230 
2232  int fieldNumber = ((Internal.EnumLite) invokeOrDie(caseMethodBuilder, builder)).getNumber();
2233  if (fieldNumber > 0) {
2234  return descriptor.findFieldByNumber(fieldNumber);
2235  }
2236  return null;
2237  }
2238 
2239  public void clear(final Builder builder) {
2240  invokeOrDie(clearMethod, builder);
2241  }
2242  }
2243 
2244  private static boolean supportFieldPresence(FileDescriptor file) {
2245  return file.getSyntax() == FileDescriptor.Syntax.PROTO2;
2246  }
2247 
2248  // ---------------------------------------------------------------
2249 
2250  private static class SingularFieldAccessor implements FieldAccessor {
2252  final FieldDescriptor descriptor, final String camelCaseName,
2253  final Class<? extends GeneratedMessage> messageClass,
2254  final Class<? extends Builder> builderClass,
2255  final String containingOneofCamelCaseName) {
2256  field = descriptor;
2257  isOneofField = descriptor.getContainingOneof() != null;
2259  || (!isOneofField && descriptor.getJavaType() == FieldDescriptor.JavaType.MESSAGE);
2260  getMethod = getMethodOrDie(messageClass, "get" + camelCaseName);
2261  getMethodBuilder = getMethodOrDie(builderClass, "get" + camelCaseName);
2262  type = getMethod.getReturnType();
2263  setMethod = getMethodOrDie(builderClass, "set" + camelCaseName, type);
2264  hasMethod =
2265  hasHasMethod ? getMethodOrDie(messageClass, "has" + camelCaseName) : null;
2267  hasHasMethod ? getMethodOrDie(builderClass, "has" + camelCaseName) : null;
2268  clearMethod = getMethodOrDie(builderClass, "clear" + camelCaseName);
2270  messageClass, "get" + containingOneofCamelCaseName + "Case") : null;
2272  builderClass, "get" + containingOneofCamelCaseName + "Case") : null;
2273  }
2274 
2275  // Note: We use Java reflection to call public methods rather than
2276  // access private fields directly as this avoids runtime security
2277  // checks.
2278  protected final Class<?> type;
2279  protected final Method getMethod;
2280  protected final Method getMethodBuilder;
2281  protected final Method setMethod;
2282  protected final Method hasMethod;
2283  protected final Method hasMethodBuilder;
2284  protected final Method clearMethod;
2285  protected final Method caseMethod;
2286  protected final Method caseMethodBuilder;
2287  protected final FieldDescriptor field;
2288  protected final boolean isOneofField;
2289  protected final boolean hasHasMethod;
2290 
2292  return ((Internal.EnumLite) invokeOrDie(caseMethod, message)).getNumber();
2293  }
2294 
2295  private int getOneofFieldNumber(final GeneratedMessage.Builder builder) {
2296  return ((Internal.EnumLite) invokeOrDie(caseMethodBuilder, builder)).getNumber();
2297  }
2298 
2299  @Override
2300  public Object get(final GeneratedMessage message) {
2301  return invokeOrDie(getMethod, message);
2302  }
2303  @Override
2304  public Object get(GeneratedMessage.Builder builder) {
2305  return invokeOrDie(getMethodBuilder, builder);
2306  }
2307  @Override
2308  public Object getRaw(final GeneratedMessage message) {
2309  return get(message);
2310  }
2311  @Override
2312  public Object getRaw(GeneratedMessage.Builder builder) {
2313  return get(builder);
2314  }
2315  @Override
2316  public void set(final Builder builder, final Object value) {
2317  invokeOrDie(setMethod, builder, value);
2318  }
2319  @Override
2320  public Object getRepeated(final GeneratedMessage message, final int index) {
2321  throw new UnsupportedOperationException(
2322  "getRepeatedField() called on a singular field.");
2323  }
2324  @Override
2325  public Object getRepeatedRaw(final GeneratedMessage message, final int index) {
2326  throw new UnsupportedOperationException(
2327  "getRepeatedFieldRaw() called on a singular field.");
2328  }
2329  @Override
2330  public Object getRepeated(GeneratedMessage.Builder builder, int index) {
2331  throw new UnsupportedOperationException(
2332  "getRepeatedField() called on a singular field.");
2333  }
2334  @Override
2335  public Object getRepeatedRaw(GeneratedMessage.Builder builder, int index) {
2336  throw new UnsupportedOperationException(
2337  "getRepeatedFieldRaw() called on a singular field.");
2338  }
2339  @Override
2340  public void setRepeated(final Builder builder, final int index, final Object value) {
2341  throw new UnsupportedOperationException(
2342  "setRepeatedField() called on a singular field.");
2343  }
2344  @Override
2345  public void addRepeated(final Builder builder, final Object value) {
2346  throw new UnsupportedOperationException(
2347  "addRepeatedField() called on a singular field.");
2348  }
2349  @Override
2350  public boolean has(final GeneratedMessage message) {
2351  if (!hasHasMethod) {
2352  if (isOneofField) {
2354  }
2355  return !get(message).equals(field.getDefaultValue());
2356  }
2357  return (Boolean) invokeOrDie(hasMethod, message);
2358  }
2359  @Override
2360  public boolean has(GeneratedMessage.Builder builder) {
2361  if (!hasHasMethod) {
2362  if (isOneofField) {
2363  return getOneofFieldNumber(builder) == field.getNumber();
2364  }
2365  return !get(builder).equals(field.getDefaultValue());
2366  }
2367  return (Boolean) invokeOrDie(hasMethodBuilder, builder);
2368  }
2369  @Override
2371  throw new UnsupportedOperationException(
2372  "getRepeatedFieldSize() called on a singular field.");
2373  }
2374  @Override
2376  throw new UnsupportedOperationException(
2377  "getRepeatedFieldSize() called on a singular field.");
2378  }
2379  @Override
2380  public void clear(final Builder builder) {
2381  invokeOrDie(clearMethod, builder);
2382  }
2383  @Override
2385  throw new UnsupportedOperationException(
2386  "newBuilderForField() called on a non-Message type.");
2387  }
2388  @Override
2390  throw new UnsupportedOperationException(
2391  "getFieldBuilder() called on a non-Message type.");
2392  }
2393  @Override
2395  throw new UnsupportedOperationException(
2396  "getRepeatedFieldBuilder() called on a non-Message type.");
2397  }
2398  }
2399 
2400  private static class RepeatedFieldAccessor implements FieldAccessor {
2401  protected final Class type;
2402  protected final Method getMethod;
2403  protected final Method getMethodBuilder;
2404  protected final Method getRepeatedMethod;
2406  protected final Method setRepeatedMethod;
2407  protected final Method addRepeatedMethod;
2408  protected final Method getCountMethod;
2410  protected final Method clearMethod;
2411 
2413  final FieldDescriptor descriptor, final String camelCaseName,
2414  final Class<? extends GeneratedMessage> messageClass,
2415  final Class<? extends Builder> builderClass) {
2416  getMethod = getMethodOrDie(messageClass,
2417  "get" + camelCaseName + "List");
2418  getMethodBuilder = getMethodOrDie(builderClass,
2419  "get" + camelCaseName + "List");
2421  getMethodOrDie(messageClass, "get" + camelCaseName, Integer.TYPE);
2423  getMethodOrDie(builderClass, "get" + camelCaseName, Integer.TYPE);
2424  type = getRepeatedMethod.getReturnType();
2426  getMethodOrDie(builderClass, "set" + camelCaseName,
2427  Integer.TYPE, type);
2429  getMethodOrDie(builderClass, "add" + camelCaseName, type);
2430  getCountMethod =
2431  getMethodOrDie(messageClass, "get" + camelCaseName + "Count");
2433  getMethodOrDie(builderClass, "get" + camelCaseName + "Count");
2434 
2435  clearMethod = getMethodOrDie(builderClass, "clear" + camelCaseName);
2436  }
2437 
2438  @Override
2439  public Object get(final GeneratedMessage message) {
2440  return invokeOrDie(getMethod, message);
2441  }
2442  @Override
2443  public Object get(GeneratedMessage.Builder builder) {
2444  return invokeOrDie(getMethodBuilder, builder);
2445  }
2446  @Override
2447  public Object getRaw(final GeneratedMessage message) {
2448  return get(message);
2449  }
2450  @Override
2451  public Object getRaw(GeneratedMessage.Builder builder) {
2452  return get(builder);
2453  }
2454  @Override
2455  public void set(final Builder builder, final Object value) {
2456  // Add all the elements individually. This serves two purposes:
2457  // 1) Verifies that each element has the correct type.
2458  // 2) Insures that the caller cannot modify the list later on and
2459  // have the modifications be reflected in the message.
2460  clear(builder);
2461  for (final Object element : (List<?>) value) {
2462  addRepeated(builder, element);
2463  }
2464  }
2465  @Override
2466  public Object getRepeated(final GeneratedMessage message, final int index) {
2468  }
2469  @Override
2470  public Object getRepeated(GeneratedMessage.Builder builder, int index) {
2471  return invokeOrDie(getRepeatedMethodBuilder, builder, index);
2472  }
2473  @Override
2475  return getRepeated(message, index);
2476  }
2477  @Override
2478  public Object getRepeatedRaw(GeneratedMessage.Builder builder, int index) {
2479  return getRepeated(builder, index);
2480  }
2481  @Override
2482  public void setRepeated(final Builder builder, final int index, final Object value) {
2484  }
2485  @Override
2486  public void addRepeated(final Builder builder, final Object value) {
2487  invokeOrDie(addRepeatedMethod, builder, value);
2488  }
2489  @Override
2490  public boolean has(final GeneratedMessage message) {
2491  throw new UnsupportedOperationException(
2492  "hasField() called on a repeated field.");
2493  }
2494  @Override
2495  public boolean has(GeneratedMessage.Builder builder) {
2496  throw new UnsupportedOperationException(
2497  "hasField() called on a repeated field.");
2498  }
2499  @Override
2501  return (Integer) invokeOrDie(getCountMethod, message);
2502  }
2503  @Override
2505  return (Integer) invokeOrDie(getCountMethodBuilder, builder);
2506  }
2507  @Override
2508  public void clear(final Builder builder) {
2509  invokeOrDie(clearMethod, builder);
2510  }
2511  @Override
2513  throw new UnsupportedOperationException(
2514  "newBuilderForField() called on a non-Message type.");
2515  }
2516  @Override
2518  throw new UnsupportedOperationException(
2519  "getFieldBuilder() called on a non-Message type.");
2520  }
2521  @Override
2523  throw new UnsupportedOperationException(
2524  "getRepeatedFieldBuilder() called on a non-Message type.");
2525  }
2526  }
2527 
2528  private static class MapFieldAccessor implements FieldAccessor {
2530  final FieldDescriptor descriptor, final String camelCaseName,
2531  final Class<? extends GeneratedMessage> messageClass,
2532  final Class<? extends Builder> builderClass) {
2533  field = descriptor;
2534  Method getDefaultInstanceMethod =
2535  getMethodOrDie(messageClass, "getDefaultInstance");
2536  MapField defaultMapField = getMapField(
2537  (GeneratedMessage) invokeOrDie(getDefaultInstanceMethod, null));
2539  defaultMapField.getMapEntryMessageDefaultInstance();
2540  }
2541 
2542  private final FieldDescriptor field;
2544 
2546  return (MapField<?, ?>) message.internalGetMapField(field.getNumber());
2547  }
2548 
2550  return (MapField<?, ?>) builder.internalGetMapField(field.getNumber());
2551  }
2552 
2554  GeneratedMessage.Builder builder) {
2555  return (MapField<?, ?>) builder.internalGetMutableMapField(
2556  field.getNumber());
2557  }
2558 
2559  @Override
2560  @SuppressWarnings("unchecked")
2561  public Object get(GeneratedMessage message) {
2562  List result = new ArrayList();
2563  for (int i = 0; i < getRepeatedCount(message); i++) {
2564  result.add(getRepeated(message, i));
2565  }
2566  return Collections.unmodifiableList(result);
2567  }
2568 
2569  @Override
2570  @SuppressWarnings("unchecked")
2571  public Object get(Builder builder) {
2572  List result = new ArrayList();
2573  for (int i = 0; i < getRepeatedCount(builder); i++) {
2574  result.add(getRepeated(builder, i));
2575  }
2576  return Collections.unmodifiableList(result);
2577  }
2578 
2579  @Override
2581  return get(message);
2582  }
2583 
2584  @Override
2585  public Object getRaw(GeneratedMessage.Builder builder) {
2586  return get(builder);
2587  }
2588 
2589  @Override
2590  public void set(Builder builder, Object value) {
2591  clear(builder);
2592  for (Object entry : (List) value) {
2593  addRepeated(builder, entry);
2594  }
2595  }
2596 
2597  @Override
2599  return getMapField(message).getList().get(index);
2600  }
2601 
2602  @Override
2603  public Object getRepeated(Builder builder, int index) {
2604  return getMapField(builder).getList().get(index);
2605  }
2606 
2607  @Override
2609  return getRepeated(message, index);
2610  }
2611 
2612  @Override
2613  public Object getRepeatedRaw(Builder builder, int index) {
2614  return getRepeated(builder, index);
2615  }
2616 
2617  @Override
2618  public void setRepeated(Builder builder, int index, Object value) {
2619  getMutableMapField(builder).getMutableList().set(index, (Message) value);
2620  }
2621 
2622  @Override
2623  public void addRepeated(Builder builder, Object value) {
2624  getMutableMapField(builder).getMutableList().add((Message) value);
2625  }
2626 
2627  @Override
2628  public boolean has(GeneratedMessage message) {
2629  throw new UnsupportedOperationException(
2630  "hasField() is not supported for repeated fields.");
2631  }
2632 
2633  @Override
2634  public boolean has(Builder builder) {
2635  throw new UnsupportedOperationException(
2636  "hasField() is not supported for repeated fields.");
2637  }
2638 
2639  @Override
2641  return getMapField(message).getList().size();
2642  }
2643 
2644  @Override
2645  public int getRepeatedCount(Builder builder) {
2646  return getMapField(builder).getList().size();
2647  }
2648 
2649  @Override
2650  public void clear(Builder builder) {
2651  getMutableMapField(builder).getMutableList().clear();
2652  }
2653 
2654  @Override
2657  }
2658 
2659  @Override
2661  throw new UnsupportedOperationException(
2662  "Nested builder not supported for map fields.");
2663  }
2664 
2665  @Override
2667  throw new UnsupportedOperationException(
2668  "Nested builder not supported for map fields.");
2669  }
2670  }
2671 
2672  // ---------------------------------------------------------------
2673 
2674  private static final class SingularEnumFieldAccessor
2675  extends SingularFieldAccessor {
2677  final FieldDescriptor descriptor, final String camelCaseName,
2678  final Class<? extends GeneratedMessage> messageClass,
2679  final Class<? extends Builder> builderClass,
2680  final String containingOneofCamelCaseName) {
2681  super(descriptor, camelCaseName, messageClass, builderClass, containingOneofCamelCaseName);
2682 
2683  enumDescriptor = descriptor.getEnumType();
2684 
2685  valueOfMethod = getMethodOrDie(type, "valueOf",
2686  EnumValueDescriptor.class);
2688  getMethodOrDie(type, "getValueDescriptor");
2689 
2690  supportUnknownEnumValue = descriptor.getFile().supportsUnknownEnumValue();
2692  getValueMethod =
2693  getMethodOrDie(messageClass, "get" + camelCaseName + "Value");
2695  getMethodOrDie(builderClass, "get" + camelCaseName + "Value");
2696  setValueMethod =
2697  getMethodOrDie(builderClass, "set" + camelCaseName + "Value", int.class);
2698  }
2699  }
2700 
2702 
2705 
2706  private boolean supportUnknownEnumValue;
2710 
2711  @Override
2712  public Object get(final GeneratedMessage message) {
2714  int value = (Integer) invokeOrDie(getValueMethod, message);
2716  }
2717  return invokeOrDie(getValueDescriptorMethod, super.get(message));
2718  }
2719 
2720  @Override
2721  public Object get(final GeneratedMessage.Builder builder) {
2723  int value = (Integer) invokeOrDie(getValueMethodBuilder, builder);
2725  }
2726  return invokeOrDie(getValueDescriptorMethod, super.get(builder));
2727  }
2728 
2729  @Override
2730  public void set(final Builder builder, final Object value) {
2732  invokeOrDie(setValueMethod, builder,
2733  ((EnumValueDescriptor) value).getNumber());
2734  return;
2735  }
2736  super.set(builder, invokeOrDie(valueOfMethod, null, value));
2737  }
2738  }
2739 
2740  private static final class RepeatedEnumFieldAccessor
2741  extends RepeatedFieldAccessor {
2743  final FieldDescriptor descriptor, final String camelCaseName,
2744  final Class<? extends GeneratedMessage> messageClass,
2745  final Class<? extends Builder> builderClass) {
2746  super(descriptor, camelCaseName, messageClass, builderClass);
2747 
2748  enumDescriptor = descriptor.getEnumType();
2749 
2750  valueOfMethod = getMethodOrDie(type, "valueOf",
2751  EnumValueDescriptor.class);
2753  getMethodOrDie(type, "getValueDescriptor");
2754 
2755  supportUnknownEnumValue = descriptor.getFile().supportsUnknownEnumValue();
2758  getMethodOrDie(messageClass, "get" + camelCaseName + "Value", int.class);
2760  getMethodOrDie(builderClass, "get" + camelCaseName + "Value", int.class);
2762  getMethodOrDie(builderClass, "set" + camelCaseName + "Value", int.class, int.class);
2764  getMethodOrDie(builderClass, "add" + camelCaseName + "Value", int.class);
2765  }
2766  }
2768 
2769  private final Method valueOfMethod;
2771 
2772  private boolean supportUnknownEnumValue;
2777 
2778  @Override
2779  @SuppressWarnings("unchecked")
2780  public Object get(final GeneratedMessage message) {
2781  final List newList = new ArrayList();
2782  final int size = getRepeatedCount(message);
2783  for (int i = 0; i < size; i++) {
2784  newList.add(getRepeated(message, i));
2785  }
2786  return Collections.unmodifiableList(newList);
2787  }
2788 
2789  @Override
2790  @SuppressWarnings("unchecked")
2791  public Object get(final GeneratedMessage.Builder builder) {
2792  final List newList = new ArrayList();
2793  final int size = getRepeatedCount(builder);
2794  for (int i = 0; i < size; i++) {
2795  newList.add(getRepeated(builder, i));
2796  }
2797  return Collections.unmodifiableList(newList);
2798  }
2799 
2800  @Override
2801  public Object getRepeated(final GeneratedMessage message,
2802  final int index) {
2806  }
2808  super.getRepeated(message, index));
2809  }
2810  @Override
2811  public Object getRepeated(final GeneratedMessage.Builder builder,
2812  final int index) {
2814  int value = (Integer) invokeOrDie(getRepeatedValueMethodBuilder, builder, index);
2816  }
2818  super.getRepeated(builder, index));
2819  }
2820  @Override
2821  public void setRepeated(final Builder builder,
2822  final int index, final Object value) {
2825  ((EnumValueDescriptor) value).getNumber());
2826  return;
2827  }
2828  super.setRepeated(builder, index, invokeOrDie(valueOfMethod, null,
2829  value));
2830  }
2831  @Override
2832  public void addRepeated(final Builder builder, final Object value) {
2835  ((EnumValueDescriptor) value).getNumber());
2836  return;
2837  }
2838  super.addRepeated(builder, invokeOrDie(valueOfMethod, null, value));
2839  }
2840  }
2841 
2842  // ---------------------------------------------------------------
2843 
2855  private static final class SingularStringFieldAccessor
2856  extends SingularFieldAccessor {
2858  final FieldDescriptor descriptor, final String camelCaseName,
2859  final Class<? extends GeneratedMessage> messageClass,
2860  final Class<? extends Builder> builderClass,
2861  final String containingOneofCamelCaseName) {
2862  super(descriptor, camelCaseName, messageClass, builderClass,
2863  containingOneofCamelCaseName);
2864  getBytesMethod = getMethodOrDie(messageClass,
2865  "get" + camelCaseName + "Bytes");
2866  getBytesMethodBuilder = getMethodOrDie(builderClass,
2867  "get" + camelCaseName + "Bytes");
2868  setBytesMethodBuilder = getMethodOrDie(builderClass,
2869  "set" + camelCaseName + "Bytes", ByteString.class);
2870  }
2871 
2872  private final Method getBytesMethod;
2875 
2876  @Override
2877  public Object getRaw(final GeneratedMessage message) {
2879  }
2880 
2881  @Override
2882  public Object getRaw(GeneratedMessage.Builder builder) {
2883  return invokeOrDie(getBytesMethodBuilder, builder);
2884  }
2885 
2886  @Override
2887  public void set(GeneratedMessage.Builder builder, Object value) {
2888  if (value instanceof ByteString) {
2890  } else {
2891  super.set(builder, value);
2892  }
2893  }
2894  }
2895 
2896  // ---------------------------------------------------------------
2897 
2898  private static final class SingularMessageFieldAccessor
2899  extends SingularFieldAccessor {
2901  final FieldDescriptor descriptor, final String camelCaseName,
2902  final Class<? extends GeneratedMessage> messageClass,
2903  final Class<? extends Builder> builderClass,
2904  final String containingOneofCamelCaseName) {
2905  super(descriptor, camelCaseName, messageClass, builderClass,
2906  containingOneofCamelCaseName);
2907 
2908  newBuilderMethod = getMethodOrDie(type, "newBuilder");
2910  getMethodOrDie(builderClass, "get" + camelCaseName + "Builder");
2911  }
2912 
2913  private final Method newBuilderMethod;
2915 
2916  private Object coerceType(final Object value) {
2917  if (type.isInstance(value)) {
2918  return value;
2919  } else {
2920  // The value is not the exact right message type. However, if it
2921  // is an alternative implementation of the same type -- e.g. a
2922  // DynamicMessage -- we should accept it. In this case we can make
2923  // a copy of the message.
2924  return ((Message.Builder) invokeOrDie(newBuilderMethod, null))
2925  .mergeFrom((Message) value).buildPartial();
2926  }
2927  }
2928 
2929  @Override
2930  public void set(final Builder builder, final Object value) {
2931  super.set(builder, coerceType(value));
2932  }
2933  @Override
2935  return (Message.Builder) invokeOrDie(newBuilderMethod, null);
2936  }
2937  @Override
2940  }
2941  }
2942 
2943  private static final class RepeatedMessageFieldAccessor
2944  extends RepeatedFieldAccessor {
2946  final FieldDescriptor descriptor, final String camelCaseName,
2947  final Class<? extends GeneratedMessage> messageClass,
2948  final Class<? extends Builder> builderClass) {
2949  super(descriptor, camelCaseName, messageClass, builderClass);
2950 
2951  newBuilderMethod = getMethodOrDie(type, "newBuilder");
2952  getBuilderMethodBuilder = getMethodOrDie(builderClass,
2953  "get" + camelCaseName + "Builder", Integer.TYPE);
2954  }
2955 
2956  private final Method newBuilderMethod;
2958 
2959  private Object coerceType(final Object value) {
2960  if (type.isInstance(value)) {
2961  return value;
2962  } else {
2963  // The value is not the exact right message type. However, if it
2964  // is an alternative implementation of the same type -- e.g. a
2965  // DynamicMessage -- we should accept it. In this case we can make
2966  // a copy of the message.
2967  return ((Message.Builder) invokeOrDie(newBuilderMethod, null))
2968  .mergeFrom((Message) value).build();
2969  }
2970  }
2971 
2972  @Override
2973  public void setRepeated(final Builder builder,
2974  final int index, final Object value) {
2975  super.setRepeated(builder, index, coerceType(value));
2976  }
2977  @Override
2978  public void addRepeated(final Builder builder, final Object value) {
2979  super.addRepeated(builder, coerceType(value));
2980  }
2981  @Override
2983  return (Message.Builder) invokeOrDie(newBuilderMethod, null);
2984  }
2985  @Override
2987  final GeneratedMessage.Builder builder, final int index) {
2988  return (Message.Builder) invokeOrDie(
2989  getBuilderMethodBuilder, builder, index);
2990  }
2991  }
2992  }
2993 
3000  protected Object writeReplace() throws ObjectStreamException {
3001  return new GeneratedMessageLite.SerializedForm(this);
3002  }
3003 
3008  private static <MessageType extends ExtendableMessage<MessageType>, T>
3011  if (extension.isLite()) {
3012  throw new IllegalArgumentException("Expected non-lite extension.");
3013  }
3014 
3016  }
3017 
3018  protected static int computeStringSize(final int fieldNumber, final Object value) {
3019  if (value instanceof String) {
3020  return CodedOutputStream.computeStringSize(fieldNumber, (String) value);
3021  } else {
3022  return CodedOutputStream.computeBytesSize(fieldNumber, (ByteString) value);
3023  }
3024  }
3025 
3026  protected static int computeStringSizeNoTag(final Object value) {
3027  if (value instanceof String) {
3029  } else {
3031  }
3032  }
3033 
3034  protected static void writeString(
3035  CodedOutputStream output, final int fieldNumber, final Object value) throws IOException {
3036  if (value instanceof String) {
3037  output.writeString(fieldNumber, (String) value);
3038  } else {
3039  output.writeBytes(fieldNumber, (ByteString) value);
3040  }
3041  }
3042 
3043  protected static void writeStringNoTag(
3044  CodedOutputStream output, final Object value) throws IOException {
3045  if (value instanceof String) {
3046  output.writeStringNoTag((String) value);
3047  } else {
3048  output.writeBytesNoTag((ByteString) value);
3049  }
3050  }
3051 }
com.google.protobuf.GeneratedMessage.ExtendableMessage.extensionsAreInitialized
boolean extensionsAreInitialized()
Definition: GeneratedMessage.java:962
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.addRepeated
void addRepeated(Builder builder, Object value)
Definition: GeneratedMessage.java:2623
com.google.protobuf.Descriptors
Definition: Descriptors.java:80
com.google.protobuf.GeneratedMessage.ExtendableBuilder.addExtension
final< Type > BuilderType addExtension(final ExtensionLite< MessageType, List< Type >> extensionLite, final Type value)
Definition: GeneratedMessage.java:1323
Map
struct Map Map
Definition: php/ext/google/protobuf/protobuf.h:648
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularMessageFieldAccessor.getBuilderMethodBuilder
final Method getBuilderMethodBuilder
Definition: GeneratedMessage.java:2914
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedMessageFieldAccessor.setRepeated
void setRepeated(final Builder builder, final int index, final Object value)
Definition: GeneratedMessage.java:2973
java::lang
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularMessageFieldAccessor.newBuilder
Message.Builder newBuilder()
Definition: GeneratedMessage.java:2934
com.google.protobuf.GeneratedMessage.ExtendableMessage.ExtendableMessage
ExtendableMessage()
Definition: GeneratedMessage.java:832
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getRepeatedBuilder
Message.Builder getRepeatedBuilder(GeneratedMessage.Builder builder, int index)
Definition: GeneratedMessage.java:2394
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getBuilder
Message.Builder getBuilder(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2517
name
GLuint const GLchar * name
Definition: glcorearb.h:3055
com.google.protobuf.GeneratedMessage.getParserForType
Parser<? extends GeneratedMessage > getParserForType()
Definition: GeneratedMessage.java:84
com.google.protobuf.GeneratedMessage.ExtendableMessage.makeExtensionsImmutable
void makeExtensionsImmutable()
Definition: GeneratedMessage.java:987
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.addRepeatedMethod
final Method addRepeatedMethod
Definition: GeneratedMessage.java:2407
com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder.getExtension
< Type > Type getExtension(ExtensionLite< MessageType, Type > extension)
java::lang::reflect::Method
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getRepeatedCount
int getRepeatedCount(final GeneratedMessage message)
Definition: GeneratedMessage.java:2500
com.google.protobuf.GeneratedMessage.ExtendableBuilder.clearField
BuilderType clearField(final FieldDescriptor field)
Definition: GeneratedMessage.java:1549
com.google.protobuf.GeneratedMessage.ExtendableBuilder
Definition: GeneratedMessage.java:1184
com.google.protobuf.GeneratedMessage.ExtendableMessage.extensionsSerializedSizeAsMessageSet
int extensionsSerializedSizeAsMessageSet()
Definition: GeneratedMessage.java:1057
com.google.protobuf.GeneratedMessage.Builder.getFieldBuilder
Message.Builder getFieldBuilder(final FieldDescriptor field)
Definition: GeneratedMessage.java:522
com.google.protobuf.GeneratedMessage.GeneratedExtension.enumGetValueDescriptor
final Method enumGetValueDescriptor
Definition: GeneratedMessage.java:1818
com.google.protobuf.GeneratedMessage.FieldAccessorTable.OneofAccessor.clearMethod
final Method clearMethod
Definition: GeneratedMessage.java:2207
com.google.protobuf.GeneratedMessage.FieldAccessorTable.descriptor
final Descriptor descriptor
Definition: GeneratedMessage.java:2133
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.enumDescriptor
EnumDescriptor enumDescriptor
Definition: GeneratedMessage.java:2767
Error
Error
com.google.protobuf.UnknownFieldSet.getDefaultInstance
static UnknownFieldSet getDefaultInstance()
Definition: UnknownFieldSet.java:76
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getRepeated
Object getRepeated(GeneratedMessage.Builder builder, int index)
Definition: GeneratedMessage.java:2330
com.google.protobuf.GeneratedMessage.Builder.onChanged
final void onChanged()
Definition: GeneratedMessage.java:696
com.google.protobuf.GeneratedMessage.GeneratedExtension.descriptorRetriever
ExtensionDescriptorRetriever descriptorRetriever
Definition: GeneratedMessage.java:1814
com.google.protobuf.GeneratedMessage.Builder.addRepeatedField
BuilderType addRepeatedField(final FieldDescriptor field, final Object value)
Definition: GeneratedMessage.java:598
com.google.protobuf.GeneratedMessage.GeneratedExtension.messageDefaultInstance
final Message messageDefaultInstance
Definition: GeneratedMessage.java:1816
com.google.protobuf.GeneratedMessage.parseWithIOException
static< M extends Message > M parseWithIOException(Parser< M > parser, CodedInputStream input, ExtensionRegistryLite extensions)
Definition: GeneratedMessage.java:305
com.google.protobuf.GeneratedMessage.makeExtensionsImmutable
void makeExtensionsImmutable()
Definition: GeneratedMessage.java:354
com.google.protobuf.MessageOrBuilder.getDefaultInstanceForType
Message getDefaultInstanceForType()
google::protobuf::extension
const Descriptor::ReservedRange const EnumValueDescriptor const MethodDescriptor extension
Definition: src/google/protobuf/descriptor.h:2001
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getRepeatedRaw
Object getRepeatedRaw(GeneratedMessage.Builder builder, int index)
Definition: GeneratedMessage.java:2478
end
GLuint GLuint end
Definition: glcorearb.h:2858
com.google.protobuf.GeneratedMessage.ExtendableMessage.hasField
boolean hasField(final FieldDescriptor field)
Definition: GeneratedMessage.java:1085
com.google.protobuf.GeneratedMessage.writeTo
void writeTo(final CodedOutputStream output)
Definition: GeneratedMessage.java:333
com.google.protobuf.WireFormat.JavaType.MESSAGE
MESSAGE
Definition: WireFormat.java:93
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getRepeatedMethod
final Method getRepeatedMethod
Definition: GeneratedMessage.java:2404
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.newBuilder
Message.Builder newBuilder()
Definition: GeneratedMessage.java:2512
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularStringFieldAccessor
Definition: GeneratedMessage.java:2855
com.google.protobuf.GeneratedMessageLite
Definition: GeneratedMessageLite.java:60
com.google.protobuf.GeneratedMessage.checkNotLite
static< MessageType extends ExtendableMessage< MessageType > T Extension< MessageType, T > checkNotLite(ExtensionLite< MessageType, T > extension)
Definition: GeneratedMessage.java:3009
com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder.getExtensionCount
< Type > int getExtensionCount(ExtensionLite< MessageType, List< Type >> extension)
Method
struct Method Method
Definition: php/ext/google/protobuf/protobuf.h:652
com.google.protobuf.Descriptors.FieldDescriptor.getLiteType
WireFormat.FieldType getLiteType()
Definition: Descriptors.java:1020
com.google.protobuf.GeneratedMessage.ExtendableBuilder.mergeExtensionFields
final void mergeExtensionFields(final ExtendableMessage other)
Definition: GeneratedMessage.java:1589
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularEnumFieldAccessor.setValueMethod
Method setValueMethod
Definition: GeneratedMessage.java:2709
com.google.protobuf.AbstractMessage.BuilderParent.markDirty
void markDirty()
com.google.protobuf.GeneratedMessage.FieldAccessorTable.supportFieldPresence
static boolean supportFieldPresence(FileDescriptor file)
Definition: GeneratedMessage.java:2244
com.google.protobuf.GeneratedMessage.Builder.getParentForChildren
BuilderParent getParentForChildren()
Definition: GeneratedMessage.java:685
com.google.protobuf.Message.Builder.mergeFrom
Builder mergeFrom(Message other)
com.google.protobuf.GeneratedMessage.ExtendableBuilder.ensureExtensionsIsMutable
void ensureExtensionsIsMutable()
Definition: GeneratedMessage.java:1218
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularMessageFieldAccessor.coerceType
Object coerceType(final Object value)
Definition: GeneratedMessage.java:2916
input
std::string input
Definition: tokenizer_unittest.cc:197
com.google.protobuf.GeneratedMessage.ExtendableMessage.serialVersionUID
static final long serialVersionUID
Definition: GeneratedMessage.java:828
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.has
boolean has(GeneratedMessage message)
com.google.protobuf.GeneratedMessage.ExtendableMessage.getField
Object getField(final FieldDescriptor field)
Definition: GeneratedMessage.java:1095
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getRepeated
Object getRepeated(final GeneratedMessage message, final int index)
Definition: GeneratedMessage.java:2320
com.google.protobuf.Extension.ExtensionType
Definition: Extension.java:59
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getBuilder
com.google.protobuf.Message.Builder getBuilder(Builder builder)
Definition: GeneratedMessage.java:2660
com.google.protobuf.InvalidProtocolBufferException.unwrapIOException
IOException unwrapIOException()
Definition: InvalidProtocolBufferException.java:79
com.google.protobuf.GeneratedMessage.ExtendableMessage.hasExtension
final< Type > boolean hasExtension(final ExtensionLite< MessageType, Type > extensionLite)
Definition: GeneratedMessage.java:858
com.google.protobuf.GeneratedMessage.ExtendableMessage.ExtensionWriter.ExtensionWriter
ExtensionWriter(final boolean messageSetWireFormat)
Definition: GeneratedMessage.java:1006
com.google.protobuf.GeneratedMessage.Builder.BuilderParentImpl
Definition: GeneratedMessage.java:673
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.getRepeatedCount
int getRepeatedCount(GeneratedMessage message)
com.google.protobuf.GeneratedMessage.ExtendableMessage.getExtension
final< Type > Type getExtension(final GeneratedExtension< MessageType, Type > extension)
Definition: GeneratedMessage.java:944
com.google.protobuf.GeneratedMessage.getSerializedSize
int getSerializedSize()
Definition: GeneratedMessage.java:338
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.clear
void clear(Builder builder)
Definition: GeneratedMessage.java:2650
com.google.protobuf.GeneratedMessage.Builder.setUnknownFields
BuilderType setUnknownFields(final UnknownFieldSet unknownFields)
Definition: GeneratedMessage.java:604
com.google.protobuf.GeneratedMessage.ExtendableMessage.ExtensionWriter.writeUntil
void writeUntil(final int end, final CodedOutputStream output)
Definition: GeneratedMessage.java:1013
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getRepeated
Object getRepeated(final GeneratedMessage message, final int index)
Definition: GeneratedMessage.java:2466
com.google.protobuf.GeneratedMessage.getRepeatedField
Object getRepeatedField(final FieldDescriptor field, final int index)
Definition: GeneratedMessage.java:255
com.google.protobuf.GeneratedMessage.writeString
static void writeString(CodedOutputStream output, final int fieldNumber, final Object value)
Definition: GeneratedMessage.java:3034
com.google.protobuf.GeneratedMessage.GeneratedExtension.toReflectionType
Object toReflectionType(final Object value)
Definition: GeneratedMessage.java:1901
com.google.protobuf.GeneratedMessage.GeneratedMessage
GeneratedMessage(Builder<?> builder)
Definition: GeneratedMessage.java:79
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getRepeatedCount
int getRepeatedCount(GeneratedMessage message)
Definition: GeneratedMessage.java:2640
getName
ROSCONSOLE_CONSOLE_IMPL_DECL std::string getName(void *handle)
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.type
final Class type
Definition: GeneratedMessage.java:2401
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.type
final Class<?> type
Definition: GeneratedMessage.java:2278
com.google.protobuf.GeneratedMessage.ExtendableBuilder.addRepeatedField
BuilderType addRepeatedField(final FieldDescriptor field, final Object value)
Definition: GeneratedMessage.java:1576
com.google.protobuf.GeneratedMessage.newBuilderForType
Message.Builder newBuilderForType(final AbstractMessage.BuilderParent parent)
Definition: GeneratedMessage.java:372
com.google.protobuf.GeneratedMessage.ExtendableBuilder.extensionsAreInitialized
boolean extensionsAreInitialized()
Definition: GeneratedMessage.java:1439
com.google.protobuf.GeneratedMessage.ExtendableMessage.hasExtension
final< Type > boolean hasExtension(final Extension< MessageType, Type > extension)
Definition: GeneratedMessage.java:916
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getRepeatedRaw
Object getRepeatedRaw(final GeneratedMessage message, final int index)
Definition: GeneratedMessage.java:2325
com.google.protobuf.GeneratedMessage.FieldAccessorTable.getField
FieldAccessor getField(final FieldDescriptor field)
Definition: GeneratedMessage.java:2140
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getExtensionCount
final< Type > int getExtensionCount(final GeneratedExtension< MessageType, List< Type >> extension)
Definition: GeneratedMessage.java:1368
com.google.protobuf.GeneratedMessage.Builder.onBuilt
void onBuilt()
Definition: GeneratedMessage.java:413
com.google.protobuf.GeneratedMessage.CachedDescriptorRetriever
Definition: GeneratedMessage.java:1650
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.setRepeated
void setRepeated(Builder builder, int index, Object value)
Definition: GeneratedMessage.java:2618
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.has
boolean has(final GeneratedMessage message)
Definition: GeneratedMessage.java:2350
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getExtension
final< Type > Type getExtension(final Extension< MessageType, Type > extension)
Definition: GeneratedMessage.java:1374
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor
Definition: GeneratedMessage.java:2166
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedMessageFieldAccessor.getBuilderMethodBuilder
final Method getBuilderMethodBuilder
Definition: GeneratedMessage.java:2957
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.caseMethod
final Method caseMethod
Definition: GeneratedMessage.java:2285
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.get
Object get(GeneratedMessage message)
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedMessageFieldAccessor.newBuilderMethod
final Method newBuilderMethod
Definition: GeneratedMessage.java:2956
com.google.protobuf.Descriptors.OneofDescriptor.getContainingType
Descriptor getContainingType()
Definition: Descriptors.java:2618
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getRepeatedField
Object getRepeatedField(final FieldDescriptor field, final int index)
Definition: GeneratedMessage.java:1514
com.google.protobuf.GeneratedMessage.GeneratedExtension.singularFromReflectionType
Object singularFromReflectionType(final Object value)
Definition: GeneratedMessage.java:1876
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.newBuilder
Message.Builder newBuilder()
Definition: GeneratedMessage.java:2384
com.google.protobuf
Definition: ProtoCaliperBenchmark.java:2
com.google.protobuf.GeneratedMessage.Builder.internalGetMapField
MapField internalGetMapField(int fieldNumber)
Definition: GeneratedMessage.java:717
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.setRepeated
void setRepeated(final Builder builder, final int index, final Object value)
Definition: GeneratedMessage.java:2340
com.google.protobuf.GeneratedMessage.getOneofFieldDescriptor
FieldDescriptor getOneofFieldDescriptor(final OneofDescriptor oneof)
Definition: GeneratedMessage.java:222
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedMessageFieldAccessor
Definition: GeneratedMessage.java:2943
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getBuilder
Message.Builder getBuilder(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2389
com.google.protobuf.GeneratedMessage.unknownFields
UnknownFieldSet unknownFields
Definition: GeneratedMessage.java:73
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.getRepeated
Object getRepeated(final GeneratedMessage.Builder builder, final int index)
Definition: GeneratedMessage.java:2811
descriptor
Descriptor * descriptor
Definition: php/ext/google/protobuf/protobuf.h:936
com.google.protobuf.Message.newBuilderForType
Builder newBuilderForType()
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getMapField
MapField<?, ?> getMapField(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2549
java::lang::reflect
com.google.protobuf.GeneratedMessage.FieldAccessorTable.ensureFieldAccessorsInitialized
FieldAccessorTable ensureFieldAccessorsInitialized(Class<? extends GeneratedMessage > messageClass, Class<? extends Builder > builderClass)
Definition: GeneratedMessage.java:2070
com.google.protobuf.AbstractMessage.equals
boolean equals(final Object other)
Definition: AbstractMessage.java:143
com.google.protobuf.GeneratedMessage.ExtendableBuilder.setExtension
final< Type > BuilderType setExtension(final ExtensionLite< MessageType, Type > extensionLite, final Type value)
Definition: GeneratedMessage.java:1293
com.google.protobuf.WireFormat
Definition: WireFormat.java:45
com.google.protobuf.GeneratedMessage.GeneratedExtension
Definition: GeneratedMessage.java:1757
com.google.protobuf.GeneratedMessage.FieldAccessorTable.OneofAccessor.has
boolean has(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2216
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularEnumFieldAccessor
Definition: GeneratedMessage.java:2674
com.google.protobuf.GeneratedMessage.ExtendableBuilder.parseUnknownField
boolean parseUnknownField(final CodedInputStream input, final UnknownFieldSet.Builder unknownFields, final ExtensionRegistryLite extensionRegistry, final int tag)
Definition: GeneratedMessage.java:1462
com.google.protobuf.Descriptors.FieldDescriptor.Type
Definition: Descriptors.java:1215
com.google.protobuf.GeneratedMessage.FieldAccessorTable.OneofAccessor.descriptor
final Descriptor descriptor
Definition: GeneratedMessage.java:2204
com.google.protobuf.GeneratedMessage.ExtendableBuilder.hasExtension
final< Type > boolean hasExtension(final GeneratedExtension< MessageType, Type > extension)
Definition: GeneratedMessage.java:1356
com.google.protobuf.GeneratedMessage.newMessageScopedGeneratedExtension
static< ContainingType extends Message, Type > GeneratedExtension< ContainingType, Type > newMessageScopedGeneratedExtension(final Message scope, final String name, final Class singularType, final Message defaultInstance)
Definition: GeneratedMessage.java:1677
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.newBuilder
com.google.protobuf.Message.Builder newBuilder()
Definition: GeneratedMessage.java:2655
com.google.protobuf.GeneratedMessage.GeneratedExtension.getMessageDefaultInstance
Message getMessageDefaultInstance()
Definition: GeneratedMessage.java:1835
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getMethod
final Method getMethod
Definition: GeneratedMessage.java:2279
T
#define T(upbtypeconst, upbtype, ctype, default_value)
com.google.protobuf.GeneratedMessage.serialVersionUID
static final long serialVersionUID
Definition: GeneratedMessage.java:63
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessorTable
FieldAccessorTable(final Descriptor descriptor, final String[] camelCaseNames)
Definition: GeneratedMessage.java:2048
com.google.protobuf.GeneratedMessage.FieldAccessorTable.fields
final FieldAccessor[] fields
Definition: GeneratedMessage.java:2134
com.google.protobuf.CodedOutputStream.computeBytesSizeNoTag
static int computeBytesSizeNoTag(final ByteString value)
Definition: CodedOutputStream.java:861
com.google.protobuf.Descriptors.FieldDescriptor.getDefaultValue
Object getDefaultValue()
Definition: Descriptors.java:1097
com.google.protobuf.GeneratedMessage.BuilderParent
Definition: GeneratedMessage.java:364
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.set
void set(Builder builder, Object value)
com.google.protobuf.GeneratedMessage.GeneratedExtension.enumValueOf
final Method enumValueOf
Definition: GeneratedMessage.java:1817
com.google.protobuf.GeneratedMessage.Builder.isClean
boolean isClean()
Definition: GeneratedMessage.java:433
com.google.protobuf.Descriptors.FileDescriptor.getSyntax
Syntax getSyntax()
Definition: Descriptors.java:169
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getRepeatedFieldCount
int getRepeatedFieldCount(final FieldDescriptor field)
Definition: GeneratedMessage.java:1504
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getRepeated
Object getRepeated(GeneratedMessage.Builder builder, int index)
Definition: GeneratedMessage.java:2470
com.google.protobuf.GeneratedMessage.Builder.getRepeatedFieldCount
int getRepeatedFieldCount(final FieldDescriptor field)
Definition: GeneratedMessage.java:578
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.field
final FieldDescriptor field
Definition: GeneratedMessage.java:2542
FileDescriptor
struct FileDescriptor FileDescriptor
Definition: ruby/ext/google/protobuf_c/protobuf.h:56
com.google.protobuf.GeneratedMessage.ExtendableBuilder.clearExtension
final< Type > BuilderType clearExtension(final ExtensionLite< MessageType, ?> extensionLite)
Definition: GeneratedMessage.java:1338
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularEnumFieldAccessor.supportUnknownEnumValue
boolean supportUnknownEnumValue
Definition: GeneratedMessage.java:2706
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getRepeatedCount
int getRepeatedCount(final GeneratedMessage message)
Definition: GeneratedMessage.java:2370
com.google.protobuf.UnknownFieldSet.newBuilder
static Builder newBuilder()
Definition: UnknownFieldSet.java:66
com.google.protobuf.GeneratedMessage.FieldAccessorTable.OneofAccessor.caseMethodBuilder
final Method caseMethodBuilder
Definition: GeneratedMessage.java:2206
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getRepeatedRaw
Object getRepeatedRaw(GeneratedMessage message, int index)
Definition: GeneratedMessage.java:2608
com.google.protobuf.GeneratedMessage.Builder.Builder
Builder(BuilderParent builderParent)
Definition: GeneratedMessage.java:401
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getExtension
final< Type > Type getExtension(final Extension< MessageType, List< Type >> extension, final int index)
Definition: GeneratedMessage.java:1385
com.google.protobuf.GeneratedMessage.CachedDescriptorRetriever.descriptor
volatile FieldDescriptor descriptor
Definition: GeneratedMessage.java:1652
com.google.protobuf.GeneratedMessage.Builder.setField
BuilderType setField(final FieldDescriptor field, final Object value)
Definition: GeneratedMessage.java:560
com.google.protobuf.MessageOrBuilder.getDescriptorForType
Descriptors.Descriptor getDescriptorForType()
com.google.protobuf.GeneratedMessage.Builder.getUnknownFields
final UnknownFieldSet getUnknownFields()
Definition: GeneratedMessage.java:652
com.google.protobuf.MapField
Definition: MapField.java:56
com.google.protobuf.GeneratedMessage.ExtendableMessage.verifyContainingType
void verifyContainingType(final FieldDescriptor field)
Definition: GeneratedMessage.java:1138
com.google.protobuf.GeneratedMessage.ExtendableMessage.extensionsSerializedSize
int extensionsSerializedSize()
Definition: GeneratedMessage.java:1054
com.google.protobuf.Descriptors.FieldDescriptor.JavaType.ENUM
ENUM
Definition: Descriptors.java:1270
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.valueOfMethod
final Method valueOfMethod
Definition: GeneratedMessage.java:2769
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.hasHasMethod
final boolean hasHasMethod
Definition: GeneratedMessage.java:2289
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.has
boolean has(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2360
com.google.protobuf.GeneratedMessage.ExtendableMessage.isInitialized
boolean isInitialized()
Definition: GeneratedMessage.java:967
com.google.protobuf.Parser
Definition: Parser.java:47
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularStringFieldAccessor.setBytesMethodBuilder
final Method setBytesMethodBuilder
Definition: GeneratedMessage.java:2874
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.caseMethodBuilder
final Method caseMethodBuilder
Definition: GeneratedMessage.java:2286
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.getValueDescriptorMethod
final Method getValueDescriptorMethod
Definition: GeneratedMessage.java:2770
com.google.protobuf.CodedInputStream
Definition: CodedInputStream.java:61
com.google.protobuf.GeneratedMessage.GeneratedExtension.singularToReflectionType
Object singularToReflectionType(final Object value)
Definition: GeneratedMessage.java:1924
com.google.protobuf.GeneratedMessage.ExtendableBuilder.setExtension
final< Type > BuilderType setExtension(final ExtensionLite< MessageType, List< Type >> extensionLite, final int index, final Type value)
Definition: GeneratedMessage.java:1307
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.clear
void clear(final Builder builder)
Definition: GeneratedMessage.java:2508
com.google.protobuf.Descriptors.FieldDescriptor.isRepeated
boolean isRepeated()
Definition: Descriptors.java:1062
com.google.protobuf.LazyField.LazyEntry
Definition: LazyField.java:91
com.google.protobuf.GeneratedMessage.Builder.hasField
boolean hasField(final FieldDescriptor field)
Definition: GeneratedMessage.java:543
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularEnumFieldAccessor.enumDescriptor
EnumDescriptor enumDescriptor
Definition: GeneratedMessage.java:2701
com.google.protobuf.Descriptors.OneofDescriptor
Definition: Descriptors.java:2597
com.google.protobuf.AbstractMessage.memoizedSize
int memoizedSize
Definition: AbstractMessage.java:119
com.google.protobuf.Message.Builder
Definition: Message.java:104
com.google.protobuf.Descriptors.FieldDescriptor.JavaType.STRING
STRING
Definition: Descriptors.java:1268
com.google.protobuf.GeneratedMessage.parseUnknownField
boolean parseUnknownField(CodedInputStream input, UnknownFieldSet.Builder unknownFields, ExtensionRegistryLite extensionRegistry, int tag)
Definition: GeneratedMessage.java:270
com.google.protobuf.UnknownFieldSet
Definition: UnknownFieldSet.java:58
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.getRepeatedValueMethod
Method getRepeatedValueMethod
Definition: GeneratedMessage.java:2773
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedMessageFieldAccessor.newBuilder
Message.Builder newBuilder()
Definition: GeneratedMessage.java:2982
com.google.protobuf.GeneratedMessage.ExtendableBuilder.setExtension
final< Type > BuilderType setExtension(final Extension< MessageType, Type > extension, final Type value)
Definition: GeneratedMessage.java:1396
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getRepeatedMethodBuilder
final Method getRepeatedMethodBuilder
Definition: GeneratedMessage.java:2405
com.google.protobuf.Descriptors.FileDescriptor.findExtensionByName
FieldDescriptor findExtensionByName(String name)
Definition: Descriptors.java:254
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getRepeatedRaw
Object getRepeatedRaw(GeneratedMessage.Builder builder, int index)
Definition: GeneratedMessage.java:2335
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.addRepeated
void addRepeated(final Builder builder, final Object value)
Definition: GeneratedMessage.java:2832
com.google.protobuf.GeneratedMessage.internalGetFieldAccessorTable
abstract FieldAccessorTable internalGetFieldAccessorTable()
com.google.protobuf.GeneratedMessage.parseWithIOException
static< M extends Message > M parseWithIOException(Parser< M > parser, InputStream input, ExtensionRegistryLite extensions)
Definition: GeneratedMessage.java:287
com.google.protobuf.GeneratedMessage.newFileScopedGeneratedExtension
static< ContainingType extends Message, Type > GeneratedExtension< ContainingType, Type > newFileScopedGeneratedExtension(final Class singularType, final Message defaultInstance, final String descriptorOuterClass, final String extensionName)
Definition: GeneratedMessage.java:1704
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularMessageFieldAccessor.getBuilder
Message.Builder getBuilder(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2938
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getMethodBuilder
final Method getMethodBuilder
Definition: GeneratedMessage.java:2403
com.google.protobuf.GeneratedMessage.ExtendableBuilder.setRepeatedField
BuilderType setRepeatedField(final FieldDescriptor field, final int index, final Object value)
Definition: GeneratedMessage.java:1562
com.google.protobuf.Internal.EnumLite
Definition: Internal.java:199
com.google.protobuf.GeneratedMessage.ExtendableBuilder.setExtension
final< Type > BuilderType setExtension(final Extension< MessageType, List< Type >> extension, final int index, final Type value)
Definition: GeneratedMessage.java:1406
com.google.protobuf.GeneratedMessage.Builder.internalGetMutableMapField
MapField internalGetMutableMapField(int fieldNumber)
Definition: GeneratedMessage.java:726
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.setRepeated
void setRepeated(Builder builder, int index, Object value)
com.google.protobuf.GeneratedMessage.getField
Object getField(final FieldDescriptor field)
Definition: GeneratedMessage.java:232
com.google.protobuf.Descriptors.OneofDescriptor.getFieldCount
int getFieldCount()
Definition: Descriptors.java:2622
com.google.protobuf.GeneratedMessage.Builder.meAsParent
BuilderParentImpl meAsParent
Definition: GeneratedMessage.java:388
com.google.protobuf.GeneratedMessage.writeReplace
Object writeReplace()
Definition: GeneratedMessage.java:3000
com.google.protobuf.Descriptors.FieldDescriptor.getNumber
int getNumber()
Definition: Descriptors.java:974
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getMethod
final Method getMethod
Definition: GeneratedMessage.java:2402
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.getRepeatedBuilder
Message.Builder getRepeatedBuilder(GeneratedMessage.Builder builder, int index)
com.google.protobuf.GeneratedMessage.Builder.clearOneof
BuilderType clearOneof(final OneofDescriptor oneof)
Definition: GeneratedMessage.java:572
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.has
boolean has(final GeneratedMessage message)
Definition: GeneratedMessage.java:2490
com.google.protobuf.GeneratedMessage.ExtendableMessage.extensions
final FieldSet< FieldDescriptor > extensions
Definition: GeneratedMessage.java:830
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor
Definition: GeneratedMessage.java:2528
com.google.protobuf.GeneratedMessage.Builder.getField
Object getField(final FieldDescriptor field)
Definition: GeneratedMessage.java:548
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getRepeatedBuilder
Message.Builder getRepeatedBuilder(GeneratedMessage.Builder builder, int index)
Definition: GeneratedMessage.java:2522
com.google.protobuf.GeneratedMessage.GeneratedExtension.isRepeated
boolean isRepeated()
Definition: GeneratedMessage.java:1945
com.google.protobuf.DynamicMessage.getDefaultInstance
static DynamicMessage getDefaultInstance(Descriptor type)
Definition: DynamicMessage.java:78
com.google.protobuf.GeneratedMessage.ExtendableMessage.hasExtension
final< Type > boolean hasExtension(final GeneratedExtension< MessageType, Type > extension)
Definition: GeneratedMessage.java:921
com.google.protobuf.Descriptors.FieldDescriptor.JavaType
Definition: Descriptors.java:1262
com.google.protobuf.GeneratedMessage.ExtendableMessage.ExtensionWriter.messageSetWireFormat
final boolean messageSetWireFormat
Definition: GeneratedMessage.java:1004
com.google.protobuf.GeneratedMessage.Builder.clone
BuilderType clone()
Definition: GeneratedMessage.java:438
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getRaw
Object getRaw(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2451
com.google.protobuf.GeneratedMessage.Builder.setRepeatedField
BuilderType setRepeatedField(final FieldDescriptor field, final int index, final Object value)
Definition: GeneratedMessage.java:590
com.google.protobuf.GeneratedMessage.ExtendableMessage.newExtensionWriter
ExtensionWriter newExtensionWriter()
Definition: GeneratedMessage.java:1046
com.google.protobuf.GeneratedMessage.Builder.getRepeatedField
Object getRepeatedField(final FieldDescriptor field, final int index)
Definition: GeneratedMessage.java:584
com.google.protobuf.GeneratedMessage.getUnknownFields
UnknownFieldSet getUnknownFields()
Definition: GeneratedMessage.java:261
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.addRepeated
void addRepeated(final Builder builder, final Object value)
Definition: GeneratedMessage.java:2486
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getRepeatedRaw
Object getRepeatedRaw(Builder builder, int index)
Definition: GeneratedMessage.java:2613
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor
Definition: GeneratedMessage.java:2400
com.google.protobuf.GeneratedMessage.ExtendableMessage.getExtensionCount
final< Type > int getExtensionCount(final GeneratedExtension< MessageType, List< Type >> extension)
Definition: GeneratedMessage.java:933
com.google.protobuf.MessageOrBuilder
Definition: MessageOrBuilder.java:42
com.google.protobuf.Descriptors.EnumDescriptor
Definition: Descriptors.java:1583
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.isOneofField
final boolean isOneofField
Definition: GeneratedMessage.java:2288
size
#define size
Definition: glcorearb.h:2944
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getField
Object getField(final FieldDescriptor field)
Definition: GeneratedMessage.java:1483
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.setMethod
final Method setMethod
Definition: GeneratedMessage.java:2281
com.google.protobuf.Descriptors.Descriptor.getFields
List< FieldDescriptor > getFields()
Definition: Descriptors.java:696
params
GLenum const GLfloat * params
Definition: glcorearb.h:2770
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularStringFieldAccessor.getBytesMethod
final Method getBytesMethod
Definition: GeneratedMessage.java:2872
com.google.protobuf.GeneratedMessage.computeStringSizeNoTag
static int computeStringSizeNoTag(final Object value)
Definition: GeneratedMessage.java:3026
com.google.protobuf.GeneratedMessage.hasOneof
boolean hasOneof(final OneofDescriptor oneof)
Definition: GeneratedMessage.java:217
com.google.protobuf.GeneratedMessage
Definition: GeneratedMessage.java:61
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.getRaw
Object getRaw(GeneratedMessage message)
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.has
boolean has(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2495
com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException
static< M extends Message > M parseDelimitedWithIOException(Parser< M > parser, InputStream input)
Definition: GeneratedMessage.java:314
com.google.protobuf.GeneratedMessage.Builder.newBuilderForField
Message.Builder newBuilderForField(final FieldDescriptor field)
Definition: GeneratedMessage.java:517
com.google.protobuf.GeneratedMessage.GeneratedMessage
GeneratedMessage()
Definition: GeneratedMessage.java:75
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getCountMethod
final Method getCountMethod
Definition: GeneratedMessage.java:2408
com.google.protobuf.Descriptors.FileDescriptor.Syntax
Definition: Descriptors.java:156
com.google.protobuf.GeneratedMessage.GeneratedExtension.getDefaultValue
Type getDefaultValue()
Definition: GeneratedMessage.java:1951
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.clear
void clear(Builder builder)
com.google.protobuf.GeneratedMessage.Builder.markClean
void markClean()
Definition: GeneratedMessage.java:424
com.google.protobuf.Message.Builder.build
Message build()
com.google.protobuf.ExtensionRegistryLite
Definition: ExtensionRegistryLite.java:70
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
static boolean alwaysUseFieldBuilders
Definition: GeneratedMessage.java:70
com.google.protobuf.GeneratedMessage.writeStringNoTag
static void writeStringNoTag(CodedOutputStream output, final Object value)
Definition: GeneratedMessage.java:3043
com.google.protobuf.GeneratedMessage.FieldAccessorTable.OneofAccessor.clear
void clear(final Builder builder)
Definition: GeneratedMessage.java:2239
com.google.protobuf.UnknownFieldSet.Builder
Definition: UnknownFieldSet.java:308
field
const FieldDescriptor * field
Definition: parser_unittest.cc:2694
com.google.protobuf.GeneratedMessage.GeneratedExtension.getNumber
int getNumber()
Definition: GeneratedMessage.java:1935
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularStringFieldAccessor.getRaw
Object getRaw(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2882
com.google.protobuf.GeneratedMessage.ExtendableMessage.getRepeatedFieldCount
int getRepeatedFieldCount(final FieldDescriptor field)
Definition: GeneratedMessage.java:1118
com.google.protobuf.GeneratedMessage.ExtendableBuilder.buildExtensions
FieldSet< FieldDescriptor > buildExtensions()
Definition: GeneratedMessage.java:1447
com.google.protobuf.GeneratedMessage.ExtendableMessage.ExtendableMessage
ExtendableMessage(ExtendableBuilder< MessageType, ?> builder)
Definition: GeneratedMessage.java:836
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.setRepeated
void setRepeated(final Builder builder, final int index, final Object value)
Definition: GeneratedMessage.java:2482
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.mapEntryMessageDefaultInstance
final Message mapEntryMessageDefaultInstance
Definition: GeneratedMessage.java:2543
com.google.protobuf.CodedOutputStream.computeStringSize
static int computeStringSize(final int fieldNumber, final String value)
Definition: CodedOutputStream.java:620
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.getRepeatedRaw
Object getRepeatedRaw(GeneratedMessage message, int index)
com.google.protobuf.GeneratedMessage.GeneratedExtension.singularType
final Class singularType
Definition: GeneratedMessage.java:1815
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularEnumFieldAccessor.valueOfMethod
Method valueOfMethod
Definition: GeneratedMessage.java:2703
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularStringFieldAccessor.getRaw
Object getRaw(final GeneratedMessage message)
Definition: GeneratedMessage.java:2877
com.google.protobuf.GeneratedMessage.newMessageScopedGeneratedExtension
static< ContainingType extends Message, Type > GeneratedExtension< ContainingType, Type > newMessageScopedGeneratedExtension(final Message scope, final int descriptorIndex, final Class singularType, final Message defaultInstance)
Definition: GeneratedMessage.java:1616
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.newBuilder
Message.Builder newBuilder()
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getRepeatedBuilder
com.google.protobuf.Message.Builder getRepeatedBuilder(Builder builder, int index)
Definition: GeneratedMessage.java:2666
com.google.protobuf.GeneratedMessage.ExtendableBuilder.hasExtension
final< Type > boolean hasExtension(final Extension< MessageType, Type > extension)
Definition: GeneratedMessage.java:1351
com.google.protobuf.GeneratedMessage.ExtendableMessage.getAllFieldsRaw
Map< FieldDescriptor, Object > getAllFieldsRaw()
Definition: GeneratedMessage.java:1077
com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder
Definition: GeneratedMessage.java:737
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.getRepeated
Object getRepeated(GeneratedMessage message, int index)
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getRepeatedRaw
Object getRepeatedRaw(GeneratedMessage message, int index)
Definition: GeneratedMessage.java:2474
i
int i
Definition: gmock-matchers_test.cc:764
com.google.protobuf.GeneratedMessage.getAllFieldsMutable
Map< FieldDescriptor, Object > getAllFieldsMutable(boolean getBytesForString)
Definition: GeneratedMessage.java:118
com.google.protobuf.AbstractMessage.Builder.mergeFrom
BuilderType mergeFrom(final Message other)
Definition: AbstractMessage.java:370
com.google.protobuf.GeneratedMessage.Builder.parseUnknownField
boolean parseUnknownField(final CodedInputStream input, final UnknownFieldSet.Builder unknownFields, final ExtensionRegistryLite extensionRegistry, final int tag)
Definition: GeneratedMessage.java:660
com.google.protobuf.GeneratedMessage.getRepeatedFieldCount
int getRepeatedFieldCount(final FieldDescriptor field)
Definition: GeneratedMessage.java:249
java
com.google.protobuf.Descriptors.Descriptor
Definition: Descriptors.java:629
com.google.protobuf.GeneratedMessage.ExtendableMessage.getExtension
final< Type > Type getExtension(final GeneratedExtension< MessageType, List< Type >> extension, final int index)
Definition: GeneratedMessage.java:956
fields
static const upb_fielddef fields[107]
Definition: ruby/ext/google/protobuf_c/upb.c:7671
com.google.protobuf.GeneratedMessage.Builder.getOneofFieldDescriptor
FieldDescriptor getOneofFieldDescriptor(final OneofDescriptor oneof)
Definition: GeneratedMessage.java:538
com.google.protobuf.GeneratedMessage.Builder.getDescriptorForType
Descriptor getDescriptorForType()
Definition: GeneratedMessage.java:464
com.google.protobuf.GeneratedMessage.ExtendableMessage.getExtension
final< Type > Type getExtension(final Extension< MessageType, List< Type >> extension, final int index)
Definition: GeneratedMessage.java:950
com.google.protobuf.GeneratedMessage.ExtendableBuilder.clear
BuilderType clear()
Definition: GeneratedMessage.java:1205
type
GLenum type
Definition: glcorearb.h:2695
com.google.protobuf.GeneratedMessage.FieldAccessorTable.oneofs
final OneofAccessor[] oneofs
Definition: GeneratedMessage.java:2136
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getRepeated
Object getRepeated(GeneratedMessage message, int index)
Definition: GeneratedMessage.java:2598
com.google.protobuf.GeneratedMessage.parseWithIOException
static< M extends Message > M parseWithIOException(Parser< M > parser, CodedInputStream input)
Definition: GeneratedMessage.java:296
com.google.protobuf.GeneratedMessage.ExtendableMessage.verifyExtensionContainingType
void verifyExtensionContainingType(final Extension< MessageType, ?> extension)
Definition: GeneratedMessage.java:842
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.has
boolean has(Builder builder)
Definition: GeneratedMessage.java:2634
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getRaw
Object getRaw(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2585
com.google.protobuf.GeneratedMessage.Builder.clearField
BuilderType clearField(final FieldDescriptor field)
Definition: GeneratedMessage.java:566
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getRaw
Object getRaw(GeneratedMessage message)
Definition: GeneratedMessage.java:2580
com.google.protobuf.GeneratedMessage.ExtendableMessage.getExtension
final< Type > Type getExtension(final ExtensionLite< MessageType, Type > extensionLite)
Definition: GeneratedMessage.java:880
com.google.protobuf.GeneratedMessage.FieldAccessorTable.getOneof
OneofAccessor getOneof(final OneofDescriptor oneof)
Definition: GeneratedMessage.java:2154
com.google.protobuf.GeneratedMessage.Builder.Builder
Builder()
Definition: GeneratedMessage.java:397
com.google.protobuf.GeneratedMessage.FieldAccessorTable.OneofAccessor.caseMethod
final Method caseMethod
Definition: GeneratedMessage.java:2205
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.clearMethod
final Method clearMethod
Definition: GeneratedMessage.java:2284
com.google.protobuf.GeneratedMessage.Builder.mergeUnknownFields
BuilderType mergeUnknownFields(final UnknownFieldSet unknownFields)
Definition: GeneratedMessage.java:611
com.google.protobuf.Descriptors.FileDescriptor.Syntax.PROTO2
PROTO2
Definition: Descriptors.java:158
com.google.protobuf.Extension.ExtensionType.MUTABLE
MUTABLE
Definition: Extension.java:61
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.field
final FieldDescriptor field
Definition: GeneratedMessage.java:2287
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.addRepeatedValueMethod
Method addRepeatedValueMethod
Definition: GeneratedMessage.java:2776
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessorTable
FieldAccessorTable(final Descriptor descriptor, final String[] camelCaseNames, final Class<? extends GeneratedMessage > messageClass, final Class<? extends Builder > builderClass)
Definition: GeneratedMessage.java:2035
com.google.protobuf.GeneratedMessage.ExtendableMessage.ExtensionWriter
Definition: GeneratedMessage.java:997
com.google.protobuf.Descriptors.OneofDescriptor.getIndex
int getIndex()
Definition: Descriptors.java:2599
com.google.protobuf.GeneratedMessage.computeStringSize
static int computeStringSize(final int fieldNumber, final Object value)
Definition: GeneratedMessage.java:3018
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor
Definition: GeneratedMessage.java:2740
com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder.hasExtension
< Type > boolean hasExtension(ExtensionLite< MessageType, Type > extension)
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getRepeatedCount
int getRepeatedCount(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2375
com.google.protobuf.GeneratedMessage.FieldAccessorTable.isMapFieldEnabled
boolean isMapFieldEnabled(FieldDescriptor field)
Definition: GeneratedMessage.java:2058
com.google.protobuf.GeneratedMessage.Builder.isInitialized
boolean isInitialized()
Definition: GeneratedMessage.java:622
size
GLsizeiptr size
Definition: glcorearb.h:2943
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.addRepeated
void addRepeated(final Builder builder, final Object value)
Definition: GeneratedMessage.java:2345
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.setRepeatedValueMethod
Method setRepeatedValueMethod
Definition: GeneratedMessage.java:2775
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularMessageFieldAccessor
Definition: GeneratedMessage.java:2898
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularEnumFieldAccessor.getValueDescriptorMethod
Method getValueDescriptorMethod
Definition: GeneratedMessage.java:2704
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedMessageFieldAccessor.coerceType
Object coerceType(final Object value)
Definition: GeneratedMessage.java:2959
com.google.protobuf.DynamicMessage
Definition: DynamicMessage.java:51
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.getRepeatedValueMethodBuilder
Method getRepeatedValueMethodBuilder
Definition: GeneratedMessage.java:2774
com.google.protobuf.GeneratedMessage.GeneratedExtension.getLiteType
WireFormat.FieldType getLiteType()
Definition: GeneratedMessage.java:1940
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularMessageFieldAccessor.newBuilderMethod
final Method newBuilderMethod
Definition: GeneratedMessage.java:2913
com.google.protobuf.GeneratedMessage.Builder.getAllFields
Map< FieldDescriptor, Object > getAllFields()
Definition: GeneratedMessage.java:469
com.google.protobuf.GeneratedMessage.ExtendableMessage.ExtensionWriter.iter
final Iterator< Map.Entry< FieldDescriptor, Object > > iter
Definition: GeneratedMessage.java:1001
com.google.protobuf.Descriptors.Descriptor.getOneofs
List< OneofDescriptor > getOneofs()
Definition: Descriptors.java:701
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getExtension
final< Type > Type getExtension(final GeneratedExtension< MessageType, Type > extension)
Definition: GeneratedMessage.java:1379
com.google.protobuf.GeneratedMessage.internalGetMapField
MapField internalGetMapField(int fieldNumber)
Definition: GeneratedMessage.java:2012
com.google.protobuf.GeneratedMessage.ExtendableMessage
Definition: GeneratedMessage.java:823
com.google.protobuf.GeneratedMessage.GeneratedExtension.getDescriptor
FieldDescriptor getDescriptor()
Definition: GeneratedMessage.java:1822
com.google.protobuf.GeneratedMessage.ExtendableMessage.parseUnknownField
boolean parseUnknownField(CodedInputStream input, UnknownFieldSet.Builder unknownFields, ExtensionRegistryLite extensionRegistry, int tag)
Definition: GeneratedMessage.java:972
com.google.protobuf.GeneratedMessage.Builder.getAllFieldsMutable
Map< FieldDescriptor, Object > getAllFieldsMutable()
Definition: GeneratedMessage.java:474
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getOneofFieldNumber
int getOneofFieldNumber(final GeneratedMessage message)
Definition: GeneratedMessage.java:2291
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getAllFields
Map< FieldDescriptor, Object > getAllFields()
Definition: GeneratedMessage.java:1476
com.google
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularEnumFieldAccessor.getValueMethodBuilder
Method getValueMethodBuilder
Definition: GeneratedMessage.java:2708
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getExtension
final< Type > Type getExtension(final ExtensionLite< MessageType, Type > extensionLite)
Definition: GeneratedMessage.java:1259
com.google.protobuf.GeneratedMessageLite.SerializedForm
Definition: GeneratedMessageLite.java:1307
com
com.google.protobuf.GeneratedMessage.Builder.BuilderParentImpl.markDirty
void markDirty()
Definition: GeneratedMessage.java:676
com.google.protobuf.GeneratedMessage.getDescriptorForType
Descriptor getDescriptorForType()
Definition: GeneratedMessage.java:107
com.google.protobuf.GeneratedMessage.ExtendableMessage.getExtensionCount
final< Type > int getExtensionCount(final ExtensionLite< MessageType, List< Type >> extensionLite)
Definition: GeneratedMessage.java:868
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.setRepeatedMethod
final Method setRepeatedMethod
Definition: GeneratedMessage.java:2406
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getRepeatedCount
int getRepeatedCount(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2504
com.google.protobuf.GeneratedMessage.GeneratedExtension.getExtensionType
ExtensionType getExtensionType()
Definition: GeneratedMessage.java:1840
com.google.protobuf.GeneratedMessage.FieldAccessorTable.OneofAccessor.get
FieldDescriptor get(final GeneratedMessage message)
Definition: GeneratedMessage.java:2223
com.google.protobuf.GeneratedMessage.FieldAccessorTable.OneofAccessor.has
boolean has(final GeneratedMessage message)
Definition: GeneratedMessage.java:2209
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getMethodBuilder
final Method getMethodBuilder
Definition: GeneratedMessage.java:2280
com.google.protobuf.GeneratedMessage.invokeOrDie
static Object invokeOrDie(final Method method, final Object object, final Object... params)
Definition: GeneratedMessage.java:1979
com.google.protobuf.AbstractMessage
Definition: AbstractMessage.java:52
com.google.protobuf.GeneratedMessage.Builder.builderParent
BuilderParent builderParent
Definition: GeneratedMessage.java:386
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor
Definition: GeneratedMessage.java:2250
com.google.protobuf.GeneratedMessage.ExtendableMessage.getRepeatedField
Object getRepeatedField(final FieldDescriptor field, final int index)
Definition: GeneratedMessage.java:1128
com.google.protobuf.GeneratedMessage.CachedDescriptorRetriever.getDescriptor
FieldDescriptor getDescriptor()
Definition: GeneratedMessage.java:1656
com.google.protobuf.GeneratedMessage.ExtendableMessage.getAllFields
Map< FieldDescriptor, Object > getAllFields()
Definition: GeneratedMessage.java:1069
com.google.protobuf.GeneratedMessage.getMethodOrDie
static Method getMethodOrDie(final Class clazz, final String name, final Class... params)
Definition: GeneratedMessage.java:1967
com.google.protobuf.ExtensionLite
Definition: ExtensionLite.java:39
com.google.protobuf.Extension
Definition: Extension.java:39
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getRepeatedCount
int getRepeatedCount(Builder builder)
Definition: GeneratedMessage.java:2645
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getCountMethodBuilder
final Method getCountMethodBuilder
Definition: GeneratedMessage.java:2409
com.google.protobuf.Internal
Definition: Internal.java:54
com.google.protobuf.AbstractMessage.BuilderParent
Definition: AbstractMessage.java:65
com.google.protobuf.CodedOutputStream
Definition: CodedOutputStream.java:59
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.addRepeated
void addRepeated(Builder builder, Object value)
com.google.protobuf.InvalidProtocolBufferException
Definition: InvalidProtocolBufferException.java:41
com.google.protobuf.GeneratedMessage.ExtendableBuilder.setField
BuilderType setField(final FieldDescriptor field, final Object value)
Definition: GeneratedMessage.java:1535
com.google.protobuf.GeneratedMessage.ExtendableBuilder.clearExtension
final< Type > BuilderType clearExtension(final Extension< MessageType, ?> extension)
Definition: GeneratedMessage.java:1428
com.google.protobuf.GeneratedMessage.isInitialized
boolean isInitialized()
Definition: GeneratedMessage.java:166
com.google.protobuf.GeneratedMessage.Builder.isClean
boolean isClean
Definition: GeneratedMessage.java:392
com.google.protobuf.GeneratedMessage.ExtendableBuilder.verifyExtensionContainingType
void verifyExtensionContainingType(final Extension< MessageType, ?> extension)
Definition: GeneratedMessage.java:1224
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getMutableMapField
MapField<?, ?> getMutableMapField(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2553
com.google.protobuf.GeneratedMessage.ExtendableBuilder.verifyContainingType
void verifyContainingType(final FieldDescriptor field)
Definition: GeneratedMessage.java:1595
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getExtension
final< Type > Type getExtension(final ExtensionLite< MessageType, List< Type >> extensionLite, final int index)
Definition: GeneratedMessage.java:1282
com.google.protobuf.GeneratedMessage.GeneratedExtension.internalInit
void internalInit(final FieldDescriptor descriptor)
Definition: GeneratedMessage.java:1801
FieldDescriptor
struct FieldDescriptor FieldDescriptor
Definition: php/ext/google/protobuf/protobuf.h:637
com.google.protobuf.GeneratedMessage.ExtendableBuilder.ExtendableBuilder
ExtendableBuilder()
Definition: GeneratedMessage.java:1192
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getRaw
Object getRaw(GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2312
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getExtensionCount
final< Type > int getExtensionCount(final ExtensionLite< MessageType, List< Type >> extensionLite)
Definition: GeneratedMessage.java:1248
com.google.protobuf.GeneratedMessage.ExtendableMessage.getExtension
final< Type > Type getExtension(final Extension< MessageType, Type > extension)
Definition: GeneratedMessage.java:939
com.google.protobuf.GeneratedMessage.FieldAccessorTable.OneofAccessor
Definition: GeneratedMessage.java:2191
com.google.protobuf.CodedOutputStream.computeStringSizeNoTag
static int computeStringSizeNoTag(final String value)
Definition: CodedOutputStream.java:839
com.google.protobuf.GeneratedMessage.getAllFields
Map< FieldDescriptor, Object > getAllFields()
Definition: GeneratedMessage.java:196
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.getRepeated
Object getRepeated(final GeneratedMessage message, final int index)
Definition: GeneratedMessage.java:2801
com.google.protobuf.Descriptors.EnumValueDescriptor
Definition: Descriptors.java:1774
com.google.protobuf.GeneratedMessage.ExtendableBuilder.isInitialized
boolean isInitialized()
Definition: GeneratedMessage.java:1453
com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder.getDefaultInstanceForType
Message getDefaultInstanceForType()
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.clearMethod
final Method clearMethod
Definition: GeneratedMessage.java:2410
value
GLsizei const GLfloat * value
Definition: glcorearb.h:3093
com.google.protobuf.GeneratedMessage.FieldAccessorTable
Definition: GeneratedMessage.java:2023
com.google.protobuf.WireFormat.FieldType
Definition: WireFormat.java:111
com.google.protobuf.GeneratedMessage.ExtendableBuilder.ExtendableBuilder
ExtendableBuilder(BuilderParent parent)
Definition: GeneratedMessage.java:1194
com.google.protobuf.GeneratedMessage.CachedDescriptorRetriever.loadDescriptor
abstract FieldDescriptor loadDescriptor()
com.google.protobuf.GeneratedMessage.ExtendableBuilder.hasExtension
final< Type > boolean hasExtension(final ExtensionLite< MessageType, Type > extensionLite)
Definition: GeneratedMessage.java:1239
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getRaw
Object getRaw(final GeneratedMessage message)
Definition: GeneratedMessage.java:2308
com.google.protobuf.LazyField
Definition: LazyField.java:46
com.google.protobuf.GeneratedMessage.GeneratedExtension.fromReflectionType
Object fromReflectionType(final Object value)
Definition: GeneratedMessage.java:1852
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.hasMethod
final Method hasMethod
Definition: GeneratedMessage.java:2282
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getExtensionCount
final< Type > int getExtensionCount(final Extension< MessageType, List< Type >> extension)
Definition: GeneratedMessage.java:1362
output
const upb_json_parsermethod const upb_symtab upb_sink * output
Definition: ruby/ext/google/protobuf_c/upb.h:10503
com.google.protobuf.GeneratedMessage.ExtendableBuilder.getExtension
final< Type > Type getExtension(final GeneratedExtension< MessageType, List< Type >> extension, final int index)
Definition: GeneratedMessage.java:1391
com.google.protobuf.GeneratedMessage.hasField
boolean hasField(final FieldDescriptor field)
Definition: GeneratedMessage.java:227
benchmarks.python.py_benchmark.parser
parser
Definition: py_benchmark.py:10
com.google.protobuf.GeneratedMessage.ExtendableMessage.getExtensionFields
Map< FieldDescriptor, Object > getExtensionFields()
Definition: GeneratedMessage.java:1064
com.google.protobuf.Descriptors.FileDescriptor
Definition: Descriptors.java:87
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.getOneofFieldNumber
int getOneofFieldNumber(final GeneratedMessage.Builder builder)
Definition: GeneratedMessage.java:2295
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularEnumFieldAccessor.getValueMethod
Method getValueMethod
Definition: GeneratedMessage.java:2707
com.google.protobuf.GeneratedMessage.ExtendableMessage.newMessageSetExtensionWriter
ExtensionWriter newMessageSetExtensionWriter()
Definition: GeneratedMessage.java:1049
com.google.protobuf.GeneratedMessage.parseWithIOException
static< M extends Message > M parseWithIOException(Parser< M > parser, InputStream input)
Definition: GeneratedMessage.java:278
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.has
boolean has(GeneratedMessage message)
Definition: GeneratedMessage.java:2628
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.supportUnknownEnumValue
boolean supportUnknownEnumValue
Definition: GeneratedMessage.java:2772
index
GLuint index
Definition: glcorearb.h:3055
com.google.protobuf.ProtocolMessageEnum
Definition: ProtocolMessageEnum.java:37
com.google.protobuf.GeneratedMessage.Builder
Definition: GeneratedMessage.java:383
com.google.protobuf.GeneratedMessage.FieldAccessorTable.camelCaseNames
String[] camelCaseNames
Definition: GeneratedMessage.java:2135
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.get
Object get(final GeneratedMessage message)
Definition: GeneratedMessage.java:2780
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.get
Object get(GeneratedMessage message)
Definition: GeneratedMessage.java:2561
com.google.protobuf.GeneratedMessage.Builder.hasOneof
boolean hasOneof(final OneofDescriptor oneof)
Definition: GeneratedMessage.java:533
com.google.protobuf.CodedOutputStream.computeBytesSize
static int computeBytesSize(final int fieldNumber, final ByteString value)
Definition: CodedOutputStream.java:628
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularStringFieldAccessor.getBytesMethodBuilder
final Method getBytesMethodBuilder
Definition: GeneratedMessage.java:2873
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getMapField
MapField<?, ?> getMapField(GeneratedMessage message)
Definition: GeneratedMessage.java:2545
com.google.protobuf.Extension.ExtensionType.IMMUTABLE
IMMUTABLE
Definition: Extension.java:60
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedMessageFieldAccessor.addRepeated
void addRepeated(final Builder builder, final Object value)
Definition: GeneratedMessage.java:2978
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor.getRaw
Object getRaw(final GeneratedMessage message)
Definition: GeneratedMessage.java:2447
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.clear
void clear(final Builder builder)
Definition: GeneratedMessage.java:2380
message
GLenum GLuint GLenum GLsizei const GLchar * message
Definition: glcorearb.h:2695
com.google.protobuf.GeneratedMessage.ExtendableMessage.getExtensionCount
final< Type > int getExtensionCount(final Extension< MessageType, List< Type >> extension)
Definition: GeneratedMessage.java:927
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedMessageFieldAccessor.getRepeatedBuilder
Message.Builder getRepeatedBuilder(final GeneratedMessage.Builder builder, final int index)
Definition: GeneratedMessage.java:2986
com.google.protobuf.Message
Definition: Message.java:50
com.google.protobuf.GeneratedMessage.Builder.clear
BuilderType clear()
Definition: GeneratedMessage.java:450
com.google.protobuf.GeneratedMessage.ExtendableMessage.ExtensionWriter.next
Map.Entry< FieldDescriptor, Object > next
Definition: GeneratedMessage.java:1003
com.google.protobuf.GeneratedMessage.ExtendableBuilder.addExtension
final< Type > BuilderType addExtension(final Extension< MessageType, List< Type >> extension, final Type value)
Definition: GeneratedMessage.java:1418
google::protobuf::method
const Descriptor::ReservedRange const EnumValueDescriptor method
Definition: src/google/protobuf/descriptor.h:1973
com.google.protobuf.GeneratedMessage.FieldAccessorTable.initialized
volatile boolean initialized
Definition: GeneratedMessage.java:2137
com.google.protobuf.GeneratedMessage.ExtendableBuilder.hasField
boolean hasField(final FieldDescriptor field)
Definition: GeneratedMessage.java:1525
com.google.protobuf.GeneratedMessage.FieldAccessorTable.FieldAccessor.getBuilder
Message.Builder getBuilder(GeneratedMessage.Builder builder)
com.google.protobuf.GeneratedMessage.newFileScopedGeneratedExtension
static< ContainingType extends Message, Type > GeneratedExtension< ContainingType, Type > newFileScopedGeneratedExtension(final Class singularType, final Message defaultInstance)
Definition: GeneratedMessage.java:1638
com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException
static< M extends Message > M parseDelimitedWithIOException(Parser< M > parser, InputStream input, ExtensionRegistryLite extensions)
Definition: GeneratedMessage.java:323
com.google.protobuf.GeneratedMessage.GeneratedExtension.extensionType
final ExtensionType extensionType
Definition: GeneratedMessage.java:1819
com.google.protobuf.GeneratedMessage.ExtendableBuilder.clone
BuilderType clone()
Definition: GeneratedMessage.java:1214
com.google.protobuf.GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor.setRepeated
void setRepeated(final Builder builder, final int index, final Object value)
Definition: GeneratedMessage.java:2821
com.google.protobuf.Descriptors.Descriptor.getFile
FileDescriptor getFile()
Definition: Descriptors.java:681
com.google.protobuf.Descriptors.Descriptor.findFieldByNumber
FieldDescriptor findFieldByNumber(final int number)
Definition: Descriptors.java:780
com.google.protobuf.GeneratedMessage.Builder.getRepeatedFieldBuilder
Message.Builder getRepeatedFieldBuilder(final FieldDescriptor field, int index)
Definition: GeneratedMessage.java:527
com.google.protobuf.Descriptors.FieldDescriptor
Definition: Descriptors.java:949
com.google.protobuf.ByteString
Definition: ByteString.java:67
com.google.protobuf.WireFormat.JavaType
Definition: WireFormat.java:84
com.google.protobuf.Descriptors.FieldDescriptor.JavaType.MESSAGE
MESSAGE
Definition: Descriptors.java:1271
com.google.protobuf.Descriptors.EnumDescriptor.findValueByNumberCreatingIfUnknown
EnumValueDescriptor findValueByNumberCreatingIfUnknown(final int number)
Definition: Descriptors.java:1668
com.google.protobuf.GeneratedMessage.FieldAccessorTable.SingularFieldAccessor.hasMethodBuilder
final Method hasMethodBuilder
Definition: GeneratedMessage.java:2283
com.google.protobuf.GeneratedMessage.FieldAccessorTable.MapFieldAccessor.getRepeated
Object getRepeated(Builder builder, int index)
Definition: GeneratedMessage.java:2603


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