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=a7556744f4682cba8c954376f47d17304d9c4df2;hb=ccca30bbb1545643c427fc59c23329c5d49f8d4b;hp=79e3b149617bfd4a2ecebb7c245a949435ecaf00;hpb=b12758e87e3da8b71b574614f8829e5fcbce11e8;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 79e3b14961..a7556744f4 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 @@ -5,10 +5,11 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.cluster.datastore.modification; -import com.google.common.base.Preconditions; +import static com.google.common.base.Preconditions.checkArgument; +import static java.util.Objects.requireNonNull; + import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; @@ -17,11 +18,12 @@ 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.NormalizedNodeDataInput; -import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeDataOutput; -import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputOutput; import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; +import org.opendaylight.yangtools.yang.data.api.schema.stream.ReusableStreamReceiver; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; +import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput; +import org.opendaylight.yangtools.yang.data.impl.schema.ReusableImmutableNormalizedNodeStreamWriter; /** * MutableCompositeModification is just a mutable version of a CompositeModification. @@ -65,8 +67,7 @@ public class MutableCompositeModification extends VersionedExternalizableMessage * @param modification the modification to add. */ public void addModification(final Modification modification) { - Preconditions.checkNotNull(modification); - modifications.add(modification); + modifications.add(requireNonNull(modification)); } public void addModifications(final Iterable newMods) { @@ -90,16 +91,18 @@ public class MutableCompositeModification extends VersionedExternalizableMessage int size = in.readInt(); if (size > 0) { - final NormalizedNodeDataInput input = NormalizedNodeInputOutput.newDataInputWithoutValidation(in); + final NormalizedNodeDataInput input = NormalizedNodeDataInput.newDataInputWithoutValidation(in); + final ReusableStreamReceiver receiver = ReusableImmutableNormalizedNodeStreamWriter.create(); + for (int i = 0; i < size; i++) { byte type = in.readByte(); switch (type) { case Modification.WRITE: - modifications.add(WriteModification.fromStream(input, getVersion())); + modifications.add(WriteModification.fromStream(input, getVersion(), receiver)); break; case Modification.MERGE: - modifications.add(MergeModification.fromStream(input, getVersion())); + modifications.add(MergeModification.fromStream(input, getVersion(), receiver)); break; case Modification.DELETE: @@ -119,7 +122,7 @@ public class MutableCompositeModification extends VersionedExternalizableMessage final int size = modifications.size(); out.writeInt(size); if (size > 0) { - try (NormalizedNodeDataOutput stream = NormalizedNodeInputOutput.newDataOutput(out)) { + try (NormalizedNodeDataOutput stream = getStreamVersion().newDataOutput(out)) { for (Modification mod : modifications) { out.writeByte(mod.getType()); mod.writeTo(stream); @@ -129,7 +132,7 @@ public class MutableCompositeModification extends VersionedExternalizableMessage } public static MutableCompositeModification fromSerializable(final Object serializable) { - Preconditions.checkArgument(serializable instanceof MutableCompositeModification); + checkArgument(serializable instanceof MutableCompositeModification); return (MutableCompositeModification)serializable; }