X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fmodification%2FMutableCompositeModification.java;h=485bb42a94c5d0fc1bf70e66b58ce8f3444d51b5;hb=af84734ff224e68368522a4cfbd2c2bbbbc48aba;hp=163e23d2d158b3028be3af5df661a37a64bd3e4d;hpb=925cb4a228d0fda99c7bfeb432eb25285a223887;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModification.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModification.java index 163e23d2d1..485bb42a94 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModification.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModification.java @@ -13,13 +13,13 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; import org.opendaylight.controller.cluster.datastore.messages.VersionedExternalizableMessage; import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputOutput; -import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputStreamReader; -import org.opendaylight.controller.cluster.datastore.utils.SerializationUtils; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreWriteTransaction; +import org.opendaylight.controller.cluster.datastore.node.utils.stream.SerializationUtils; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; /** @@ -29,6 +29,7 @@ public class MutableCompositeModification extends VersionedExternalizableMessage private static final long serialVersionUID = 1L; private final List modifications = new ArrayList<>(); + private List immutableModifications = null; public MutableCompositeModification() { this(DataStoreVersions.CURRENT_VERSION); @@ -63,12 +64,23 @@ public class MutableCompositeModification extends VersionedExternalizableMessage * @param modification the modification to add. */ public void addModification(Modification modification) { + Preconditions.checkNotNull(modification); modifications.add(modification); } + public void addModifications(Iterable newMods) { + for (Modification mod : newMods) { + addModification(mod); + } + } + @Override public List getModifications() { - return modifications; + if (immutableModifications == null) { + immutableModifications = Collections.unmodifiableList(modifications); + } + + return immutableModifications; } @Override @@ -78,7 +90,7 @@ public class MutableCompositeModification extends VersionedExternalizableMessage int size = in.readInt(); if (size > 1) { - SerializationUtils.REUSABLE_READER_TL.set(new NormalizedNodeInputStreamReader(in)); + SerializationUtils.REUSABLE_READER_TL.set(NormalizedNodeInputOutput.newDataInputWithoutValidation(in)); } try {