X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=data%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fschema%2Ftree%2FMapEntryModificationStrategy.java;fp=data%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fschema%2Ftree%2FMapEntryModificationStrategy.java;h=0000000000000000000000000000000000000000;hb=9d19eece0115e5666f1c23abadbbf560bb70096e;hp=37719965847a95e9309f65a8f9e508106b74e64c;hpb=b2f005eb9fc5efb892d824e367b54cc23c7903cb;p=yangtools.git diff --git a/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapEntryModificationStrategy.java b/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapEntryModificationStrategy.java deleted file mode 100644 index 3771996584..0000000000 --- a/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapEntryModificationStrategy.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * 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.yangtools.yang.data.impl.schema.tree; - -import static java.util.Objects.requireNonNull; - -import java.util.Optional; -import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; -import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder; -import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode; -import org.opendaylight.yangtools.yang.data.spi.tree.Version; -import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; - -class MapEntryModificationStrategy extends DataNodeContainerModificationStrategy { - private static final class EnforcingMandatory extends MapEntryModificationStrategy { - private final MandatoryLeafEnforcer enforcer; - - EnforcingMandatory(final ListSchemaNode schemaNode, final DataTreeConfiguration treeConfig, - final MandatoryLeafEnforcer enforcer) { - super(schemaNode, treeConfig); - this.enforcer = requireNonNull(enforcer); - } - - @Override - void mandatoryVerifyValueChildren(final NormalizedNode writtenValue) { - enforcer.enforceOnData(writtenValue); - } - - @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 NormalizedNode newValue, - final Optional currentMeta, final Version version) { - final TreeNode ret = super.applyWrite(modification, newValue, 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; - } - } - - private static final NormalizedNodeContainerSupport SUPPORT = - new NormalizedNodeContainerSupport<>(MapEntryNode.class, ImmutableMapEntryNodeBuilder::create, - ImmutableMapEntryNodeBuilder::create); - - MapEntryModificationStrategy(final ListSchemaNode schema, final DataTreeConfiguration treeConfig) { - super(SUPPORT, schema, treeConfig); - } - - static @NonNull MapEntryModificationStrategy of(final ListSchemaNode schema, - final DataTreeConfiguration treeConfig) { - final Optional enforcer = MandatoryLeafEnforcer.forContainer(schema, treeConfig); - return enforcer.isPresent() ? new EnforcingMandatory(schema, treeConfig, enforcer.get()) - : new MapEntryModificationStrategy(schema, treeConfig); - } -}