01: /*
02: * LICENSE INFORMATION
03: * Copyright 2005-2007 by FZI (http://www.fzi.de).
04: * Licensed under a BSD license (http://www.opensource.org/licenses/bsd-license.php)
05: * <OWNER> = Max Völkel
06: * <ORGANIZATION> = FZI Forschungszentrum Informatik Karlsruhe, Karlsruhe, Germany
07: * <YEAR> = 2007
08: *
09: * Project information at http://semweb4j.org/rdf2go
10: */
11: package org.ontoware.rdf2go.util;
12:
13: /**
14: * Helper for SPARQL encode/decode of strings
15: * @author voelkel
16: *
17: */
18: public class SparqlUtil {
19:
20: /** @return "\"" + sparqlEncode(raw) +"\"" */
21: public static String toSparqlLiteral(String raw) {
22: return "\"" + sparqlEncode(raw) + "\"";
23: }
24:
25: /**
26: * @param raw
27: * @return prefix all ' and " with a \
28: */
29: public static String sparqlEncode(String raw) {
30: String result = raw;
31:
32: result = result.replace("\\", "\\\\");
33: result = result.replace("'", "\\'");
34: result = result.replace("\"", "\\\"");
35:
36: return result;
37: }
38:
39: /**
40: * @param raw
41: * @return the string ready to be INCLUDED in a SPARQL REGEX, which is
42: * defined in http://www.w3.org/TR/xpath-functions/#regex-syntax
43: */
44: public static String sparqlRegExpEncode(String raw) {
45: String result = raw;
46:
47: // // SPARQL ENCODE
48: // result = result.replace("\\","\\\\");
49: // result = result.replace("'","\\'");
50: // result = result.replace("\"","\\\"");
51:
52: // REGEX ENCODE
53: result = result.replace("\\", "\\\\");
54: result = result.replace("|", "\\|");
55: result = result.replace(".", "\\.");
56: result = result.replace("-", "\\-");
57: result = result.replace("^", "\\^");
58: result = result.replace("?", "\\?");
59: result = result.replace("*", "\\*");
60: result = result.replace("+", "\\+");
61:
62: result = result.replace("{", "\\{");
63: result = result.replace("}", "\\}");
64: result = result.replace("(", "\\(");
65: result = result.replace(")", "\\)");
66: result = result.replace("[", "\\[");
67: result = result.replace("]", "\\]");
68: return result;
69: }
70: }
|