From ccafbe0c323f999fffe722f4a4c6332cdf67fb41 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 24 Jun 2014 09:35:00 +0200 Subject: [PATCH] BUG-994: Use SchemaPath.getParent() Now that SchemaPath defines the proper utility method, use it instead of brewing our own. Change-Id: If3661c78491ab97e70627dfffcd902a21bd93e83 Signed-off-by: Robert Varga --- .../yang/model/util/SchemaContextUtil.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtil.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtil.java index f05c20614d..b5ddcc37b3 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtil.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtil.java @@ -549,21 +549,17 @@ public final class SchemaContextUtil { // groupings => parent is added by grouping too, so repeat same // process for parent if (result == null) { + final SchemaNode sn = (SchemaNode) parent; + // set current name to name of parent node - currentName = ((SchemaNode) parent).getQName(); + currentName = sn.getQName(); Preconditions.checkArgument(parent instanceof SchemaNode, "Failed to generate code for augmend node {} at parent {}", node, parent); + // create schema path for parent of current parent - SchemaPath nodeSp = ((SchemaNode) parent).getPath(); - List nodeNewNames = new ArrayList<>(nodeSp.getPath()); - nodeNewNames.remove(nodeNewNames.size() - 1); - // set new parent based on path - if (nodeNewNames.isEmpty()) { - parent = getParentModule((SchemaNode) parent, ctx); - } else { - SchemaPath nodeNewSp = new SchemaPath(nodeNewNames, nodeSp.isAbsolute()); - parent = findDataSchemaNode(ctx, nodeNewSp); - } + final SchemaPath parentSp = sn.getPath().getParent(); + parent = parentSp.getPathFromRoot().iterator().hasNext() ? findDataSchemaNode(ctx, parentSp) + : getParentModule(sn, ctx); } else { // if wanted node was found in grouping, traverse this node // based on level of nesting -- 2.36.6