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%2FAugmentationModificationStrategy.java;h=4e51ce3529540964b84ad83190cf922d34fe086b;hb=99bb34694d35803da6cc1ccbe112d3efa5b4e2fd;hp=0823e639c1717041ce4d26c9fef8c4848857edfb;hpb=c97a499d672a282b1ba50de66147f4958626cc9f;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AugmentationModificationStrategy.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AugmentationModificationStrategy.java index 0823e639c1..4e51ce3529 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AugmentationModificationStrategy.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AugmentationModificationStrategy.java @@ -7,17 +7,13 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema.tree; -import static com.google.common.base.Preconditions.checkArgument; - import java.util.Optional; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; 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.Builders; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableAugmentationNodeBuilder; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode; import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; @@ -25,12 +21,16 @@ import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.util.EffectiveAugmentationSchema; final class AugmentationModificationStrategy - extends AbstractDataNodeContainerModificationStrategy { + extends DataNodeContainerModificationStrategy { + private static final NormalizedNodeContainerSupport SUPPORT = + new NormalizedNodeContainerSupport<>(AugmentationNode.class, ImmutableAugmentationNodeBuilder::create, + ImmutableAugmentationNodeBuilder::create); + private final AugmentationNode emptyNode; AugmentationModificationStrategy(final AugmentationSchemaNode schema, final DataNodeContainer resolved, final DataTreeConfiguration treeConfig) { - super(EffectiveAugmentationSchema.create(schema, resolved), AugmentationNode.class, treeConfig); + super(SUPPORT, EffectiveAugmentationSchema.create(schema, resolved), treeConfig); emptyNode = Builders.augmentationBuilder() .withNodeIdentifier(DataSchemaContextNode.augmentationIdentifierFrom(schema)) .build(); @@ -44,23 +44,7 @@ final class AugmentationModificationStrategy } @Override - void checkApplicable(final ModificationPath path, final NodeModification modification, - final Optional current, final Version version) throws DataValidationFailedException { - AutomaticLifecycleMixin.checkApplicable(super::checkApplicable, emptyNode, path, modification, current, - version); - } - - @Override - @SuppressWarnings("rawtypes") - protected DataContainerNodeBuilder createBuilder(final NormalizedNode original) { - checkArgument(original instanceof AugmentationNode); - return ImmutableAugmentationNodeBuilder.create((AugmentationNode) original); - } - - @Override - protected NormalizedNode createEmptyValue(final NormalizedNode original) { - checkArgument(original instanceof AugmentationNode); - return ImmutableAugmentationNodeBuilder.create() - .withNodeIdentifier(((AugmentationNode) original).getIdentifier()).build(); + TreeNode defaultTreeNode() { + return defaultTreeNode(emptyNode); } }