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<T extends PathArgument> extends AbstractInteriorContextNode<T> {
private final ConcurrentMap<PathArgument, DataSchemaContextNode<?>> byArg = new ConcurrentHashMap<>();
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()
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) {
}
return potential;
}
-
}