X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fschema%2Ftree%2FListEntryModificationStrategy.java;h=30b17b1c0e4aa76eebbaa6c9d16bb3b23ead3fde;hb=5500c3ce51088ed6de1adedd35f52662a8304b1e;hp=71f23f0715450ac29c559accb558c7cf306960f6;hpb=0f2fbdce65031716667d54c77804a992c8f4080f;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ListEntryModificationStrategy.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ListEntryModificationStrategy.java index 71f23f0715..30b17b1c0e 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ListEntryModificationStrategy.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ListEntryModificationStrategy.java @@ -8,16 +8,44 @@ package org.opendaylight.yangtools.yang.data.impl.schema.tree; import static com.google.common.base.Preconditions.checkArgument; +import com.google.common.base.Optional; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType; +import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.TreeNode; +import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.Version; import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; final class ListEntryModificationStrategy extends AbstractDataNodeContainerModificationStrategy { + private final MandatoryLeafEnforcer enforcer; + ListEntryModificationStrategy(final ListSchemaNode schema, final TreeType treeType) { super(schema, MapEntryNode.class, treeType); + enforcer = MandatoryLeafEnforcer.forContainer(schema, treeType); + } + + @Override + protected TreeNode applyMerge(final ModifiedNode modification, final TreeNode currentMeta, final Version version) { + final TreeNode ret = super.applyMerge(modification, currentMeta, version); + enforcer.enforceOnTreeNode(ret); + return ret; + } + + @Override + protected TreeNode applyWrite(final ModifiedNode modification, final Optional currentMeta, + final Version version) { + final TreeNode ret = super.applyWrite(modification, currentMeta, version); + enforcer.enforceOnTreeNode(ret); + return ret; + } + + @Override + protected TreeNode applyTouch(final ModifiedNode modification, final TreeNode currentMeta, final Version version) { + final TreeNode ret = super.applyTouch(modification, currentMeta, version); + enforcer.enforceOnTreeNode(ret); + return ret; } @Override