Thanks for doing the refactor, I never did find time for that last week Rob
On 2/5/13 11:14 AM, "[email protected]" <[email protected]> wrote: >Author: andy >Date: Tue Feb 5 11:14:13 2013 >New Revision: 1442540 > >URL: http://svn.apache.org/viewvc?rev=1442540&view=rev >Log: >Prepare for overridable local name rules > >Modified: > >jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/FastAbbrevia >tingPrefixMap.java > >jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapBas >e.java > >jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapStd >.java > >Modified: >jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/FastAbbrevia >tingPrefixMap.java >URL: >http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/ >jena/riot/system/FastAbbreviatingPrefixMap.java?rev=1442540&r1=1442539&r2= >1442540&view=diff >========================================================================== >==== >--- >jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/FastAbbrevia >tingPrefixMap.java (original) >+++ >jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/FastAbbrevia >tingPrefixMap.java Tue Feb 5 11:14:13 2013 >@@ -151,14 +151,14 @@ public class FastAbbreviatingPrefixMap e > } > > @Override >- protected Pair<String, String> abbrev(Map<String, IRI> prefixes, >String uriStr, boolean turtleSafe) { >+ protected Pair<String, String> abbrev(Map<String, IRI> prefixes, >String uriStr, boolean checkLocalPart) { > //Use longest match to find the longest possible match > String prefix = this.abbrevs.longestMatch(uriStr); > if (prefix == null) > return null; > > String ln = >uriStr.substring(this.prefixes.get(prefix).toString().length()); >- if (!turtleSafe || isTurtleSafe(ln)) >+ if (!checkLocalPart || isSafeLocalPart(ln)) > return Pair.create(prefix, ln); > return null; > } > >Modified: >jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapBas >e.java >URL: >http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/ >jena/riot/system/PrefixMapBase.java?rev=1442540&r1=1442539&r2=1442540&view >=diff >========================================================================== >==== >--- >jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapBas >e.java (original) >+++ >jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapBas >e.java Tue Feb 5 11:14:13 2013 >@@ -93,13 +93,13 @@ public abstract class PrefixMapBase impl > * @param turtleSafe > * Only return legal Turtle local names. > */ >- protected Pair<String, String> abbrev(Map<String, IRI> prefixes, >String uriStr, boolean turtleSafe) { >+ protected Pair<String, String> abbrev(Map<String, IRI> prefixes, >String uriStr, boolean checkLocalPart) { > for (Entry<String, IRI> e : prefixes.entrySet()) { > String uriForPrefix = e.getValue().toString(); > > if (uriStr.startsWith(uriForPrefix)) { > String ln = uriStr.substring(uriForPrefix.length()); >- if (!turtleSafe || this.isTurtleSafe(ln)) >+ if (!checkLocalPart || this.isSafeLocalPart(ln)) > return Pair.create(e.getKey(), ln); > } > } >@@ -115,11 +115,13 @@ public abstract class PrefixMapBase impl > } > > /** >- * Is a local name safe for Turtle >+ * Is a local name safe? Default is a fast check for Turtle-like >local names. > * @param ln Local name > * @return True if safe, false otherwise > */ >- protected final boolean isTurtleSafe(String ln) { >+ protected boolean isSafeLocalPart(String ln) { >+ // This test isn't complete but covers the common issues that >arise. >+ // Does not consider possible escaping. > return (strSafeFor(ln, '/') && strSafeFor(ln, '#') && >strSafeFor(ln, ':')); > } > > >Modified: >jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapStd >.java >URL: >http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/ >jena/riot/system/PrefixMapStd.java?rev=1442540&r1=1442539&r2=1442540&view= >diff >========================================================================== >==== >--- >jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapStd >.java (original) >+++ >jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapStd >.java Tue Feb 5 11:14:13 2013 >@@ -108,7 +108,7 @@ public class PrefixMapStd extends Prefix > { > // Fast track. > String ln = uriStr.substring(candidate.length()); >- if ( isTurtleSafe(ln)) >+ if ( isSafeLocalPart(ln)) > return Pair.create(uriForPrefix, ln); > } > // Not in the uri -> prefix map. Crunch it. > >
