Skip to content

Commit efc779a

Browse files
committed
Issue #23. Added QNameUtils.
1 parent a757d02 commit efc779a

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.jvnet.jaxb2_commons.xml.namespace.util;
2+
3+
import javax.xml.XMLConstants;
4+
import javax.xml.namespace.QName;
5+
6+
import org.jvnet.jaxb2_commons.lang.Validate;
7+
8+
public class QNameUtils {
9+
10+
private QNameUtils() {
11+
}
12+
13+
public static String getKey(QName name) {
14+
Validate.notNull(name);
15+
final StringBuilder sb = new StringBuilder();
16+
final String namespaceURI = name.getNamespaceURI();
17+
if (!namespaceURI.equals(XMLConstants.NULL_NS_URI)) {
18+
sb.append("{").append(namespaceURI).append("}");
19+
}
20+
final String prefix = name.getPrefix();
21+
if (!XMLConstants.DEFAULT_NS_PREFIX.equals(prefix)) {
22+
sb.append(prefix).append(":");
23+
}
24+
final String localPart = name.getLocalPart();
25+
sb.append(localPart);
26+
return sb.toString();
27+
28+
}
29+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.jvnet.jaxb2_commons.xml.namespace.util.tests;
2+
3+
import javax.xml.namespace.QName;
4+
5+
import org.junit.Assert;
6+
import org.junit.Test;
7+
import org.jvnet.jaxb2_commons.xml.namespace.util.QNameUtils;
8+
9+
public class QNameUtilsTest {
10+
11+
@Test
12+
public void producesCorrectKey()
13+
{
14+
Assert.assertEquals("a", QNameUtils.getKey(new QName("a")));
15+
Assert.assertEquals("{b}a", QNameUtils.getKey(new QName("b", "a")));
16+
Assert.assertEquals("{b}c:a", QNameUtils.getKey(new QName("b", "a", "c")));
17+
Assert.assertEquals("c:a", QNameUtils.getKey(new QName("", "a", "c")));
18+
}
19+
}

0 commit comments

Comments
 (0)