-
- @Override
- public Map<GeneratedMessage.GeneratedExtension, PersistentMessages.CompositeModification> encode() {
- Preconditions.checkState(byteString!=null);
- Map<GeneratedMessage.GeneratedExtension, PersistentMessages.CompositeModification> map = new HashMap<>();
- map.put(org.opendaylight.controller.protobuff.messages.shard.CompositeModificationPayload.modification,
- getModificationInternal());
- 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);
-
- return new CompositeModificationByteStringPayload(field.getLengthDelimitedList().get(0));
- }
-
- return new CompositeModificationByteStringPayload(modification);
- }
-