From 5d7c036b41a4b63ee510e834aca135c9ca183625 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 6 Dec 2020 14:05:18 +0100 Subject: [PATCH] Add DataNodeContainer.dataChildByName() This is a non-deprecated equivalent of getDataChildByName(), allowing easy migration of nullable users. JIRA: YANGTOOLS-1183` Change-Id: Iaf2336fdbfb6533fe759ea4a359b7458e20c79fe Signed-off-by: Robert Varga (cherry picked from commit 7574750a4555d7cb0bcd127b5e5e43a9aecb7d00) --- .../yang/model/api/DataNodeContainer.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/DataNodeContainer.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/DataNodeContainer.java index 658d408293..748d004895 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/DataNodeContainer.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/DataNodeContainer.java @@ -60,14 +60,31 @@ public interface DataNodeContainer { * * @param name QName of child * @return child node of this DataNodeContainer if child with given name is present, null otherwise - * @deprecated Use {@link #findDataChildByName(QName)} instead. * @throws NullPointerException if {@code name} is null */ - @Deprecated - default @Nullable DataSchemaNode getDataChildByName(final QName name) { + default @Nullable DataSchemaNode dataChildByName(final QName name) { return findDataChildByName(name).orElse(null); } + /** + * Returns the child node corresponding to the specified name. + * + *

+ * Note that the nodes searched are NOT {@code data nodes}, but rather {@link DataSchemaNode}s, + * hence {@link ChoiceSchemaNode} and {@link CaseSchemaNode} are returned instead of their matching children. This + * is consistent with {@code schema tree}. + * + * @param name QName of child + * @return child node of this DataNodeContainer if child with given name is present, null otherwise + * @deprecated Use {@link #dataChildByName(QName)} or {@link #findDataChildByName(QName)} instead. This method will + * be repurposed to assert existence in the next major release. + * @throws NullPointerException if {@code name} is null + */ + @Deprecated(forRemoval = true) + default @Nullable DataSchemaNode getDataChildByName(final QName name) { + return dataChildByName(name); + } + /** * Returns the child node corresponding to the specified name. * -- 2.36.6