X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=data%2Fyang-data-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Futil%2FDataContainerContextNode.java;h=5059deae83d794ade47c55db8027caaec7bddafb;hb=refs%2Fchanges%2F26%2F100226%2F7;hp=96869c1b8d7a8cd623e3ee32e51e301b3d35928b;hpb=33c637e8cca6b731c2a75af4a2698f750d1e9b03;p=yangtools.git diff --git a/data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/DataContainerContextNode.java b/data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/DataContainerContextNode.java index 96869c1b8d..5059deae83 100644 --- a/data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/DataContainerContextNode.java +++ b/data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/DataContainerContextNode.java @@ -11,11 +11,14 @@ import static java.util.Objects.requireNonNull; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; +import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack; abstract class DataContainerContextNode extends AbstractInteriorContextNode { private final ConcurrentMap> byArg = new ConcurrentHashMap<>(); @@ -47,6 +50,25 @@ abstract class DataContainerContextNode extends Abstract return register(potential); } + @Override + protected final DataSchemaContextNode enterChild(final QName child, final SchemaInferenceStack stack) { + return pushToStack(getChild(child), stack); + } + + + @Override + protected final DataSchemaContextNode enterChild(final PathArgument child, final SchemaInferenceStack stack) { + return pushToStack(getChild(child), stack); + } + + private static @Nullable DataSchemaContextNode pushToStack(final @Nullable DataSchemaContextNode child, + final @NonNull SchemaInferenceStack stack) { + if (child != null) { + child.pushToStack(stack); + } + return child; + } + private DataSchemaContextNode fromLocalSchema(final PathArgument child) { if (child instanceof AugmentationIdentifier) { return fromSchemaAndQNameChecked(container, ((AugmentationIdentifier) child).getPossibleChildNames() @@ -55,8 +77,8 @@ abstract class DataContainerContextNode extends Abstract return fromSchemaAndQNameChecked(container, child.getNodeType()); } - protected DataSchemaContextNode fromLocalSchemaAndQName(final DataNodeContainer schema2, final QName child) { - return fromSchemaAndQNameChecked(schema2, child); + protected DataSchemaContextNode fromLocalSchemaAndQName(final DataNodeContainer schema, final QName child) { + return fromSchemaAndQNameChecked(schema, child); } private DataSchemaContextNode register(final DataSchemaContextNode potential) { @@ -69,5 +91,4 @@ abstract class DataContainerContextNode extends Abstract } return potential; } - }