/** Calculate a localname - enforce legal Turle * escape PN_LOCAL_ESC, check for final '.' * Use with {@link #namespaceTTL} */ public static String localnameTTL(String string) { String x = localname(string) ; if ( x.isEmpty()) return x ; return escape_PN_LOCAL_ESC(x) ; }
/** Return the 'namespace' (prefix) for a URI string, * legal for Turtle and goes with {@link #localnameTTL} */ public static String namespaceTTL(String string) { return namespace(string) ; }
/** Localname, according to XML qname rules. */ public static String localnameXML(String string) { int i = splitXML(string) ; return string.substring(i) ; }
private static boolean isPNChars(int ch) { // PN_CHARS ::= PN_CHARS_U | '-' | [0-9] | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040] return isPNChars_U(ch) || isDigit(ch) || ( ch == '-' ) || ch == 0x00B7 || r(ch, 0x300, 0x036F) || r(ch, 0x203F, 0x2040) ; }
private static boolean isPNChars_U_N(int ch) { // PN_CHARS_U | [0-9] return isPNCharsBase(ch) || ( ch == '_' ) || isDigit(ch) ; }
private void testPrefixLocalnameNot(String string, String expectedPrefix, String expectedLocalname) { String ns = namespace(string) ; String ln = localname(string) ; boolean b1 = Objects.equals(expectedPrefix, ns) ; boolean b2 = Objects.equals(expectedLocalname, ln) ; // Test not both true. Assert.assertFalse("Wrong: ("+ns+","+ln+")", b1&&b2); // But it still combines. String x = ns+ln ; Assert.assertEquals(string, x) ; } }
private void testPrefixLocalnameNoSplit(String string) { int i = splitpoint(string) ; String msg = string ; if ( i != -1 ) { // Better error message. String ns = namespaceTTL(string) ; String ln = localnameTTL(string) ; msg = "Unexpected split of '"+string+"' into ("+ns+", "+ln+") [index="+i+"]" ; } Assert.assertEquals(msg, -1, i) ; }
/** Calculate a localname - do not escape PN_LOCAL_ESC. * This is not guaranteed to be legal Turtle. * Use with {@link #namespace} */ public static String localname(String string) { int i = splitpoint(string) ; if ( i < 0 ) return "" ; return string.substring(i) ; }
String uri = node.getURI() ; int idx = SplitIRI.splitpoint(uri) ; if ( idx < 0 ) return ; String nsURI = SplitIRI.namespaceTTL(uri) ; String prefix = prefixMapping.getNsURIPrefix(nsURI) ; if ( prefix != null )
private void testPrefixLocalnameEsc(String string, String expectedNamespace, String expectedLocalname) { checkPrefixLocalname(string, expectedNamespace, namespaceTTL(string), expectedLocalname, localnameTTL(string)) ; }
private static String xsdDatatypeName(RDFDatatype datatype) { return "XSD "+SplitIRI.localname(datatype.getURI()); } }
private static boolean isPNChars_U(int ch) { //PN_CHARS_BASE | '_' return isPNCharsBase(ch) || ( ch == '_' ) ; }
private static boolean checkhex(String uri, int i) { return /*RiotChars.*/isHexChar(uri.charAt(i)) ; }
private void testPrefixLocalname(String string, String expectedNamespace, String expectedLocalname) { String actualNamespace = namespace(string) ; String actualLocalName = localname(string) ; checkPrefixLocalname(string, expectedNamespace, actualNamespace, expectedLocalname, actualLocalName) ; if ( expectedNamespace != null && expectedLocalname != null ) { String x = actualNamespace+actualLocalName ; Assert.assertEquals(string, x) ; } }
private void testPrefixLocalnameNoSplit(String string) { int i = splitpoint(string) ; String msg = string ; if ( i != -1 ) { // Better error message. String ns = namespaceTTL(string) ; String ln = localnameTTL(string) ; msg = "Unexpected split of '"+string+"' into ("+ns+", "+ln+") [index="+i+"]" ; } Assert.assertEquals(msg, -1, i) ; }
/** Return the 'namespace' (prefix) for a URI string. * Use with {@link #localname} */ public static String namespace(String string) { int i = splitpoint(string) ; if ( i < 0 ) return string ; return string.substring(0, i) ; }
String uri = node.getURI() ; int idx = SplitIRI.splitpoint(uri) ; if ( idx < 0 ) return ; String nsURI = SplitIRI.namespaceTTL(uri) ; String prefix = prefixMapping.getNsURIPrefix(nsURI) ; if ( prefix != null )
private static boolean isPNChars(int ch) { // PN_CHARS ::= PN_CHARS_U | '-' | [0-9] | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040] return isPNChars_U(ch) || isDigit(ch) || ( ch == '-' ) || ch == 0x00B7 || r(ch, 0x300, 0x036F) || r(ch, 0x203F, 0x2040) ; }
private void testPrefixLocalnameEsc(String string, String expectedNamespace, String expectedLocalname) { checkPrefixLocalname(string, expectedNamespace, namespaceTTL(string), expectedLocalname, localnameTTL(string)) ; }
private static boolean isPNChars_U_N(int ch) { // PN_CHARS_U | [0-9] return isPNCharsBase(ch) || ( ch == '_' ) || isDigit(ch) ; }