1 /*
2 * RDFpro - An extensible tool for building stream-oriented RDF processing libraries.
3 *
4 * Written in 2014 by Francesco Corcoglioniti with support by Marco Amadori, Michele Mostarda,
5 * Alessio Palmero Aprosio and Marco Rospocher. Contact info on http://rdfpro.fbk.eu/
6 *
7 * To the extent possible under law, the authors have dedicated all copyright and related and
8 * neighboring rights to this software to the public domain worldwide. This software is
9 * distributed without any warranty.
10 *
11 * You should have received a copy of the CC0 Public Domain Dedication along with this software.
12 * If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
13 */
14 package eu.fbk.rdfpro.tql;
15
16 import java.nio.charset.Charset;
17
18 import org.openrdf.rio.RDFFormat;
19
20 /**
21 * Constants for the Turtle Quads (TQL) format.
22 * <p>
23 * The Turtle Quads {@link RDFFormat} is defined by constant {@link #FORMAT}. As this constant is
24 * not part of the predefined set of formats in {@link RDFFormat}, it is necessary to register it.
25 * This can be done either via {@link RDFFormat#register(RDFFormat)}, or by simply calling method
26 * {@link #register()} on this class, which ensures that multiple calls will result in a single
27 * registration.
28 * </p>
29 */
30 public final class TQL {
31
32 /** RDFFormat constant for the Turtle Quads (TQL) format). */
33 public static final RDFFormat FORMAT = new RDFFormat("Turtle Quads", "application/x-tql",
34 Charset.forName("UTF-8"), "tql", false, true);
35
36 /**
37 * Registers the Turtle Quads format in the RIO registry. Calling this method multiple times
38 * results in a single registration. Note that registration is also done transparently the
39 * first time this class is accessed.
40 *
41 * @deprecated as of Sesame 2.8, calling this method is not necessary - it is enough to avoid
42 * using the deprecated RDFFormat.forFileName() (and other static methods) for
43 * looking up an RDFFormat, and instead rely on methods in the Rio class
44 */
45 @Deprecated
46 public static void register() {
47 // Calling this method will cause the static initializer to run once
48 }
49
50 // Package protected utility methods
51
52 static boolean isPN_CHARS(final int c) { // ok
53 return isPN_CHARS_U(c) || isNumber(c) || c == '-' || c == 0x00B7 || c >= 0x0300
54 && c <= 0x036F || c >= 0x203F && c <= 0x2040;
55 }
56
57 static boolean isPN_CHARS_U(final int c) { // ok
58 return isPN_CHARS_BASE(c) || c == '_';
59 }
60
61 static boolean isPN_CHARS_BASE(final int c) { // ok
62 return isLetter(c) || c >= 0x00C0 && c <= 0x00D6 || c >= 0x00D8 && c <= 0x00F6
63 || c >= 0x00F8 && c <= 0x02FF || c >= 0x0370 && c <= 0x037D || c >= 0x037F
64 && c <= 0x1FFF || c >= 0x200C && c <= 0x200D || c >= 0x2070 && c <= 0x218F
65 || c >= 0x2C00 && c <= 0x2FEF || c >= 0x3001 && c <= 0xD7FF || c >= 0xF900
66 && c <= 0xFDCF || c >= 0xFDF0 && c <= 0xFFFD || c >= 0x10000 && c <= 0xEFFFF;
67 }
68
69 static boolean isLetter(final int c) {
70 return c >= 65 && c <= 90 || c >= 97 && c <= 122;
71 }
72
73 static boolean isNumber(final int c) {
74 return c >= 48 && c <= 57;
75 }
76
77 }