From: Robert Varga Date: Wed, 7 Oct 2020 00:09:52 +0000 (+0200) Subject: Promote Absolute.{last,first}NodeIdentifier X-Git-Tag: v6.0.0~4 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=yangtools.git;a=commitdiff_plain;h=62b5d6e245fc399524b12d58c034227e6ef8e0bb Promote Absolute.{last,first}NodeIdentifier SchemaNodeIdentifier.Descendant has to have at least one element just as Absolute. Promote utility methods to allow users pick them. Change-Id: I428213da7db699ea50a5e67b25feee21553c99f3 Signed-off-by: Robert Varga --- diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaNodeIdentifier.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaNodeIdentifier.java index 0801729c51..dd4c0cb624 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaNodeIdentifier.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaNodeIdentifier.java @@ -86,22 +86,6 @@ public abstract class SchemaNodeIdentifier implements Immutable { return INTERNER.intern(this); } - /** - * Return the first node identifier. This method is equivalent to {@code getNodeIdentifiers().get(0)}, but is - * potentially more efficient. - * - * @return The first node identifier - */ - public abstract @NonNull QName firstNodeIdentifier(); - - /** - * Return the last node identifier. This method is equivalent to {@code getNodeIdentifiers().get(size - 1)}, but - * is potentially more efficient. - * - * @return The last node identifier - */ - public abstract @NonNull QName lastNodeIdentifier(); - @Override final SchemaPath implicitSchemaPathParent() { return SchemaPath.ROOT; @@ -208,16 +192,6 @@ public abstract class SchemaNodeIdentifier implements Immutable { return qnames; } - @Override - public @NonNull QName firstNodeIdentifier() { - return qnames.get(0); - } - - @Override - public @NonNull QName lastNodeIdentifier() { - return qnames.get(qnames.size() - 1); - } - @Override Object pathObject() { return qnames; @@ -236,6 +210,16 @@ public abstract class SchemaNodeIdentifier implements Immutable { return ImmutableList.of(qname); } + @Override + public QName firstNodeIdentifier() { + return qname; + } + + @Override + public QName lastNodeIdentifier() { + return qname; + } + @Override Object pathObject() { return qname; @@ -279,6 +263,27 @@ public abstract class SchemaNodeIdentifier implements Immutable { */ public abstract @NonNull List getNodeIdentifiers(); + /** + * Return the first node identifier. This method is equivalent to {@code getNodeIdentifiers().get(0)}, but is + * potentially more efficient. + * + * @return The first node identifier + */ + public @NonNull QName firstNodeIdentifier() { + return getNodeIdentifiers().get(0); + } + + /** + * Return the last node identifier. This method is equivalent to {@code getNodeIdentifiers().get(size - 1)}, but + * is potentially more efficient. + * + * @return The last node identifier + */ + public @NonNull QName lastNodeIdentifier() { + final List local = getNodeIdentifiers(); + return local.get(local.size() - 1); + } + /** * Create the {@link SchemaPath} equivalent of this identifier. *