diff --git a/src/main/java/com/github/packageurl/PackageURLBuilder.java b/src/main/java/com/github/packageurl/PackageURLBuilder.java index 94fcd05..81cd525 100644 --- a/src/main/java/com/github/packageurl/PackageURLBuilder.java +++ b/src/main/java/com/github/packageurl/PackageURLBuilder.java @@ -21,6 +21,8 @@ */ package com.github.packageurl; +import java.util.Collections; +import java.util.Map; import java.util.TreeMap; /** @@ -132,7 +134,9 @@ public PackageURLBuilder withQualifier(final String key, final String value) { public PackageURLBuilder withoutQualifier(final String key) { if (qualifiers != null) { qualifiers.remove(key); - if (qualifiers.isEmpty()) { qualifiers = null; } + if (qualifiers.isEmpty()) { + qualifiers = null; + } } return this; } @@ -191,9 +195,11 @@ public String getSubpath() { * An empty map is returned if no qualifiers is set. * @return all qualifiers set in this builder, or an empty map if none are set. */ - public TreeMap getQualifiers() { - if (qualifiers == null) { return new TreeMap<>(); } - return new TreeMap<>(qualifiers); + public Map getQualifiers() { + if (qualifiers == null) { + return null; + } + return Collections.unmodifiableMap(qualifiers); } /** @@ -202,7 +208,9 @@ public TreeMap getQualifiers() { * @return qualifier value or {@code null} if one is not set. */ public String getQualifier(String key) { - if (qualifiers == null) { return null; } + if (qualifiers == null) { + return null; + } return qualifiers.get(key); } diff --git a/src/test/java/com/github/packageurl/PackageURLBuilderTest.java b/src/test/java/com/github/packageurl/PackageURLBuilderTest.java index b52d735..ba4dbd1 100644 --- a/src/test/java/com/github/packageurl/PackageURLBuilderTest.java +++ b/src/test/java/com/github/packageurl/PackageURLBuilderTest.java @@ -205,15 +205,13 @@ private void assertBuilderMatch(PackageURL expected, PackageURLBuilder actual) t Map eQualifiers = expected.getQualifiers(); Map aQualifiers = actual.getQualifiers(); - if (eQualifiers != null) { - eQualifiers.forEach((k,v)-> { - Assert.assertEquals(v, aQualifiers.remove(k)); + assertEquals(eQualifiers, aQualifiers); + + if (eQualifiers != null && aQualifiers != null) { + eQualifiers.forEach((k,v) -> { Assert.assertEquals(v, actual.getQualifier(k)); }); } - - Assert.assertTrue(aQualifiers.isEmpty()); - } -} \ No newline at end of file +}