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%2FCaseEnforcer.java;h=87a7f786f27905b84b5b2bc0f32f0401c5bf6937;hb=5500c3ce51088ed6de1adedd35f52662a8304b1e;hp=62a5f837dddd1d4bbdba7d51c987cd90c46d3b98;hpb=0f2fbdce65031716667d54c77804a992c8f4080f;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/CaseEnforcer.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/CaseEnforcer.java index 62a5f837dd..87a7f786f2 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/CaseEnforcer.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/CaseEnforcer.java @@ -15,29 +15,33 @@ import java.util.Map.Entry; import java.util.Set; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +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.model.api.ChoiceCaseNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; final class CaseEnforcer implements Immutable { private final Map children; + private final MandatoryLeafEnforcer enforcer; - private CaseEnforcer(final Map children) { + private CaseEnforcer(final Map children, final MandatoryLeafEnforcer enforcer) { this.children = Preconditions.checkNotNull(children); + this.enforcer = Preconditions.checkNotNull(enforcer); } - static CaseEnforcer forTree(final ChoiceCaseNode schema, final TreeType treeType) { + static CaseEnforcer forTree(final ChoiceCaseNode schema, final TreeType type) { final Builder builder = ImmutableMap.builder(); - if (SchemaAwareApplyOperation.belongsToTree(treeType, schema)) { + if (SchemaAwareApplyOperation.belongsToTree(type, schema)) { for (DataSchemaNode child : schema.getChildNodes()) { - if (SchemaAwareApplyOperation.belongsToTree(treeType, child)) { + if (SchemaAwareApplyOperation.belongsToTree(type, child)) { builder.put(NodeIdentifier.create(child.getQName()), child); } } } final Map children = builder.build(); - return children.isEmpty() ? null : new CaseEnforcer(children); + return children.isEmpty() ? null : new CaseEnforcer(children, MandatoryLeafEnforcer.forContainer(schema, type)); } Set> getChildEntries() { @@ -47,4 +51,12 @@ final class CaseEnforcer implements Immutable { Set getChildIdentifiers() { return children.keySet(); } + + void enforceOnTreeNode(final TreeNode tree) { + enforcer.enforceOnTreeNode(tree); + } + + void enforceOnTreeNode(final NormalizedNode normalizedNode) { + enforcer.enforceOnTreeNode(normalizedNode); + } }