- @Override public Map<GeneratedMessage.GeneratedExtension<?, ?>, PersistentMessages.CompositeModification> encode() {
- Preconditions.checkState(modification!=null);
- Map<GeneratedMessage.GeneratedExtension<?, ?>, PersistentMessages.CompositeModification> map = new HashMap<>();
- map.put(
- org.opendaylight.controller.protobuff.messages.shard.CompositeModificationPayload.modification, this.modification);
- return map;
- }
-
- @Override public Payload decode(
- AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload payload) {
- PersistentMessages.CompositeModification modification = payload
- .getExtension(
- org.opendaylight.controller.protobuff.messages.shard.CompositeModificationPayload.modification);
-
-
-
- // The extension was put in the unknown field.
- // This is because extensions need to be registered
- // see org.opendaylight.controller.mdsal.CompositeModificationPayload.registerAllExtensions
- // also see https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/ExtensionRegistry
- // If that is not done then on the other end the extension shows up as an unknown field
- // Need to figure out a better way to do this
- if(payload.getUnknownFields().hasField(2)){
- UnknownFieldSet.Field field =
- payload.getUnknownFields().getField(2);
-
- try {
- modification =
- PersistentMessages.CompositeModification
- .parseFrom(field.getLengthDelimitedList().get(0));
- } catch (InvalidProtocolBufferException e) {
-
- }
- }
-
- return new CompositeModificationPayload(modification);
- }
-