X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fmodification%2FModification.java;h=eddfba2ce1ac4d173eb5fa4a8af4f9dc4f432e4e;hp=ed9b1fe3b9548f9b529b4e1e9ce6929e41fcda11;hb=b12758e87e3da8b71b574614f8829e5fcbce11e8;hpb=fe4049d34de103016d11f3a9050853c6380646d3 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/Modification.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/Modification.java index ed9b1fe3b9..eddfba2ce1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/Modification.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/Modification.java @@ -8,27 +8,58 @@ package org.opendaylight.controller.cluster.datastore.modification; -import org.opendaylight.controller.cluster.datastore.messages.SerializableMessage; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreWriteTransaction; +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeDataOutput; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; +import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; /** * Represents a modification to the data store. + * *

* Simple modifications can be of type, + *

* *

- * Modifications can in turn be lumped into a single {@link org.opendaylight.controller.cluster.datastore.modification.CompositeModification} - * which can then be applied to a write transaction - *

+ * Modifications can in turn be lumped into a single + * {@link org.opendaylight.controller.cluster.datastore.modification.CompositeModification} + * which can then be applied to a write transaction. */ -public interface Modification extends SerializableMessage { - /** - * Apply the modification to the specified transaction - * @param transaction - */ - void apply(DOMStoreWriteTransaction transaction); +public interface Modification extends Externalizable { + + byte COMPOSITE = 1; + byte WRITE = 2; + byte MERGE = 3; + byte DELETE = 4; + + /** + * Apply the modification to the specified transaction. + * + * @param transaction the transaction + */ + void apply(DOMStoreWriteTransaction transaction); + + /** + * Apply the modification to the specified transaction. + * + * @param transaction the transaction + */ + void apply(DataTreeModification transaction); + + byte getType(); + + @Override + void writeExternal(ObjectOutput out) throws IOException; + + @Override + void readExternal(ObjectInput in) throws IOException, ClassNotFoundException; + + void writeTo(NormalizedNodeDataOutput out) throws IOException; }