UnknownFieldSet.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 
34 import java.io.IOException;
35 import java.io.InputStream;
36 import java.io.OutputStream;
37 import java.util.ArrayList;
38 import java.util.Arrays;
39 import java.util.Collections;
40 import java.util.List;
41 import java.util.ListIterator;
42 import java.util.Map;
43 import java.util.TreeMap;
44 
58 public final class UnknownFieldSet implements MessageLite {
59 
60  private UnknownFieldSet() {
61  fields = null;
62  fieldsDescending = null;
63  }
64 
66  public static Builder newBuilder() {
67  return Builder.create();
68  }
69 
71  public static Builder newBuilder(final UnknownFieldSet copyFrom) {
72  return newBuilder().mergeFrom(copyFrom);
73  }
74 
77  return defaultInstance;
78  }
79 
80  @Override
82  return defaultInstance;
83  }
84 
85  private static final UnknownFieldSet defaultInstance =
86  new UnknownFieldSet(
87  Collections.<Integer, Field>emptyMap(), Collections.<Integer, Field>emptyMap());
88 
92  UnknownFieldSet(final Map<Integer, Field> fields, final Map<Integer, Field> fieldsDescending) {
93  this.fields = fields;
94  this.fieldsDescending = fieldsDescending;
95  }
96 
97  private final Map<Integer, Field> fields;
98 
100  private final Map<Integer, Field> fieldsDescending;
101 
102 
103  @Override
104  public boolean equals(final Object other) {
105  if (this == other) {
106  return true;
107  }
108  return (other instanceof UnknownFieldSet) && fields.equals(((UnknownFieldSet) other).fields);
109  }
110 
111  @Override
112  public int hashCode() {
113  return fields.hashCode();
114  }
115 
117  public Map<Integer, Field> asMap() {
118  return fields;
119  }
120 
122  public boolean hasField(final int number) {
123  return fields.containsKey(number);
124  }
125 
127  public Field getField(final int number) {
128  final Field result = fields.get(number);
129  return (result == null) ? Field.getDefaultInstance() : result;
130  }
131 
133  @Override
134  public void writeTo(final CodedOutputStream output) throws IOException {
135  for (final Map.Entry<Integer, Field> entry : fields.entrySet()) {
136  Field field = entry.getValue();
137  field.writeTo(entry.getKey(), output);
138  }
139  }
140 
145  @Override
146  public String toString() {
147  return TextFormat.printer().printToString(this);
148  }
149 
154  @Override
156  try {
157  final ByteString.CodedBuilder out = ByteString.newCodedBuilder(getSerializedSize());
158  writeTo(out.getCodedOutput());
159  return out.build();
160  } catch (final IOException e) {
161  throw new RuntimeException(
162  "Serializing to a ByteString threw an IOException (should never happen).", e);
163  }
164  }
165 
170  @Override
171  public byte[] toByteArray() {
172  try {
173  final byte[] result = new byte[getSerializedSize()];
175  writeTo(output);
176  output.checkNoSpaceLeft();
177  return result;
178  } catch (final IOException e) {
179  throw new RuntimeException(
180  "Serializing to a byte array threw an IOException (should never happen).", e);
181  }
182  }
183 
188  @Override
189  public void writeTo(final OutputStream output) throws IOException {
191  writeTo(codedOutput);
192  codedOutput.flush();
193  }
194 
195  @Override
196  public void writeDelimitedTo(OutputStream output) throws IOException {
198  codedOutput.writeRawVarint32(getSerializedSize());
199  writeTo(codedOutput);
200  codedOutput.flush();
201  }
202 
204  @Override
205  public int getSerializedSize() {
206  int result = 0;
207  for (final Map.Entry<Integer, Field> entry : fields.entrySet()) {
208  result += entry.getValue().getSerializedSize(entry.getKey());
209  }
210  return result;
211  }
212 
214  public void writeAsMessageSetTo(final CodedOutputStream output) throws IOException {
215  for (final Map.Entry<Integer, Field> entry : fields.entrySet()) {
216  entry.getValue().writeAsMessageSetExtensionTo(entry.getKey(), output);
217  }
218  }
219 
221  void writeTo(Writer writer) throws IOException {
222  if (writer.fieldOrder() == Writer.FieldOrder.DESCENDING) {
223  // Write fields in descending order.
224  for (Map.Entry<Integer, Field> entry : fieldsDescending.entrySet()) {
225  entry.getValue().writeTo(entry.getKey(), writer);
226  }
227  } else {
228  // Write fields in ascending order.
229  for (Map.Entry<Integer, Field> entry : fields.entrySet()) {
230  entry.getValue().writeTo(entry.getKey(), writer);
231  }
232  }
233  }
234 
236  void writeAsMessageSetTo(final Writer writer) throws IOException {
237  if (writer.fieldOrder() == Writer.FieldOrder.DESCENDING) {
238  // Write fields in descending order.
239  for (final Map.Entry<Integer, Field> entry : fieldsDescending.entrySet()) {
240  entry.getValue().writeAsMessageSetExtensionTo(entry.getKey(), writer);
241  }
242  } else {
243  // Write fields in ascending order.
244  for (final Map.Entry<Integer, Field> entry : fields.entrySet()) {
245  entry.getValue().writeAsMessageSetExtensionTo(entry.getKey(), writer);
246  }
247  }
248  }
249 
252  int result = 0;
253  for (final Map.Entry<Integer, Field> entry : fields.entrySet()) {
254  result += entry.getValue().getSerializedSizeAsMessageSetExtension(entry.getKey());
255  }
256  return result;
257  }
258 
259  @Override
260  public boolean isInitialized() {
261  // UnknownFieldSets do not have required fields, so they are always
262  // initialized.
263  return true;
264  }
265 
267  public static UnknownFieldSet parseFrom(final CodedInputStream input) throws IOException {
268  return newBuilder().mergeFrom(input).build();
269  }
270 
274  return newBuilder().mergeFrom(data).build();
275  }
276 
278  public static UnknownFieldSet parseFrom(final byte[] data) throws InvalidProtocolBufferException {
279  return newBuilder().mergeFrom(data).build();
280  }
281 
283  public static UnknownFieldSet parseFrom(final InputStream input) throws IOException {
284  return newBuilder().mergeFrom(input).build();
285  }
286 
287  @Override
289  return newBuilder();
290  }
291 
292  @Override
293  public Builder toBuilder() {
294  return newBuilder().mergeFrom(this);
295  }
296 
308  public static final class Builder implements MessageLite.Builder {
309  // This constructor should never be called directly (except from 'create').
310  private Builder() {}
311 
312  private Map<Integer, Field> fields;
313 
314  // Optimization: We keep around a builder for the last field that was
315  // modified so that we can efficiently add to it multiple times in a
316  // row (important when parsing an unknown repeated field).
317  private int lastFieldNumber;
319 
320  private static Builder create() {
321  Builder builder = new Builder();
322  builder.reinitialize();
323  return builder;
324  }
325 
329  private Field.Builder getFieldBuilder(final int number) {
330  if (lastField != null) {
331  if (number == lastFieldNumber) {
332  return lastField;
333  }
334  // Note: addField() will reset lastField and lastFieldNumber.
336  }
337  if (number == 0) {
338  return null;
339  } else {
340  final Field existing = fields.get(number);
343  if (existing != null) {
344  lastField.mergeFrom(existing);
345  }
346  return lastField;
347  }
348  }
349 
357  @Override
359  getFieldBuilder(0); // Force lastField to be built.
360  final UnknownFieldSet result;
361  if (fields.isEmpty()) {
362  result = getDefaultInstance();
363  } else {
364  Map<Integer, Field> descendingFields = null;
365  descendingFields =
366  Collections.unmodifiableMap(((TreeMap<Integer, Field>) fields).descendingMap());
367  result = new UnknownFieldSet(Collections.unmodifiableMap(fields), descendingFields);
368  }
369  fields = null;
370  return result;
371  }
372 
373  @Override
375  // No required fields, so this is the same as build().
376  return build();
377  }
378 
379  @Override
380  public Builder clone() {
381  getFieldBuilder(0); // Force lastField to be built.
382  Map<Integer, Field> descendingFields = null;
383  descendingFields =
384  Collections.unmodifiableMap(((TreeMap<Integer, Field>) fields).descendingMap());
385  return UnknownFieldSet.newBuilder().mergeFrom(new UnknownFieldSet(fields, descendingFields));
386  }
387 
388  @Override
391  }
392 
393  private void reinitialize() {
394  fields = Collections.emptyMap();
395  lastFieldNumber = 0;
396  lastField = null;
397  }
398 
400  @Override
401  public Builder clear() {
402  reinitialize();
403  return this;
404  }
405 
407  public Builder clearField(final int number) {
408  if (number == 0) {
409  throw new IllegalArgumentException("Zero is not a valid field number.");
410  }
411  if (lastField != null && lastFieldNumber == number) {
412  // Discard this.
413  lastField = null;
414  lastFieldNumber = 0;
415  }
416  if (fields.containsKey(number)) {
417  fields.remove(number);
418  }
419  return this;
420  }
421 
426  public Builder mergeFrom(final UnknownFieldSet other) {
427  if (other != getDefaultInstance()) {
428  for (final Map.Entry<Integer, Field> entry : other.fields.entrySet()) {
429  mergeField(entry.getKey(), entry.getValue());
430  }
431  }
432  return this;
433  }
434 
439  public Builder mergeField(final int number, final Field field) {
440  if (number == 0) {
441  throw new IllegalArgumentException("Zero is not a valid field number.");
442  }
443  if (hasField(number)) {
444  getFieldBuilder(number).mergeFrom(field);
445  } else {
446  // Optimization: We could call getFieldBuilder(number).mergeFrom(field)
447  // in this case, but that would create a copy of the Field object.
448  // We'd rather reuse the one passed to us, so call addField() instead.
450  }
451  return this;
452  }
453 
458  public Builder mergeVarintField(final int number, final int value) {
459  if (number == 0) {
460  throw new IllegalArgumentException("Zero is not a valid field number.");
461  }
462  getFieldBuilder(number).addVarint(value);
463  return this;
464  }
465 
472  if (number == 0) {
473  throw new IllegalArgumentException("Zero is not a valid field number.");
474  }
475  getFieldBuilder(number).addLengthDelimited(value);
476  return this;
477  }
478 
480  public boolean hasField(final int number) {
481  if (number == 0) {
482  throw new IllegalArgumentException("Zero is not a valid field number.");
483  }
484  return number == lastFieldNumber || fields.containsKey(number);
485  }
486 
491  public Builder addField(final int number, final Field field) {
492  if (number == 0) {
493  throw new IllegalArgumentException("Zero is not a valid field number.");
494  }
495  if (lastField != null && lastFieldNumber == number) {
496  // Discard this.
497  lastField = null;
498  lastFieldNumber = 0;
499  }
500  if (fields.isEmpty()) {
501  fields = new TreeMap<Integer, Field>();
502  }
503  fields.put(number, field);
504  return this;
505  }
506 
511  public Map<Integer, Field> asMap() {
512  getFieldBuilder(0); // Force lastField to be built.
513  return Collections.unmodifiableMap(fields);
514  }
515 
517  @Override
518  public Builder mergeFrom(final CodedInputStream input) throws IOException {
519  while (true) {
520  final int tag = input.readTag();
521  if (tag == 0 || !mergeFieldFrom(tag, input)) {
522  break;
523  }
524  }
525  return this;
526  }
527 
534  public boolean mergeFieldFrom(final int tag, final CodedInputStream input) throws IOException {
535  final int number = WireFormat.getTagFieldNumber(tag);
536  switch (WireFormat.getTagWireType(tag)) {
538  getFieldBuilder(number).addVarint(input.readInt64());
539  return true;
541  getFieldBuilder(number).addFixed64(input.readFixed64());
542  return true;
544  getFieldBuilder(number).addLengthDelimited(input.readBytes());
545  return true;
547  final Builder subBuilder = newBuilder();
548  input.readGroup(number, subBuilder, ExtensionRegistry.getEmptyRegistry());
549  getFieldBuilder(number).addGroup(subBuilder.build());
550  return true;
552  return false;
554  getFieldBuilder(number).addFixed32(input.readFixed32());
555  return true;
556  default:
557  throw InvalidProtocolBufferException.invalidWireType();
558  }
559  }
560 
565  @Override
567  try {
568  final CodedInputStream input = data.newCodedInput();
569  mergeFrom(input);
570  input.checkLastTagWas(0);
571  return this;
572  } catch (final InvalidProtocolBufferException e) {
573  throw e;
574  } catch (final IOException e) {
575  throw new RuntimeException(
576  "Reading from a ByteString threw an IOException (should never happen).", e);
577  }
578  }
579 
584  @Override
585  public Builder mergeFrom(final byte[] data) throws InvalidProtocolBufferException {
586  try {
588  mergeFrom(input);
589  input.checkLastTagWas(0);
590  return this;
591  } catch (final InvalidProtocolBufferException e) {
592  throw e;
593  } catch (final IOException e) {
594  throw new RuntimeException(
595  "Reading from a byte array threw an IOException (should never happen).", e);
596  }
597  }
598 
603  @Override
604  public Builder mergeFrom(final InputStream input) throws IOException {
606  mergeFrom(codedInput);
607  codedInput.checkLastTagWas(0);
608  return this;
609  }
610 
611  @Override
612  public boolean mergeDelimitedFrom(InputStream input) throws IOException {
613  final int firstByte = input.read();
614  if (firstByte == -1) {
615  return false;
616  }
617  final int size = CodedInputStream.readRawVarint32(firstByte, input);
618  final InputStream limitedInput = new LimitedInputStream(input, size);
619  mergeFrom(limitedInput);
620  return true;
621  }
622 
623  @Override
624  public boolean mergeDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
625  throws IOException {
626  // UnknownFieldSet has no extensions.
627  return mergeDelimitedFrom(input);
628  }
629 
630  @Override
632  throws IOException {
633  // UnknownFieldSet has no extensions.
634  return mergeFrom(input);
635  }
636 
637  @Override
640  // UnknownFieldSet has no extensions.
641  return mergeFrom(data);
642  }
643 
644  @Override
645  public Builder mergeFrom(byte[] data, int off, int len) throws InvalidProtocolBufferException {
646  try {
648  mergeFrom(input);
649  input.checkLastTagWas(0);
650  return this;
651  } catch (InvalidProtocolBufferException e) {
652  throw e;
653  } catch (IOException e) {
654  throw new RuntimeException(
655  "Reading from a byte array threw an IOException (should never happen).", e);
656  }
657  }
658 
659  @Override
660  public Builder mergeFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
662  // UnknownFieldSet has no extensions.
663  return mergeFrom(data);
664  }
665 
666  @Override
667  public Builder mergeFrom(byte[] data, int off, int len, ExtensionRegistryLite extensionRegistry)
669  // UnknownFieldSet has no extensions.
670  return mergeFrom(data, off, len);
671  }
672 
673  @Override
674  public Builder mergeFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
675  throws IOException {
676  // UnknownFieldSet has no extensions.
677  return mergeFrom(input);
678  }
679 
680  @Override
682  if (m instanceof UnknownFieldSet) {
683  return mergeFrom((UnknownFieldSet) m);
684  }
685  throw new IllegalArgumentException(
686  "mergeFrom(MessageLite) can only merge messages of the same type.");
687  }
688 
689  @Override
690  public boolean isInitialized() {
691  // UnknownFieldSets do not have required fields, so they are always
692  // initialized.
693  return true;
694  }
695  }
696 
712  public static final class Field {
713  private Field() {}
714 
716  public static Builder newBuilder() {
717  return Builder.create();
718  }
719 
721  public static Builder newBuilder(final Field copyFrom) {
722  return newBuilder().mergeFrom(copyFrom);
723  }
724 
726  public static Field getDefaultInstance() {
727  return fieldDefaultInstance;
728  }
729 
730  private static final Field fieldDefaultInstance = newBuilder().build();
731 
733  public List<Long> getVarintList() {
734  return varint;
735  }
736 
738  public List<Integer> getFixed32List() {
739  return fixed32;
740  }
741 
743  public List<Long> getFixed64List() {
744  return fixed64;
745  }
746 
748  public List<ByteString> getLengthDelimitedList() {
749  return lengthDelimited;
750  }
751 
756  public List<UnknownFieldSet> getGroupList() {
757  return group;
758  }
759 
760  @Override
761  public boolean equals(final Object other) {
762  if (this == other) {
763  return true;
764  }
765  if (!(other instanceof Field)) {
766  return false;
767  }
768  return Arrays.equals(getIdentityArray(), ((Field) other).getIdentityArray());
769  }
770 
771  @Override
772  public int hashCode() {
773  return Arrays.hashCode(getIdentityArray());
774  }
775 
777  private Object[] getIdentityArray() {
778  return new Object[] {varint, fixed32, fixed64, lengthDelimited, group};
779  }
780 
785  public ByteString toByteString(int fieldNumber) {
786  try {
787  // TODO(lukes): consider caching serialized size in a volatile long
788  final ByteString.CodedBuilder out =
789  ByteString.newCodedBuilder(getSerializedSize(fieldNumber));
790  writeTo(fieldNumber, out.getCodedOutput());
791  return out.build();
792  } catch (IOException e) {
793  throw new RuntimeException(
794  "Serializing to a ByteString should never fail with an IOException", e);
795  }
796  }
797 
799  public void writeTo(final int fieldNumber, final CodedOutputStream output) throws IOException {
800  for (final long value : varint) {
801  output.writeUInt64(fieldNumber, value);
802  }
803  for (final int value : fixed32) {
804  output.writeFixed32(fieldNumber, value);
805  }
806  for (final long value : fixed64) {
807  output.writeFixed64(fieldNumber, value);
808  }
809  for (final ByteString value : lengthDelimited) {
810  output.writeBytes(fieldNumber, value);
811  }
812  for (final UnknownFieldSet value : group) {
813  output.writeGroup(fieldNumber, value);
814  }
815  }
816 
818  public int getSerializedSize(final int fieldNumber) {
819  int result = 0;
820  for (final long value : varint) {
821  result += CodedOutputStream.computeUInt64Size(fieldNumber, value);
822  }
823  for (final int value : fixed32) {
824  result += CodedOutputStream.computeFixed32Size(fieldNumber, value);
825  }
826  for (final long value : fixed64) {
827  result += CodedOutputStream.computeFixed64Size(fieldNumber, value);
828  }
829  for (final ByteString value : lengthDelimited) {
830  result += CodedOutputStream.computeBytesSize(fieldNumber, value);
831  }
832  for (final UnknownFieldSet value : group) {
833  result += CodedOutputStream.computeGroupSize(fieldNumber, value);
834  }
835  return result;
836  }
837 
842  public void writeAsMessageSetExtensionTo(final int fieldNumber, final CodedOutputStream output)
843  throws IOException {
844  for (final ByteString value : lengthDelimited) {
845  output.writeRawMessageSetExtension(fieldNumber, value);
846  }
847  }
848 
850  void writeTo(final int fieldNumber, final Writer writer) throws IOException {
851  writer.writeInt64List(fieldNumber, varint, false);
852  writer.writeFixed32List(fieldNumber, fixed32, false);
853  writer.writeFixed64List(fieldNumber, fixed64, false);
854  writer.writeBytesList(fieldNumber, lengthDelimited);
855 
856  if (writer.fieldOrder() == Writer.FieldOrder.ASCENDING) {
857  for (int i = 0; i < group.size(); i++) {
858  writer.writeStartGroup(fieldNumber);
859  group.get(i).writeTo(writer);
860  writer.writeEndGroup(fieldNumber);
861  }
862  } else {
863  for (int i = group.size() - 1; i >= 0; i--) {
864  writer.writeEndGroup(fieldNumber);
865  group.get(i).writeTo(writer);
866  writer.writeStartGroup(fieldNumber);
867  }
868  }
869  }
870 
875  private void writeAsMessageSetExtensionTo(final int fieldNumber, final Writer writer)
876  throws IOException {
877  if (writer.fieldOrder() == Writer.FieldOrder.DESCENDING) {
878  // Write in descending field order.
879  ListIterator<ByteString> iter = lengthDelimited.listIterator(lengthDelimited.size());
880  while (iter.hasPrevious()) {
881  writer.writeMessageSetItem(fieldNumber, iter.previous());
882  }
883  } else {
884  // Write in ascending field order.
885  for (final ByteString value : lengthDelimited) {
886  writer.writeMessageSetItem(fieldNumber, value);
887  }
888  }
889  }
890 
895  public int getSerializedSizeAsMessageSetExtension(final int fieldNumber) {
896  int result = 0;
897  for (final ByteString value : lengthDelimited) {
899  }
900  return result;
901  }
902 
903  private List<Long> varint;
904  private List<Integer> fixed32;
905  private List<Long> fixed64;
906  private List<ByteString> lengthDelimited;
907  private List<UnknownFieldSet> group;
908 
914  public static final class Builder {
915  // This constructor should never be called directly (except from 'create').
916  private Builder() {}
917 
918  private static Builder create() {
919  Builder builder = new Builder();
920  builder.result = new Field();
921  return builder;
922  }
923 
924  private Field result;
925 
931  public Field build() {
932  if (result.varint == null) {
933  result.varint = Collections.emptyList();
934  } else {
935  result.varint = Collections.unmodifiableList(result.varint);
936  }
937  if (result.fixed32 == null) {
938  result.fixed32 = Collections.emptyList();
939  } else {
940  result.fixed32 = Collections.unmodifiableList(result.fixed32);
941  }
942  if (result.fixed64 == null) {
943  result.fixed64 = Collections.emptyList();
944  } else {
945  result.fixed64 = Collections.unmodifiableList(result.fixed64);
946  }
947  if (result.lengthDelimited == null) {
948  result.lengthDelimited = Collections.emptyList();
949  } else {
950  result.lengthDelimited = Collections.unmodifiableList(result.lengthDelimited);
951  }
952  if (result.group == null) {
953  result.group = Collections.emptyList();
954  } else {
955  result.group = Collections.unmodifiableList(result.group);
956  }
957 
958  final Field returnMe = result;
959  result = null;
960  return returnMe;
961  }
962 
964  public Builder clear() {
965  result = new Field();
966  return this;
967  }
968 
973  public Builder mergeFrom(final Field other) {
974  if (!other.varint.isEmpty()) {
975  if (result.varint == null) {
976  result.varint = new ArrayList<Long>();
977  }
978  result.varint.addAll(other.varint);
979  }
980  if (!other.fixed32.isEmpty()) {
981  if (result.fixed32 == null) {
982  result.fixed32 = new ArrayList<Integer>();
983  }
984  result.fixed32.addAll(other.fixed32);
985  }
986  if (!other.fixed64.isEmpty()) {
987  if (result.fixed64 == null) {
988  result.fixed64 = new ArrayList<Long>();
989  }
990  result.fixed64.addAll(other.fixed64);
991  }
992  if (!other.lengthDelimited.isEmpty()) {
993  if (result.lengthDelimited == null) {
994  result.lengthDelimited = new ArrayList<ByteString>();
995  }
996  result.lengthDelimited.addAll(other.lengthDelimited);
997  }
998  if (!other.group.isEmpty()) {
999  if (result.group == null) {
1000  result.group = new ArrayList<UnknownFieldSet>();
1001  }
1002  result.group.addAll(other.group);
1003  }
1004  return this;
1005  }
1006 
1008  public Builder addVarint(final long value) {
1009  if (result.varint == null) {
1010  result.varint = new ArrayList<Long>();
1011  }
1012  result.varint.add(value);
1013  return this;
1014  }
1015 
1017  public Builder addFixed32(final int value) {
1018  if (result.fixed32 == null) {
1019  result.fixed32 = new ArrayList<Integer>();
1020  }
1021  result.fixed32.add(value);
1022  return this;
1023  }
1024 
1026  public Builder addFixed64(final long value) {
1027  if (result.fixed64 == null) {
1028  result.fixed64 = new ArrayList<Long>();
1029  }
1030  result.fixed64.add(value);
1031  return this;
1032  }
1033 
1036  if (result.lengthDelimited == null) {
1037  result.lengthDelimited = new ArrayList<ByteString>();
1038  }
1040  return this;
1041  }
1042 
1045  if (result.group == null) {
1046  result.group = new ArrayList<UnknownFieldSet>();
1047  }
1048  result.group.add(value);
1049  return this;
1050  }
1051  }
1052  }
1053 
1055  public static final class Parser extends AbstractParser<UnknownFieldSet> {
1056  @Override
1058  CodedInputStream input, ExtensionRegistryLite extensionRegistry)
1060  Builder builder = newBuilder();
1061  try {
1062  builder.mergeFrom(input);
1063  } catch (InvalidProtocolBufferException e) {
1064  throw e.setUnfinishedMessage(builder.buildPartial());
1065  } catch (IOException e) {
1067  }
1068  return builder.buildPartial();
1069  }
1070  }
1071 
1072  private static final Parser PARSER = new Parser();
1073 
1074  @Override
1075  public final Parser getParserForType() {
1076  return PARSER;
1077  }
1078 }
Map
struct Map Map
Definition: php/ext/google/protobuf/protobuf.h:648
com.google.protobuf.WireFormat.WIRETYPE_VARINT
static final int WIRETYPE_VARINT
Definition: WireFormat.java:55
com.google.protobuf.UnknownFieldSet.Field.varint
List< Long > varint
Definition: UnknownFieldSet.java:903
com.google.protobuf.UnknownFieldSet.Field.writeAsMessageSetExtensionTo
void writeAsMessageSetExtensionTo(final int fieldNumber, final Writer writer)
Definition: UnknownFieldSet.java:875
com.google.protobuf.UnknownFieldSet.parseFrom
static UnknownFieldSet parseFrom(final byte[] data)
Definition: UnknownFieldSet.java:278
com.google.protobuf.UnknownFieldSet.Field.getFixed64List
List< Long > getFixed64List()
Definition: UnknownFieldSet.java:743
com.google.protobuf.CodedOutputStream.computeGroupSize
static int computeGroupSize(final int fieldNumber, final MessageLite value)
Definition: CodedOutputStream.java:1058
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(final InputStream input)
Definition: UnknownFieldSet.java:604
com.google.protobuf.UnknownFieldSet.Field.writeAsMessageSetExtensionTo
void writeAsMessageSetExtensionTo(final int fieldNumber, final CodedOutputStream output)
Definition: UnknownFieldSet.java:842
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(final CodedInputStream input)
Definition: UnknownFieldSet.java:518
com.google.protobuf.CodedOutputStream.computeUInt64Size
static int computeUInt64Size(final int fieldNumber, final long value)
Definition: CodedOutputStream.java:556
com.google.protobuf.UnknownFieldSet.Builder.asMap
Map< Integer, Field > asMap()
Definition: UnknownFieldSet.java:511
com.google.protobuf.UnknownFieldSet.Field.Builder.clear
Builder clear()
Definition: UnknownFieldSet.java:964
com.google.protobuf.UnknownFieldSet.getDefaultInstance
static UnknownFieldSet getDefaultInstance()
Definition: UnknownFieldSet.java:76
Map
Definition: ruby/ext/google/protobuf_c/protobuf.h:442
com.google.protobuf.CodedOutputStream.computeFixed64Size
static int computeFixed64Size(final int fieldNumber, final long value)
Definition: CodedOutputStream.java:572
com.google.protobuf.UnknownFieldSet.Builder.mergeDelimitedFrom
boolean mergeDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Definition: UnknownFieldSet.java:624
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Definition: UnknownFieldSet.java:638
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Definition: UnknownFieldSet.java:631
com.google.protobuf.CodedInputStream.newInstance
static CodedInputStream newInstance(final InputStream input)
Definition: CodedInputStream.java:79
com.google.protobuf.UnknownFieldSet.fieldsDescending
final Map< Integer, Field > fieldsDescending
Definition: UnknownFieldSet.java:100
com.google.protobuf.UnknownFieldSet.Builder.getFieldBuilder
Field.Builder getFieldBuilder(final int number)
Definition: UnknownFieldSet.java:329
com.google.protobuf.UnknownFieldSet.toByteString
ByteString toByteString()
Definition: UnknownFieldSet.java:155
com.google.protobuf.UnknownFieldSet.Field.hashCode
int hashCode()
Definition: UnknownFieldSet.java:772
com.google.protobuf.CodedOutputStream.computeRawMessageSetExtensionSize
static int computeRawMessageSetExtensionSize(final int fieldNumber, final ByteString value)
Definition: CodedOutputStream.java:687
input
std::string input
Definition: tokenizer_unittest.cc:197
com.google.protobuf.UnknownFieldSet.Field.newBuilder
static Builder newBuilder()
Definition: UnknownFieldSet.java:716
com.google.protobuf.UnknownFieldSet.Field.Builder.create
static Builder create()
Definition: UnknownFieldSet.java:918
com.google.protobuf.UnknownFieldSet.Field.Builder.addFixed32
Builder addFixed32(final int value)
Definition: UnknownFieldSet.java:1017
com.google.protobuf.UnknownFieldSet.Builder.lastFieldNumber
int lastFieldNumber
Definition: UnknownFieldSet.java:317
com.google.protobuf.UnknownFieldSet.Builder.addField
Builder addField(final int number, final Field field)
Definition: UnknownFieldSet.java:491
com.google.protobuf.UnknownFieldSet.PARSER
static final Parser PARSER
Definition: UnknownFieldSet.java:1072
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(byte[] data, int off, int len)
Definition: UnknownFieldSet.java:645
com.google.protobuf.WireFormat.WIRETYPE_FIXED64
static final int WIRETYPE_FIXED64
Definition: WireFormat.java:56
com.google.protobuf.UnknownFieldSet.isInitialized
boolean isInitialized()
Definition: UnknownFieldSet.java:260
com.google.protobuf.UnknownFieldSet.Builder.clone
Builder clone()
Definition: UnknownFieldSet.java:380
com.google.protobuf.UnknownFieldSet.Field.getLengthDelimitedList
List< ByteString > getLengthDelimitedList()
Definition: UnknownFieldSet.java:748
com.google.protobuf.UnknownFieldSet.writeDelimitedTo
void writeDelimitedTo(OutputStream output)
Definition: UnknownFieldSet.java:196
com.google.protobuf.UnknownFieldSet.Builder.mergeVarintField
Builder mergeVarintField(final int number, final int value)
Definition: UnknownFieldSet.java:458
com.google.protobuf.UnknownFieldSet.Field.getSerializedSize
int getSerializedSize(final int fieldNumber)
Definition: UnknownFieldSet.java:818
com.google.protobuf.CodedInputStream.checkLastTagWas
abstract void checkLastTagWas(final int value)
com.google.protobuf.UnknownFieldSet.Builder.Builder
Builder()
Definition: UnknownFieldSet.java:310
com.google.protobuf.UnknownFieldSet.Builder.mergeDelimitedFrom
boolean mergeDelimitedFrom(InputStream input)
Definition: UnknownFieldSet.java:612
com.google.protobuf.UnknownFieldSet.Builder.clearField
Builder clearField(final int number)
Definition: UnknownFieldSet.java:407
com.google.protobuf
Definition: ProtoCaliperBenchmark.java:2
com.google.protobuf.UnknownFieldSet.Builder.isInitialized
boolean isInitialized()
Definition: UnknownFieldSet.java:690
com.google.protobuf.UnknownFieldSet.Builder.build
UnknownFieldSet build()
Definition: UnknownFieldSet.java:358
com.google.protobuf.UnknownFieldSet.Field.Builder.addGroup
Builder addGroup(final UnknownFieldSet value)
Definition: UnknownFieldSet.java:1044
com.google.protobuf.UnknownFieldSet.Field.Field
Field()
Definition: UnknownFieldSet.java:713
com.google.protobuf.UnknownFieldSet.Field.group
List< UnknownFieldSet > group
Definition: UnknownFieldSet.java:907
com.google.protobuf.CodedOutputStream.flush
abstract void flush()
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Definition: UnknownFieldSet.java:674
com.google.protobuf.WireFormat
Definition: WireFormat.java:45
com.google.protobuf.UnknownFieldSet.Builder.hasField
boolean hasField(final int number)
Definition: UnknownFieldSet.java:480
com.google.protobuf.UnknownFieldSet.Builder.mergeFieldFrom
boolean mergeFieldFrom(final int tag, final CodedInputStream input)
Definition: UnknownFieldSet.java:534
com.google.protobuf.UnknownFieldSet.parseFrom
static UnknownFieldSet parseFrom(final ByteString data)
Definition: UnknownFieldSet.java:272
com.google.protobuf.UnknownFieldSet.writeTo
void writeTo(final CodedOutputStream output)
Definition: UnknownFieldSet.java:134
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(MessageLite m)
Definition: UnknownFieldSet.java:681
com.google.protobuf.UnknownFieldSet.newBuilder
static Builder newBuilder()
Definition: UnknownFieldSet.java:66
com.google.protobuf.UnknownFieldSet.Field.writeTo
void writeTo(final int fieldNumber, final CodedOutputStream output)
Definition: UnknownFieldSet.java:799
com.google.protobuf.UnknownFieldSet.writeAsMessageSetTo
void writeAsMessageSetTo(final CodedOutputStream output)
Definition: UnknownFieldSet.java:214
com.google.protobuf.UnknownFieldSet.Parser.parsePartialFrom
UnknownFieldSet parsePartialFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Definition: UnknownFieldSet.java:1057
com.google.protobuf.UnknownFieldSet.defaultInstance
static final UnknownFieldSet defaultInstance
Definition: UnknownFieldSet.java:85
com.google.protobuf.UnknownFieldSet.Field.Builder.addVarint
Builder addVarint(final long value)
Definition: UnknownFieldSet.java:1008
com.google.protobuf.UnknownFieldSet.Field.getSerializedSizeAsMessageSetExtension
int getSerializedSizeAsMessageSetExtension(final int fieldNumber)
Definition: UnknownFieldSet.java:895
com.google.protobuf.CodedInputStream
Definition: CodedInputStream.java:61
com.google.protobuf.UnknownFieldSet.Field.Builder
Definition: UnknownFieldSet.java:914
com.google.protobuf.UnknownFieldSet.Field.fixed32
List< Integer > fixed32
Definition: UnknownFieldSet.java:904
com.google.protobuf.AbstractMessageLite.Builder
Definition: AbstractMessageLite.java:154
com.google.protobuf.CodedOutputStream.computeFixed32Size
static int computeFixed32Size(final int fieldNumber, final int value)
Definition: CodedOutputStream.java:532
com.google.protobuf.UnknownFieldSet.toBuilder
Builder toBuilder()
Definition: UnknownFieldSet.java:293
com.google.protobuf.UnknownFieldSet.Builder.buildPartial
UnknownFieldSet buildPartial()
Definition: UnknownFieldSet.java:374
com.google.protobuf.UnknownFieldSet
Definition: UnknownFieldSet.java:58
com.google.protobuf.UnknownFieldSet.Field.Builder.build
Field build()
Definition: UnknownFieldSet.java:931
com.google.protobuf.UnknownFieldSet.Field.getDefaultInstance
static Field getDefaultInstance()
Definition: UnknownFieldSet.java:726
com.google.protobuf.UnknownFieldSet.parseFrom
static UnknownFieldSet parseFrom(final InputStream input)
Definition: UnknownFieldSet.java:283
com.google.protobuf.UnknownFieldSet.equals
boolean equals(final Object other)
Definition: UnknownFieldSet.java:104
com.google.protobuf.UnknownFieldSet.getField
Field getField(final int number)
Definition: UnknownFieldSet.java:127
com.google.protobuf.UnknownFieldSet.toString
String toString()
Definition: UnknownFieldSet.java:146
com.google.protobuf.UnknownFieldSet.Field.Builder.Builder
Builder()
Definition: UnknownFieldSet.java:916
com.google.protobuf.AbstractMessageLite
Definition: AbstractMessageLite.java:49
com.google.protobuf.UnknownFieldSet.newBuilder
static Builder newBuilder(final UnknownFieldSet copyFrom)
Definition: UnknownFieldSet.java:71
com.google.protobuf.UnknownFieldSet.toByteArray
byte[] toByteArray()
Definition: UnknownFieldSet.java:171
com.google.protobuf.UnknownFieldSet.getDefaultInstanceForType
UnknownFieldSet getDefaultInstanceForType()
Definition: UnknownFieldSet.java:81
com.google.protobuf.UnknownFieldSet.Field.fieldDefaultInstance
static final Field fieldDefaultInstance
Definition: UnknownFieldSet.java:730
com.google.protobuf.UnknownFieldSet.Field.fixed64
List< Long > fixed64
Definition: UnknownFieldSet.java:905
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(final byte[] data)
Definition: UnknownFieldSet.java:585
com.google.protobuf.UnknownFieldSet.Field.lengthDelimited
List< ByteString > lengthDelimited
Definition: UnknownFieldSet.java:906
com.google.protobuf.UnknownFieldSet.getParserForType
final Parser getParserForType()
Definition: UnknownFieldSet.java:1075
com.google.protobuf.ExtensionRegistryLite
Definition: ExtensionRegistryLite.java:70
com.google.protobuf.UnknownFieldSet.Builder
Definition: UnknownFieldSet.java:308
com.google.protobuf.UnknownFieldSet.hasField
boolean hasField(final int number)
Definition: UnknownFieldSet.java:122
field
const FieldDescriptor * field
Definition: parser_unittest.cc:2694
com.google.protobuf.WireFormat.WIRETYPE_END_GROUP
static final int WIRETYPE_END_GROUP
Definition: WireFormat.java:59
com.google.protobuf.UnknownFieldSet.Field
Definition: UnknownFieldSet.java:712
com.google.protobuf.ExtensionRegistry.getEmptyRegistry
static ExtensionRegistry getEmptyRegistry()
Definition: ExtensionRegistry.java:98
com.google.protobuf.UnknownFieldSet.Field.Builder.result
Field result
Definition: UnknownFieldSet.java:924
com.google.protobuf.WireFormat.WIRETYPE_FIXED32
static final int WIRETYPE_FIXED32
Definition: WireFormat.java:60
com.google.protobuf.WireFormat.WIRETYPE_START_GROUP
static final int WIRETYPE_START_GROUP
Definition: WireFormat.java:58
i
int i
Definition: gmock-matchers_test.cc:764
com.google.protobuf.UnknownFieldSet.Field.Builder.addLengthDelimited
Builder addLengthDelimited(final ByteString value)
Definition: UnknownFieldSet.java:1035
com.google.protobuf.UnknownFieldSet.UnknownFieldSet
UnknownFieldSet()
Definition: UnknownFieldSet.java:60
com.google.protobuf.TextFormat.printer
static Printer printer()
Definition: TextFormat.java:280
com.google.protobuf.AbstractMessageLite.Builder.LimitedInputStream
Definition: AbstractMessageLite.java:270
java
com.google.protobuf.UnknownFieldSet.Builder.getDefaultInstanceForType
UnknownFieldSet getDefaultInstanceForType()
Definition: UnknownFieldSet.java:389
Field
struct Field Field
Definition: php/ext/google/protobuf/protobuf.h:638
com.google.protobuf.UnknownFieldSet.Field.equals
boolean equals(final Object other)
Definition: UnknownFieldSet.java:761
com.google.protobuf.WireFormat.WIRETYPE_LENGTH_DELIMITED
static final int WIRETYPE_LENGTH_DELIMITED
Definition: WireFormat.java:57
len
int len
Definition: php/ext/google/protobuf/map.c:206
com.google.protobuf.WireFormat.getTagWireType
static int getTagWireType(final int tag)
Definition: WireFormat.java:66
com.google.protobuf.UnknownFieldSet.newBuilderForType
Builder newBuilderForType()
Definition: UnknownFieldSet.java:288
com.google.protobuf.UnknownFieldSet.asMap
Map< Integer, Field > asMap()
Definition: UnknownFieldSet.java:117
com.google.protobuf.UnknownFieldSet.Builder.fields
Map< Integer, Field > fields
Definition: UnknownFieldSet.java:312
com.google.protobuf.UnknownFieldSet.Builder.clear
Builder clear()
Definition: UnknownFieldSet.java:401
com.google.protobuf.UnknownFieldSet.Field.newBuilder
static Builder newBuilder(final Field copyFrom)
Definition: UnknownFieldSet.java:721
size
GLsizeiptr size
Definition: glcorearb.h:2943
com.google.protobuf.UnknownFieldSet.Field.getVarintList
List< Long > getVarintList()
Definition: UnknownFieldSet.java:733
com.google.protobuf.UnknownFieldSet.Builder.mergeField
Builder mergeField(final int number, final Field field)
Definition: UnknownFieldSet.java:439
com.google.protobuf.CodedOutputStream.writeRawVarint32
final void writeRawVarint32(int value)
Definition: CodedOutputStream.java:1092
com.google.protobuf.UnknownFieldSet.Field.toByteString
ByteString toByteString(int fieldNumber)
Definition: UnknownFieldSet.java:785
m
const upb_json_parsermethod * m
Definition: ruby/ext/google/protobuf_c/upb.h:10501
com.google.protobuf.InvalidProtocolBufferException.setUnfinishedMessage
InvalidProtocolBufferException setUnfinishedMessage(MessageLite unfinishedMessage)
Definition: InvalidProtocolBufferException.java:63
com.google
com.google.protobuf.UnknownFieldSet.hashCode
int hashCode()
Definition: UnknownFieldSet.java:112
com
com.google.protobuf.UnknownFieldSet.getSerializedSizeAsMessageSet
int getSerializedSizeAsMessageSet()
Definition: UnknownFieldSet.java:251
com.google.protobuf.CodedOutputStream.newInstance
static CodedOutputStream newInstance(final OutputStream output)
Definition: CodedOutputStream.java:92
com.google.protobuf.ExtensionRegistry
Definition: ExtensionRegistry.java:91
com.google.protobuf.UnknownFieldSet.Field.Builder.mergeFrom
Builder mergeFrom(final Field other)
Definition: UnknownFieldSet.java:973
com.google.protobuf.UnknownFieldSet.Builder.create
static Builder create()
Definition: UnknownFieldSet.java:320
com.google.protobuf.TextFormat.Printer.printToString
String printToString(final MessageOrBuilder message)
Definition: TextFormat.java:441
com.google.protobuf.AbstractParser
Definition: AbstractParser.java:48
data
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: glcorearb.h:2879
com.google.protobuf.CodedOutputStream
Definition: CodedOutputStream.java:59
com.google.protobuf.WireFormat.getTagFieldNumber
static int getTagFieldNumber(final int tag)
Definition: WireFormat.java:71
com.google.protobuf.InvalidProtocolBufferException
Definition: InvalidProtocolBufferException.java:41
com.google.protobuf.UnknownFieldSet.parseFrom
static UnknownFieldSet parseFrom(final CodedInputStream input)
Definition: UnknownFieldSet.java:267
com.google.protobuf.UnknownFieldSet.writeTo
void writeTo(final OutputStream output)
Definition: UnknownFieldSet.java:189
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(byte[] data, int off, int len, ExtensionRegistryLite extensionRegistry)
Definition: UnknownFieldSet.java:667
Field
Definition: type.pb.h:416
value
GLsizei const GLfloat * value
Definition: glcorearb.h:3093
com.google.protobuf.UnknownFieldSet.Field.getFixed32List
List< Integer > getFixed32List()
Definition: UnknownFieldSet.java:738
output
const upb_json_parsermethod const upb_symtab upb_sink * output
Definition: ruby/ext/google/protobuf_c/upb.h:10503
com.google.protobuf.UnknownFieldSet.Parser
Definition: UnknownFieldSet.java:1055
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(final UnknownFieldSet other)
Definition: UnknownFieldSet.java:426
com.google.protobuf.UnknownFieldSet.Builder.mergeLengthDelimitedField
Builder mergeLengthDelimitedField(final int number, final ByteString value)
Definition: UnknownFieldSet.java:471
com.google.protobuf.UnknownFieldSet.Field.getGroupList
List< UnknownFieldSet > getGroupList()
Definition: UnknownFieldSet.java:756
com.google.protobuf.CodedInputStream.readRawVarint32
abstract int readRawVarint32()
com.google.protobuf.UnknownFieldSet.Builder.reinitialize
void reinitialize()
Definition: UnknownFieldSet.java:393
com.google.protobuf.CodedOutputStream.computeBytesSize
static int computeBytesSize(final int fieldNumber, final ByteString value)
Definition: CodedOutputStream.java:628
com.google.protobuf.UnknownFieldSet.Field.Builder.addFixed64
Builder addFixed64(final long value)
Definition: UnknownFieldSet.java:1026
com.google.protobuf.UnknownFieldSet.fields
final Map< Integer, Field > fields
Definition: UnknownFieldSet.java:97
number
double number
Definition: cJSON.h:326
com.google.protobuf.UnknownFieldSet.Field.getIdentityArray
Object[] getIdentityArray()
Definition: UnknownFieldSet.java:777
com.google.protobuf.UnknownFieldSet.Builder.lastField
Field.Builder lastField
Definition: UnknownFieldSet.java:318
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Definition: UnknownFieldSet.java:660
com.google.protobuf.TextFormat
Definition: TextFormat.java:55
com.google.protobuf.MessageLite
Definition: MessageLite.java:65
com.google.protobuf.UnknownFieldSet.getSerializedSize
int getSerializedSize()
Definition: UnknownFieldSet.java:205
com.google.protobuf.ByteString
Definition: ByteString.java:67
com.google.protobuf.UnknownFieldSet.Builder.mergeFrom
Builder mergeFrom(final ByteString data)
Definition: UnknownFieldSet.java:566


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:07:00