| OLD | NEW |
| 1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
| 2 // Copyright 2008 Google Inc. All rights reserved. | 2 // Copyright 2008 Google Inc. All rights reserved. |
| 3 // https://developers.google.com/protocol-buffers/ | 3 // https://developers.google.com/protocol-buffers/ |
| 4 // | 4 // |
| 5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
| 6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
| 7 // met: | 7 // met: |
| 8 // | 8 // |
| 9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
| 10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 @Override | 290 @Override |
| 291 public DynamicMessage parsePartialFrom( | 291 public DynamicMessage parsePartialFrom( |
| 292 CodedInputStream input, ExtensionRegistryLite extensionRegistry) | 292 CodedInputStream input, ExtensionRegistryLite extensionRegistry) |
| 293 throws InvalidProtocolBufferException { | 293 throws InvalidProtocolBufferException { |
| 294 Builder builder = newBuilder(type); | 294 Builder builder = newBuilder(type); |
| 295 try { | 295 try { |
| 296 builder.mergeFrom(input, extensionRegistry); | 296 builder.mergeFrom(input, extensionRegistry); |
| 297 } catch (InvalidProtocolBufferException e) { | 297 } catch (InvalidProtocolBufferException e) { |
| 298 throw e.setUnfinishedMessage(builder.buildPartial()); | 298 throw e.setUnfinishedMessage(builder.buildPartial()); |
| 299 } catch (IOException e) { | 299 } catch (IOException e) { |
| 300 throw new InvalidProtocolBufferException(e.getMessage()) | 300 throw new InvalidProtocolBufferException(e) |
| 301 .setUnfinishedMessage(builder.buildPartial()); | 301 .setUnfinishedMessage(builder.buildPartial()); |
| 302 } | 302 } |
| 303 return builder.buildPartial(); | 303 return builder.buildPartial(); |
| 304 } | 304 } |
| 305 }; | 305 }; |
| 306 } | 306 } |
| 307 | 307 |
| 308 /** Verifies that the field is a field of this message. */ | 308 /** Verifies that the field is a field of this message. */ |
| 309 private void verifyContainingType(FieldDescriptor field) { | 309 private void verifyContainingType(FieldDescriptor field) { |
| 310 if (field.getContainingType() != type) { | 310 if (field.getContainingType() != type) { |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 519 ensureEnumValueDescriptor(field, value); | 519 ensureEnumValueDescriptor(field, value); |
| 520 } | 520 } |
| 521 OneofDescriptor oneofDescriptor = field.getContainingOneof(); | 521 OneofDescriptor oneofDescriptor = field.getContainingOneof(); |
| 522 if (oneofDescriptor != null) { | 522 if (oneofDescriptor != null) { |
| 523 int index = oneofDescriptor.getIndex(); | 523 int index = oneofDescriptor.getIndex(); |
| 524 FieldDescriptor oldField = oneofCases[index]; | 524 FieldDescriptor oldField = oneofCases[index]; |
| 525 if ((oldField != null) && (oldField != field)) { | 525 if ((oldField != null) && (oldField != field)) { |
| 526 fields.clearField(oldField); | 526 fields.clearField(oldField); |
| 527 } | 527 } |
| 528 oneofCases[index] = field; | 528 oneofCases[index] = field; |
| 529 } else if (field.getFile().getSyntax() == Descriptors.FileDescriptor.Synta
x.PROTO3) { |
| 530 if (!field.isRepeated() |
| 531 && field.getJavaType() != FieldDescriptor.JavaType.MESSAGE |
| 532 && value.equals(field.getDefaultValue())) { |
| 533 // In proto3, setting a field to its default value is equivalent to cl
earing the field. |
| 534 fields.clearField(field); |
| 535 return this; |
| 536 } |
| 529 } | 537 } |
| 530 fields.setField(field, value); | 538 fields.setField(field, value); |
| 531 return this; | 539 return this; |
| 532 } | 540 } |
| 533 | 541 |
| 534 @Override | 542 @Override |
| 535 public Builder clearField(FieldDescriptor field) { | 543 public Builder clearField(FieldDescriptor field) { |
| 536 verifyContainingType(field); | 544 verifyContainingType(field); |
| 537 ensureIsMutable(); | 545 ensureIsMutable(); |
| 538 OneofDescriptor oneofDescriptor = field.getContainingOneof(); | 546 OneofDescriptor oneofDescriptor = field.getContainingOneof(); |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 667 } | 675 } |
| 668 | 676 |
| 669 @Override | 677 @Override |
| 670 public com.google.protobuf.Message.Builder getRepeatedFieldBuilder(FieldDesc
riptor field, | 678 public com.google.protobuf.Message.Builder getRepeatedFieldBuilder(FieldDesc
riptor field, |
| 671 int index) { | 679 int index) { |
| 672 throw new UnsupportedOperationException( | 680 throw new UnsupportedOperationException( |
| 673 "getRepeatedFieldBuilder() called on a dynamic message type."); | 681 "getRepeatedFieldBuilder() called on a dynamic message type."); |
| 674 } | 682 } |
| 675 } | 683 } |
| 676 } | 684 } |
| OLD | NEW |