From 61c2aa507555b077a08c06679f39706f7cf08ac9 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 10 Sep 2018 11:43:07 +0200 Subject: [PATCH 1/1] Minor code cleanups - static private method - reduce use of ChoiceSchemaNode.getCaseNodeByName() - QNameWithPredicateBuilder(QName) Change-Id: I9cf97ba4c6ef667e39212f511e17bb18b4002bc3 Signed-off-by: Robert Varga (cherry picked from commit ef795628f150556ddc8c93b865d1c3c0b9b0109c) --- .../LeafRefPathParserListenerImpl.java | 2 +- .../yang/data/impl/leafref/LeafRefUtils.java | 37 +++++-------------- .../leafref/QNameWithPredicateBuilder.java | 5 +++ .../yang/data/impl/schema/SchemaUtils.java | 2 +- .../yang/data/util/LeafInterner.java | 6 +-- 5 files changed, 20 insertions(+), 32 deletions(-) diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefPathParserListenerImpl.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefPathParserListenerImpl.java index 5356a59609..078abd2067 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefPathParserListenerImpl.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefPathParserListenerImpl.java @@ -179,7 +179,7 @@ final class LeafRefPathParserListenerImpl extends LeafRefPathParserBaseListener return schemaContext.findModule(moduleName, revision).map(Module::getQNameModule); } - private ModuleImport getModuleImport(final Module targetModule, final String prefix) { + private static ModuleImport getModuleImport(final Module targetModule, final String prefix) { return targetModule.getImports().stream() .filter(imp -> prefix.equals(imp.getPrefix())).findFirst().orElse(null); } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefUtils.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefUtils.java index 3f7e41c0d0..1248d253ec 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefUtils.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefUtils.java @@ -36,7 +36,6 @@ public final class LeafRefUtils { public static LeafRefPath createAbsoluteLeafRefPath( final LeafRefPath leafRefPath, final SchemaPath contextNodeSchemaPath, final Module module) { - if (leafRefPath.isAbsolute()) { return leafRefPath; } @@ -57,50 +56,34 @@ public final class LeafRefUtils { return LeafRefPath.create(absoluteLeafRefTargetPathList, true); } - private static Deque schemaPathToXPathQNames( - final SchemaPath nodePath, final Module module) { - + private static Deque schemaPathToXPathQNames(final SchemaPath nodePath, final Module module) { final Deque xpath = new LinkedList<>(); - - final Iterator nodePathIterator = nodePath.getPathFromRoot() - .iterator(); + final Iterator nodePathIterator = nodePath.getPathFromRoot().iterator(); DataNodeContainer currenDataNodeContainer = module; while (nodePathIterator.hasNext()) { final QName qname = nodePathIterator.next(); - final DataSchemaNode child = currenDataNodeContainer - .getDataChildByName(qname); + final DataSchemaNode child = currenDataNodeContainer.getDataChildByName(qname); if (child instanceof DataNodeContainer) { if (!(child instanceof CaseSchemaNode)) { - final QNameWithPredicate newQName = new QNameWithPredicateBuilder( - qname.getModule(), qname.getLocalName()).build(); - xpath.add(newQName); + xpath.add(new QNameWithPredicateBuilder(qname).build()); } currenDataNodeContainer = (DataNodeContainer) child; } else if (child instanceof ChoiceSchemaNode) { if (nodePathIterator.hasNext()) { - currenDataNodeContainer = ((ChoiceSchemaNode) child) - .getCaseNodeByName(nodePathIterator.next()); + currenDataNodeContainer = ((ChoiceSchemaNode) child).getCases().get(nodePathIterator.next()); } else { break; } - } else if (child instanceof LeafSchemaNode - || child instanceof LeafListSchemaNode) { - - final QNameWithPredicate newQName = new QNameWithPredicateBuilder( - qname.getModule(), qname.getLocalName()).build(); - xpath.add(newQName); + } else if (child instanceof LeafSchemaNode || child instanceof LeafListSchemaNode) { + xpath.add(new QNameWithPredicateBuilder(qname).build()); break; - } else if (child == null) { - throw new IllegalArgumentException("No child " + qname - + " found in node container " + currenDataNodeContainer - + " in module " + module.getName()); + throw new IllegalArgumentException("No child " + qname + " found in node container " + + currenDataNodeContainer + " in module " + module.getName()); } else { - throw new IllegalStateException( - "Illegal schema node type in the path: " - + child.getClass()); + throw new IllegalStateException("Illegal schema node type in the path: " + child.getClass()); } } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/QNameWithPredicateBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/QNameWithPredicateBuilder.java index 5bc260d761..638dcff52f 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/QNameWithPredicateBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/QNameWithPredicateBuilder.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; import org.opendaylight.yangtools.concepts.Builder; +import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; class QNameWithPredicateBuilder implements Builder { @@ -26,6 +27,10 @@ class QNameWithPredicateBuilder implements Builder { } }; + QNameWithPredicateBuilder(final QName qname) { + this(qname.getModule(), qname.getLocalName()); + } + QNameWithPredicateBuilder(final QNameModule moduleQname, final String localName) { this.moduleQname = moduleQname; this.localName = localName; diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/SchemaUtils.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/SchemaUtils.java index 6bd8c4e707..f0afe4263f 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/SchemaUtils.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/SchemaUtils.java @@ -461,7 +461,7 @@ public final class SchemaUtils { return child; } if (node instanceof ChoiceSchemaNode) { - return ((ChoiceSchemaNode) node).getCaseNodeByName(qname); + return ((ChoiceSchemaNode) node).getCases().get(qname); } if (node instanceof OperationDefinition) { switch (qname.getLocalName()) { diff --git a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/LeafInterner.java b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/LeafInterner.java index 85a47bdbd7..bb5eea153d 100644 --- a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/LeafInterner.java +++ b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/LeafInterner.java @@ -51,10 +51,10 @@ public final class LeafInterner { final T ret = (T) INTERNER.intern(sample); LOG.trace("Interned object {} to {}", sample, ret); return ret; - } else { - // Non-empty attributes, do not intern - return sample; } + + // Non-empty attributes, do not intern + return sample; } /** -- 2.36.6