📄 turtleutil.java
字号:
/* Sesame - Storage and Querying architecture for RDF and RDF Schema * Copyright (C) 2001-2005 Aduna * * Contact: * Aduna * Prinses Julianaplein 14 b * 3817 CS Amersfoort * The Netherlands * tel. +33 (0)33 465 99 87 * fax. +33 (0)33 465 99 87 * * http://aduna.biz/ * http://www.openrdf.org/ * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */package org.openrdf.rio.turtle;import org.openrdf.util.ASCIIUtil;import org.openrdf.rio.ntriples.NTriplesUtil;/** * Utility methods for Turtle encoding/decoding. **/public class TurtleUtil {/*--------------+| Methods |+--------------*/ public static boolean isWhitespace(int c) { // Whitespace character are space, tab, newline and carriage return: return c == 0x20 || c == 0x9 || c == 0xA || c == 0xD; } public static boolean isNameStartChar(int c) { return ASCIIUtil.isLetter(c) || c == '_'; } public static boolean isNameChar(int c) { return isNameStartChar(c) || ASCIIUtil.isNumber(c) || c == '-'; } public static boolean isLegalName(String name) { if (name.length() == 0) { return false; } if (!isNameStartChar(name.charAt(0))) { return false; } for (int i = 1; i < name.length(); i++) { if (!isNameChar( name.charAt(i) )) { return false; } } return true; } public static boolean isPrefixStartChar(int c) { return ASCIIUtil.isLetter(c); } public static boolean isPrefixChar(int c) { return isNameChar(c); } public static boolean isLegalPrefix(String prefix) { if (prefix.length() == 0) { return false; } if (!isPrefixStartChar(prefix.charAt(0))) { return false; } for (int i = 1; i < prefix.length(); i++) { if (!isPrefixChar( prefix.charAt(i) )) { return false; } } return true; } public static boolean isLanguageStartChar(int c) { return ASCIIUtil.isLowerCaseLetter(c); } public static boolean isLanguageChar(int c) { return isLanguageStartChar(c) || ASCIIUtil.isNumber(c) || c == '-'; } /** * Escapes any characters that have a special meaning according to the * Turtle specification (<tt>"</tt> becomes <tt>\"</tt>, etc.). **/ public static String escapeString(String label) { int labelLength = label.length(); StringBuffer result = new StringBuffer((int)(1.1 * labelLength)); for (int i = 0; i < labelLength; i++) { char c = label.charAt(i); if (c == '\\') { result.append("\\\\"); } else if (c == '"') { result.append("\\\""); } else if (c == '\n') { result.append("\\n"); } else if (c == '\r') { result.append("\\r"); } else if (c == '\t') { result.append("\\t"); } else { result.append(c); } } return result.toString(); } /** * Unescapes an escaped Unicode string. This method simply uses * <tt>NTriplesUtil.unescapeString(String)</tt>. * * @param s An escaped Turtle string. * @return The unescaped string. * @exception IllegalArgumentException If the supplied string is not a * correctly escaped Turtle string. * @see org.openrdf.rio.ntriples.NTriplesUtil#unescapeString **/ public static String unescapeString(String s) { return NTriplesUtil.unescapeString(s); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -