From 741f82fd1d5f27cc878a27bb4d055c25ae57498e Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 24 Apr 2021 12:01:24 +0200 Subject: [PATCH] Optimize QName.toString() a bit Append simple characters, not strings. Change-Id: I6812f05c3cb3749f3ce9ed72f14238be5b55fe21 Signed-off-by: Robert Varga --- .../org/opendaylight/yangtools/yang/common/QName.java | 10 +++------- .../opendaylight/yangtools/yang/common/QNameTest.java | 6 ++---- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java index d74786b910..2c19fa9f02 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java @@ -74,10 +74,6 @@ public final class QName extends AbstractQName implements Comparable { // Note: 5398411242927766414L is used for versions < 3.0.0 without writeReplace private static final long serialVersionUID = 1L; - static final String QNAME_REVISION_DELIMITER = "?revision="; - static final String QNAME_LEFT_PARENTHESIS = "("; - static final String QNAME_RIGHT_PARENTHESIS = ")"; - @Regex private static final String QNAME_STRING_FULL = "^\\((.+)\\?revision=(.+)\\)(.+)$"; private static final Pattern QNAME_PATTERN_FULL = Pattern.compile(QNAME_STRING_FULL); @@ -322,12 +318,12 @@ public final class QName extends AbstractQName implements Comparable { @Override public @NonNull String toString() { - final StringBuilder sb = new StringBuilder().append(QNAME_LEFT_PARENTHESIS).append(getNamespace()); + final StringBuilder sb = new StringBuilder().append('(').append(getNamespace()); final Optional rev = getRevision(); if (rev.isPresent()) { - sb.append(QNAME_REVISION_DELIMITER).append(rev.get()); + sb.append("?revision=").append(rev.get()); } - return sb.append(QNAME_RIGHT_PARENTHESIS).append(getLocalName()).toString(); + return sb.append(')').append(getLocalName()).toString(); } @Override diff --git a/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java b/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java index 05eace2556..90a8e45f39 100644 --- a/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java +++ b/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java @@ -23,8 +23,7 @@ public class QNameTest { @Test public void testStringSerialization() throws Exception { QName qname = QName.create(NAMESPACE, REVISION, LOCALNAME); - assertEquals(QName.QNAME_LEFT_PARENTHESIS + NAMESPACE + QName.QNAME_REVISION_DELIMITER + REVISION - + QName.QNAME_RIGHT_PARENTHESIS + LOCALNAME, qname.toString()); + assertEquals("(urn:foo?revision=2013-12-24)bar", qname.toString()); assertEquals(qname, QName.create(qname.toString())); } @@ -32,8 +31,7 @@ public class QNameTest { public void testStringSerializationNoRevision() throws Exception { // no revision QName qname = QName.create(NS, LOCALNAME); - assertEquals(QName.QNAME_LEFT_PARENTHESIS + NAMESPACE + QName.QNAME_RIGHT_PARENTHESIS + LOCALNAME, - qname.toString()); + assertEquals("(urn:foo)bar", qname.toString()); assertEquals(qname, QName.create(qname.toString())); } -- 2.36.6