JENA-907: Rename Util.splitNamespace as Util.splitNamespaceXML This reflects its usage and enables a separation of use for XML specifically and revising Node.getLocalName for Turtle.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/6d3a74ff Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/6d3a74ff Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/6d3a74ff Branch: refs/heads/add-contract-tests Commit: 6d3a74ff00339234d2ddc7792e0b8ea1f2db4b71 Parents: e7fbc0f Author: Andy Seaborne <[email protected]> Authored: Fri May 1 16:03:04 2015 +0100 Committer: Andy Seaborne <[email protected]> Committed: Fri May 1 16:03:19 2015 +0100 ---------------------------------------------------------------------- .../java/org/apache/jena/graph/Node_URI.java | 4 ++-- .../org/apache/jena/rdf/model/impl/ModelCom.java | 2 +- .../org/apache/jena/rdf/model/impl/Util.java | 19 +++++++++++-------- .../rdfxml/xmloutput/impl/BaseXMLWriter.java | 4 ++-- .../jena/rdfxml/xmloutput/impl/Unparser.java | 6 +++--- .../jena/shared/impl/PrefixMappingImpl.java | 2 +- .../org/apache/jena/graph/test/TestNode.java | 2 +- .../test/java/org/apache/jena/util/TestUtil.java | 2 +- 8 files changed, 22 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/6d3a74ff/jena-core/src/main/java/org/apache/jena/graph/Node_URI.java ---------------------------------------------------------------------- diff --git a/jena-core/src/main/java/org/apache/jena/graph/Node_URI.java b/jena-core/src/main/java/org/apache/jena/graph/Node_URI.java index 7a45f80..331a383 100644 --- a/jena-core/src/main/java/org/apache/jena/graph/Node_URI.java +++ b/jena-core/src/main/java/org/apache/jena/graph/Node_URI.java @@ -65,14 +65,14 @@ public class Node_URI extends Node_Concrete public String getNameSpace() { String s = (String) label; - return s.substring( 0, Util.splitNamespace( s ) ); + return s.substring( 0, Util.splitNamespaceXML( s ) ); } @Override public String getLocalName() { String s = (String) label; - return s.substring( Util.splitNamespace( s ) ); + return s.substring( Util.splitNamespaceXML( s ) ); } @Override http://git-wip-us.apache.org/repos/asf/jena/blob/6d3a74ff/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java ---------------------------------------------------------------------- diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java index 7162678..a0ed407 100644 --- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java +++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java @@ -943,7 +943,7 @@ implements Model, PrefixMapping, Lock if (node.isURI()) { String uri = node.getURI(); - String ns = uri.substring( 0, Util.splitNamespace( uri ) ); + String ns = uri.substring( 0, Util.splitNamespaceXML( uri ) ); // String ns = IteratorFactory.asResource( node, this ).getNameSpace(); set.add( ns ); } http://git-wip-us.apache.org/repos/asf/jena/blob/6d3a74ff/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java ---------------------------------------------------------------------- diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java index 1774ca7..5e3ec1b 100644 --- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java +++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java @@ -32,17 +32,20 @@ import org.apache.xerces.util.XMLChar ; */ public class Util extends Object { - /** Given an absolute URI, determine the split point between the namespace part - * and the localname part. - * If there is no valid localname part then the length of the - * string is returned. - * The algorithm tries to find the longest NCName at the end - * of the uri, not immediately preceeded by the first colon - * in the string. + /** + * Given an absolute URI, determine the split point between the namespace + * part and the localname part. If there is no valid localname part then the + * length of the string is returned. The algorithm tries to find the longest + * NCName at the end of the uri, not immediately preceeded by the first + * colon in the string. + * <p> + * This operation follows XML QName rules which are more complicated than + * needed for Turtle and TriG. For example, QName can't start with a digit. + * * @param uri * @return the index of the first character of the localname */ - public static int splitNamespace(String uri) { + public static int splitNamespaceXML(String uri) { // XML Namespaces 1.0: // A qname name is NCName ':' NCName http://git-wip-us.apache.org/repos/asf/jena/blob/6d3a74ff/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/BaseXMLWriter.java ---------------------------------------------------------------------- diff --git a/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/BaseXMLWriter.java b/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/BaseXMLWriter.java index c3a92fb..3cd8078 100644 --- a/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/BaseXMLWriter.java +++ b/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/BaseXMLWriter.java @@ -390,7 +390,7 @@ abstract public class BaseXMLWriter implements RDFXMLWriterI { } String splitTag(String uriref, int type) { - int split = Util.splitNamespace( uriref ); + int split = Util.splitNamespaceXML( uriref ); if (split == uriref.length()) throw new InvalidPropertyURIException( uriref ); return tag( uriref.substring( 0, split ), uriref.substring( split ), type, true ); } @@ -525,7 +525,7 @@ abstract public class BaseXMLWriter implements RDFXMLWriterI { return attributeQuoted( substituted ); else { - int split = Util.splitNamespace( substituted ); + int split = Util.splitNamespaceXML( substituted ); String namespace = substituted.substring( 0, split ); String prefix = modelPrefixMapping.getNsURIPrefix( namespace ); return prefix == null || isPredefinedEntityName( prefix ) http://git-wip-us.apache.org/repos/asf/jena/blob/6d3a74ff/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/Unparser.java ---------------------------------------------------------------------- diff --git a/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/Unparser.java b/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/Unparser.java index 24d8ebf..2f35939 100644 --- a/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/Unparser.java +++ b/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/Unparser.java @@ -1186,7 +1186,7 @@ class Unparser { throw new BrokenException("Internal error: getNameSpace(bNode)"); } String uri = r.getURI(); - int split = Util.splitNamespace(uri); + int split = Util.splitNamespaceXML(uri); return uri.substring(0, split); } @@ -1223,7 +1223,7 @@ class Unparser { throw new BrokenException("Internal error: getLocalName(bNode)"); } String uri = r.getURI(); - int split = Util.splitNamespace(uri); + int split = Util.splitNamespaceXML(uri); return uri.substring(split); } @@ -1505,7 +1505,7 @@ class Unparser { // Only allow resources with namespace and fragment ID String uri = ((Resource) n).getURI(); - int split = Util.splitNamespace(uri); + int split = Util.splitNamespaceXML(uri); if (split == 0 || split == uri.length()) return -1; http://git-wip-us.apache.org/repos/asf/jena/blob/6d3a74ff/jena-core/src/main/java/org/apache/jena/shared/impl/PrefixMappingImpl.java ---------------------------------------------------------------------- diff --git a/jena-core/src/main/java/org/apache/jena/shared/impl/PrefixMappingImpl.java b/jena-core/src/main/java/org/apache/jena/shared/impl/PrefixMappingImpl.java index 36269c9..b2b23cb 100644 --- a/jena-core/src/main/java/org/apache/jena/shared/impl/PrefixMappingImpl.java +++ b/jena-core/src/main/java/org/apache/jena/shared/impl/PrefixMappingImpl.java @@ -206,7 +206,7 @@ public class PrefixMappingImpl implements PrefixMapping @Override public String qnameFor( String uri ) { - int split = Util.splitNamespace( uri ); + int split = Util.splitNamespaceXML( uri ); String ns = uri.substring( 0, split ), local = uri.substring( split ); if (local.equals( "" )) return null; String prefix = URItoPrefix.get( ns ); http://git-wip-us.apache.org/repos/asf/jena/blob/6d3a74ff/jena-core/src/test/java/org/apache/jena/graph/test/TestNode.java ---------------------------------------------------------------------- diff --git a/jena-core/src/test/java/org/apache/jena/graph/test/TestNode.java b/jena-core/src/test/java/org/apache/jena/graph/test/TestNode.java index 9683a59..0bfd21b 100644 --- a/jena-core/src/test/java/org/apache/jena/graph/test/TestNode.java +++ b/jena-core/src/test/java/org/apache/jena/graph/test/TestNode.java @@ -663,7 +663,7 @@ public class TestNode extends GraphTestBase { for ( String uri : someURIs ) { - int split = Util.splitNamespace( uri ); + int split = Util.splitNamespaceXML( uri ); Node n = NodeCreateUtils.create( uri ); assertEquals( "check namespace", uri.substring( 0, split ), n.getNameSpace() ); assertEquals( "check localname", uri.substring( split ), n.getLocalName() ); http://git-wip-us.apache.org/repos/asf/jena/blob/6d3a74ff/jena-core/src/test/java/org/apache/jena/util/TestUtil.java ---------------------------------------------------------------------- diff --git a/jena-core/src/test/java/org/apache/jena/util/TestUtil.java b/jena-core/src/test/java/org/apache/jena/util/TestUtil.java index 8bae423..9eb0538 100644 --- a/jena-core/src/test/java/org/apache/jena/util/TestUtil.java +++ b/jena-core/src/test/java/org/apache/jena/util/TestUtil.java @@ -118,7 +118,7 @@ public class TestUtil if ( namespace != null && localname == null ) fail("Bad test - namespace is not null but local name is") ; - int idx = Util.splitNamespace(uriStr) ; + int idx = Util.splitNamespaceXML(uriStr) ; if ( idx == uriStr.length() ) { // No split.
