From 128ccdc4f2e252182b978a2d5be9e8858390339e Mon Sep 17 00:00:00 2001 From: Tobias Kuhn Date: Mon, 9 Mar 2015 12:07:21 -0700 Subject: [PATCH] Use '.' as character after artifact code if base URI already has '#' --- src/main/java/net/trustyuri/rdf/RdfUtils.java | 29 ++++++----- .../java/net/trustyuri/rdf/TransformRdf.java | 5 +- .../net/trustyuri/rdf/UriTransformConfig.java | 49 ------------------- 3 files changed, 20 insertions(+), 63 deletions(-) delete mode 100644 src/main/java/net/trustyuri/rdf/UriTransformConfig.java diff --git a/src/main/java/net/trustyuri/rdf/RdfUtils.java b/src/main/java/net/trustyuri/rdf/RdfUtils.java index 0d2ab68..e11bbd5 100644 --- a/src/main/java/net/trustyuri/rdf/RdfUtils.java +++ b/src/main/java/net/trustyuri/rdf/RdfUtils.java @@ -29,19 +29,21 @@ public class RdfUtils { + public static final char bnodeChar = '_'; + public static final char preAcChar = '.'; + public static final char postAcChar = '#'; + public static final char postAcFallbackChar = '.'; + private RdfUtils() {} // no instances allowed public static String getTrustyUriString(URI baseUri, String artifactCode, String suffix) { - UriTransformConfig c = UriTransformConfig.getDefault(); String s = expandBaseUri(baseUri) + artifactCode; if (suffix != null) { - if (suffix.startsWith(c.getBnodeChar() + "")) { + if (suffix.startsWith(bnodeChar + "")) { // Duplicate bnode character for escaping: - s += c.getPostHashChar() + c.getBnodeChar() + suffix; - } else if (!c.isPostHashCharForced() && suffix.matches("[^A-Za-z0-9\\-_].*")) { - s += suffix; + s += getPostAcChar(baseUri) + bnodeChar + suffix; } else { - s += c.getPostHashChar() + suffix; + s += getPostAcChar(baseUri) + suffix; } } return s; @@ -96,10 +98,16 @@ public static void checkUri(URI uri) { } } + public static char getPostAcChar(URI baseUri) { + if (baseUri.stringValue().contains("#")) { + return postAcFallbackChar; + } + return postAcChar; + } + private static URI getSkolemizedUri(BNode bnode, URI baseUri, Map bnodeMap) { int n = getBlankNodeNumber(bnode, bnodeMap); - UriTransformConfig c = UriTransformConfig.getDefault(); - return new URIImpl(expandBaseUri(baseUri) + " " + c.getPostHashChar() + c.getBnodeChar() + n); + return new URIImpl(expandBaseUri(baseUri) + " " + getPostAcChar(baseUri) + bnodeChar + n); } private static String getSuffix(URI plainUri, URI baseUri) { @@ -135,10 +143,9 @@ private static int getBlankNodeNumber(BNode blankNode, Map bnode } private static String expandBaseUri(URI baseUri) { - UriTransformConfig c = UriTransformConfig.getDefault(); String s = baseUri.toString(); - if (s.matches(".*[A-Za-z0-9\\-_]") || c.isPreHashCharForced()) { - s += c.getPreHashChar(); + if (s.matches(".*[A-Za-z0-9\\-_]")) { + s += preAcChar; } return s; } diff --git a/src/main/java/net/trustyuri/rdf/TransformRdf.java b/src/main/java/net/trustyuri/rdf/TransformRdf.java index 9c228d0..1f5e7c7 100644 --- a/src/main/java/net/trustyuri/rdf/TransformRdf.java +++ b/src/main/java/net/trustyuri/rdf/TransformRdf.java @@ -151,10 +151,9 @@ static void addToNamespaceMap(Value v, URI baseURI, String artifactCode, Map 2 && suffix.charAt(0) == c.getPostHashChar() && suffix.charAt(1) == c.getBnodeChar() && - !(c.getBnodeChar() + "").matches("[A-Za-z0-9\\-_]")) { + if (suffix.length() > 2 && suffix.charAt(0) == RdfUtils.getPostAcChar(baseURI) && suffix.charAt(1) == RdfUtils.bnodeChar && + !(RdfUtils.bnodeChar + "").matches("[A-Za-z0-9\\-_]")) { ns.put("node", uri + ".."); } else if (suffix.matches("[^A-Za-z0-9\\-_].*")) { ns.put("sub", uri + suffix.charAt(0)); diff --git a/src/main/java/net/trustyuri/rdf/UriTransformConfig.java b/src/main/java/net/trustyuri/rdf/UriTransformConfig.java deleted file mode 100644 index 665f918..0000000 --- a/src/main/java/net/trustyuri/rdf/UriTransformConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package net.trustyuri.rdf; - -public class UriTransformConfig { - - public static UriTransformConfig DOT_CONFIG = new UriTransformConfig('.', false, '.', false, '.'); - public static UriTransformConfig HASH_CONFIG = new UriTransformConfig('.', false, '#', true, '_'); - - private static UriTransformConfig defaultConfig = HASH_CONFIG; - - public static UriTransformConfig getDefault() { - return defaultConfig; - } - - public static void setDefault(UriTransformConfig defaultConfig) { - UriTransformConfig.defaultConfig = defaultConfig; - } - - private char preChar, postChar, bnodeChar; - private boolean preForced, postForced; - - public UriTransformConfig(char preChar, boolean preForced, char postChar, boolean postForced, char bnodeChar) { - this.preChar = preChar; - this.preForced = preForced; - this.postChar = postChar; - this.postForced = postForced; - this.bnodeChar = bnodeChar; - } - - public char getPreHashChar() { - return preChar; - } - - public boolean isPreHashCharForced() { - return preForced; - } - - public char getPostHashChar() { - return postChar; - } - - public boolean isPostHashCharForced() { - return postForced; - } - - public char getBnodeChar() { - return bnodeChar; - } - -}