*/
package org.opendaylight.mdsal.binding.dom.adapter;
+import static java.util.Objects.requireNonNull;
+import static org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType.UNMODIFIED;
+
import com.google.common.base.MoreObjects;
-import com.google.common.base.Preconditions;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
private volatile ModificationType modificationType;
private LazyDataObjectModification(final BindingCodecTreeNode<T> codec, final DataTreeCandidateNode domData) {
- this.codec = Preconditions.checkNotNull(codec);
- this.domData = Preconditions.checkNotNull(domData);
+ this.codec = requireNonNull(codec);
+ this.domData = requireNonNull(domData);
this.identifier = codec.deserializePathArgument(domData.getIdentifier());
}
static <T extends DataObject> LazyDataObjectModification<T> create(final BindingCodecTreeNode<T> codec,
final DataTreeCandidateNode domData) {
- return new LazyDataObjectModification<>(codec,domData);
+ return new LazyDataObjectModification<>(codec, domData);
}
private static Collection<LazyDataObjectModification<? extends DataObject>> from(final BindingCodecTreeNode<?>
private static void populateList(final List<LazyDataObjectModification<? extends DataObject>> result,
final BindingCodecTreeNode<?> parentCodec, final Collection<DataTreeCandidateNode> domChildNodes) {
for (final DataTreeCandidateNode domChildNode : domChildNodes) {
- final BindingStructuralType type = BindingStructuralType.from(domChildNode);
- if (type != BindingStructuralType.NOT_ADDRESSABLE) {
- /*
- * Even if type is UNKNOWN, from perspective of BindingStructuralType
- * we try to load codec for it. We will use that type to further specify
- * debug log.
- */
- try {
- final BindingCodecTreeNode<?> childCodec =
- parentCodec.yangPathArgumentChild(domChildNode.getIdentifier());
- populateList(result,type, childCodec, domChildNode);
- } catch (final IllegalArgumentException e) {
- if (type == BindingStructuralType.UNKNOWN) {
- LOG.debug("Unable to deserialize unknown DOM node {}",domChildNode,e);
- } else {
- LOG.debug("Binding representation for DOM node {} was not found",domChildNode,e);
+ if (domChildNode.getModificationType() != UNMODIFIED) {
+ final BindingStructuralType type = BindingStructuralType.from(domChildNode);
+ if (type != BindingStructuralType.NOT_ADDRESSABLE) {
+ /*
+ * Even if type is UNKNOWN, from perspective of BindingStructuralType
+ * we try to load codec for it. We will use that type to further specify
+ * debug log.
+ */
+ try {
+ final BindingCodecTreeNode<?> childCodec =
+ parentCodec.yangPathArgumentChild(domChildNode.getIdentifier());
+ populateList(result, type, childCodec, domChildNode);
+ } catch (final IllegalArgumentException e) {
+ if (type == BindingStructuralType.UNKNOWN) {
+ LOG.debug("Unable to deserialize unknown DOM node {}", domChildNode, e);
+ } else {
+ LOG.debug("Binding representation for DOM node {} was not found", domChildNode, e);
+ }
}
}
}
private static void populateListWithSingleCodec(final List<LazyDataObjectModification<? extends DataObject>> result,
final BindingCodecTreeNode<?> codec, final Collection<DataTreeCandidateNode> childNodes) {
for (final DataTreeCandidateNode child : childNodes) {
- result.add(create(codec, child));
+ if (child.getModificationType() != UNMODIFIED) {
+ result.add(create(codec, child));
+ }
}
}
while (toEnter.hasNext() && current != null) {
current = current.getModifiedChild(toEnter.next());
}
- if (current != null) {
- return create(childCodec, current);
- }
- return null;
+ return current != null && current.getModificationType() != UNMODIFIED ? create(childCodec, current) : null;
}
@Override