Optimize QName.toString() a bit 07/95907/2
authorRobert Varga <robert.varga@pantheon.tech>
Sat, 24 Apr 2021 10:01:24 +0000 (12:01 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 24 Apr 2021 18:52:01 +0000 (20:52 +0200)
Append simple characters, not strings.

Change-Id: I6812f05c3cb3749f3ce9ed72f14238be5b55fe21
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java
yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java

index d74786b910fabc6ad8efa51eabb6b9381928731d..2c19fa9f0295263ad9a6f85f7eed1a7c7ce47e80 100644 (file)
@@ -74,10 +74,6 @@ public final class QName extends AbstractQName implements Comparable<QName> {
     // 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<QName> {
 
     @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<Revision> 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
index 05eace25568f7b42ce7b155ae66a050c5e520396..90a8e45f39082e5cde0006a4b1c82eb2ffc27bf7 100644 (file)
@@ -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()));
     }