2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.cluster.datastore;
11 import com.google.common.base.Preconditions;
12 import com.google.protobuf.GeneratedMessage;
13 import org.opendaylight.controller.cluster.example.protobuff.messages.KeyValueMessages;
14 import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload;
15 import org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages;
16 import org.opendaylight.controller.protobuff.messages.persistent.PersistentMessages;
18 import java.io.Serializable;
19 import java.util.HashMap;
22 public class CompositeModificationPayload extends Payload implements
25 private final PersistentMessages.CompositeModification modification;
27 public CompositeModificationPayload(){
30 public CompositeModificationPayload(Object modification){
31 this.modification = (PersistentMessages.CompositeModification) modification;
34 @Override public Map<GeneratedMessage.GeneratedExtension, PersistentMessages.CompositeModification> encode() {
35 Preconditions.checkState(modification!=null);
36 Map<GeneratedMessage.GeneratedExtension, PersistentMessages.CompositeModification> map = new HashMap<>();
37 map.put(org.opendaylight.controller.mdsal.CompositeModificationPayload.modification, this.modification);
41 @Override public Payload decode(
42 AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload payload) {
43 PersistentMessages.CompositeModification modification = payload
45 org.opendaylight.controller.mdsal.CompositeModificationPayload.modification);
46 payload.getExtension(KeyValueMessages.value);
47 return new CompositeModificationPayload(modification);
50 public Object getModification(){
51 return this.modification;