X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.acr%2Fsrc%2Forg%2Fargeo%2Fapi%2Facr%2FNamespaceUtils.java;h=df582868b349798da88d124264d5f846c432feec;hb=3b45f571938e0eb6803084aac3f2bd298e6026ba;hp=9b5034b559c5692b3ec119f13e2b3ae5eed9c7ef;hpb=4c7e1885b8bf3c93fa0919ace122e3f289a925ea;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/NamespaceUtils.java b/org.argeo.api.acr/src/org/argeo/api/acr/NamespaceUtils.java index 9b5034b55..df582868b 100644 --- a/org.argeo.api.acr/src/org/argeo/api/acr/NamespaceUtils.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/NamespaceUtils.java @@ -13,6 +13,10 @@ import javax.xml.namespace.QName; public class NamespaceUtils { + public static ContentName parsePrefixedName(String nameWithPrefix) { + return parsePrefixedName(RuntimeNamespaceContext.getNamespaceContext(), nameWithPrefix); + } + public static ContentName parsePrefixedName(NamespaceContext nameSpaceContext, String nameWithPrefix) { Objects.requireNonNull(nameWithPrefix, "Name cannot be null"); if (nameWithPrefix.charAt(0) == '{') { @@ -31,6 +35,10 @@ public class NamespaceUtils { return new ContentName(namespaceURI, localName, prefix); } + public static String toPrefixedName(QName name) { + return toPrefixedName(RuntimeNamespaceContext.getNamespaceContext(), name); + } + public static String toPrefixedName(NamespaceContext nameSpaceContext, QName name) { if (XMLConstants.NULL_NS_URI.equals(name.getNamespaceURI())) return name.getLocalPart(); @@ -41,7 +49,7 @@ public class NamespaceUtils { } public final static Comparator QNAME_COMPARATOR = new Comparator() { - + @Override public int compare(QName qn1, QName qn2) { if (Objects.equals(qn1.getNamespaceURI(), qn2.getNamespaceURI())) {// same namespace @@ -50,11 +58,22 @@ public class NamespaceUtils { return qn1.getNamespaceURI().compareTo(qn2.getNamespaceURI()); } } - + }; - /** singleton */ - private NamespaceUtils() { + public static boolean hasNamespace(QName qName) { + return !qName.getNamespaceURI().equals(XMLConstants.NULL_NS_URI); + } + + public static void checkNoPrefix(String unqualified) { + if (unqualified.indexOf(':') >= 0) + throw new IllegalArgumentException("Name " + unqualified + " has a prefix"); + } + + public static QName unqualified(String name) { + checkNoPrefix(name); + return new ContentName(XMLConstants.NULL_NS_URI, name, XMLConstants.DEFAULT_NS_PREFIX); + } /* @@ -119,4 +138,8 @@ public class NamespaceUtils { return prefixes.iterator(); } + /** singleton */ + private NamespaceUtils() { + } + }