/*
* Copyright (c) 2013-2015 Josef Hardi <josef.hardi@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.obidea.semantika.datatype;
import java.util.ArrayList;
import java.util.List;
import com.obidea.semantika.util.Namespaces;
public class DataType
{
public static final String LITERAL = Namespaces.RDFS + "Literal"; //$NON-NLS-1$
public static final String PLAIN_LITERAL = Namespaces.RDF + "PlainLiteral"; //$NON-NLS-1$
public static final String XML_LITERAL = Namespaces.RDF + "XMLLiteral"; //$NON-NLS-1$
public static final String ANY_TYPE = Namespaces.XSD + "anyType"; //$NON-NLS-1$
public static final String ANY_SIMPLE_TYPE = Namespaces.XSD + "anySimpleType"; //$NON-NLS-1$
public static final String STRING = Namespaces.XSD + "string"; //$NON-NLS-1$
public static final String INTEGER = Namespaces.XSD + "integer"; //$NON-NLS-1$
public static final String LONG = Namespaces.XSD + "long"; //$NON-NLS-1$
public static final String INT = Namespaces.XSD + "int"; //$NON-NLS-1$
public static final String SHORT = Namespaces.XSD + "short"; //$NON-NLS-1$
public static final String BYTE = Namespaces.XSD + "byte"; //$NON-NLS-1$
public static final String DECIMAL = Namespaces.XSD + "decimal"; //$NON-NLS-1$
public static final String FLOAT = Namespaces.XSD + "float"; //$NON-NLS-1$
public static final String BOOLEAN = Namespaces.XSD + "boolean"; //$NON-NLS-1$
public static final String DOUBLE = Namespaces.XSD + "double"; //$NON-NLS-1$
public static final String NON_POSITIVE_INTEGER = Namespaces.XSD + "nonPositiveInteger"; //$NON-NLS-1$
public static final String NEGATIVE_INTEGER = Namespaces.XSD + "negativeInteger"; //$NON-NLS-1$
public static final String NON_NEGATIVE_INTEGER = Namespaces.XSD + "nonNegativeInteger"; //$NON-NLS-1$
public static final String UNSIGNED_LONG = Namespaces.XSD + "unsignedLong"; //$NON-NLS-1$
public static final String UNSIGNED_INT = Namespaces.XSD + "unsignedInt"; //$NON-NLS-1$
public static final String UNSIGNED_SHORT = Namespaces.XSD + "unsignedShort"; //$NON-NLS-1$
public static final String UNSIGNED_BYTE = Namespaces.XSD + "unsignedByte"; //$NON-NLS-1$
public static final String POSITIVE_INTEGER = Namespaces.XSD + "positiveInteger"; //$NON-NLS-1$
public static final String BASE_64_BINARY = Namespaces.XSD + "base64Binary"; //$NON-NLS-1$
public static final String HEX_BINARY = Namespaces.XSD + "hexBinary"; //$NON-NLS-1$
public static final String ANY_URI = Namespaces.XSD + "anyURI"; //$NON-NLS-1$
public static final String Q_NAME = Namespaces.XSD + "QName"; //$NON-NLS-1$
public static final String NOTATION = Namespaces.XSD + "NOTATION"; //$NON-NLS-1$
public static final String NORMALIZED_STRING = Namespaces.XSD + "normalizedString"; //$NON-NLS-1$
public static final String TOKEN = Namespaces.XSD + "token"; //$NON-NLS-1$
public static final String LANGUAGE = Namespaces.XSD + "language"; //$NON-NLS-1$
public static final String NAME = Namespaces.XSD + "Name"; //$NON-NLS-1$
public static final String NCNAME = Namespaces.XSD + "NCName"; //$NON-NLS-1$
public static final String NMTOKEN = Namespaces.XSD + "NMToken"; //$NON-NLS-1$
public static final String ID = Namespaces.XSD + "ID"; //$NON-NLS-1$
public static final String IDREF = Namespaces.XSD + "IDREF"; //$NON-NLS-1$
public static final String ENTITY = Namespaces.XSD + "ENTITY"; //$NON-NLS-1$
public static final String DURATION = Namespaces.XSD + "duration"; //$NON-NLS-1$
public static final String DATE_TIME = Namespaces.XSD + "dateTime"; //$NON-NLS-1$
public static final String DATE_TIME_STAMP = Namespaces.XSD + "dateTimeStamp"; //$NON-NLS-1$
public static final String TIME = Namespaces.XSD + "time"; //$NON-NLS-1$
public static final String DATE = Namespaces.XSD + "date"; //$NON-NLS-1$
public static final String G_YEAR_MONTH = Namespaces.XSD + "gYearMonth"; //$NON-NLS-1$
public static final String G_YEAR = Namespaces.XSD + "gYear"; //$NON-NLS-1$
public static final String G_MONTH_DAY = Namespaces.XSD + "gMonthDay"; //$NON-NLS-1$
public static final String G_DAY = Namespaces.XSD + "gDay"; //$NON-NLS-1$
public static final String G_MONTH = Namespaces.XSD + "gMonth"; //$NON-NLS-1$
public static final List<String> CHARACTER_TYPES = new ArrayList<String>();
static {
CHARACTER_TYPES.add(LITERAL);
CHARACTER_TYPES.add(PLAIN_LITERAL);
CHARACTER_TYPES.add(XML_LITERAL);
CHARACTER_TYPES.add(STRING);
CHARACTER_TYPES.add(NORMALIZED_STRING);
}
public static final List<String> NUMERIC_TYPES = new ArrayList<String>();
static {
NUMERIC_TYPES.add(INTEGER);
NUMERIC_TYPES.add(LONG);
NUMERIC_TYPES.add(INT);
NUMERIC_TYPES.add(SHORT);
NUMERIC_TYPES.add(BYTE);
NUMERIC_TYPES.add(DECIMAL);
NUMERIC_TYPES.add(FLOAT);
NUMERIC_TYPES.add(DOUBLE);
NUMERIC_TYPES.add(NON_POSITIVE_INTEGER);
NUMERIC_TYPES.add(NEGATIVE_INTEGER);
NUMERIC_TYPES.add(NON_NEGATIVE_INTEGER);
NUMERIC_TYPES.add(UNSIGNED_LONG);
NUMERIC_TYPES.add(UNSIGNED_INT);
NUMERIC_TYPES.add(UNSIGNED_SHORT);
NUMERIC_TYPES.add(UNSIGNED_BYTE);
NUMERIC_TYPES.add(POSITIVE_INTEGER);
}
public static String getShortName(String datatypeUri)
{
String prefix = "_";
if (datatypeUri.contains(Namespaces.RDF)) {
prefix = "rdf";
}
else if (datatypeUri.contains(Namespaces.RDFS)) {
prefix = "rdfs";
}
else if (datatypeUri.contains(Namespaces.XSD)) {
prefix = "xsd";
}
else if (datatypeUri.contains(Namespaces.OWL)) {
prefix = "owl";
}
return prefix + ":" + datatypeUri.substring(datatypeUri.indexOf("#") + 1);
}
}