/*******************************************************************************
* Copyright 2012 Pearson Education
*
* 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 org.semantictools.jsonld;
import java.util.HashMap;
import java.util.Map;
public class LdDatatypeManager {
public static final String XPATH_DATATYPES_URI = "http://www.w3.org/2004/10/xpath-datatypes#";
private static Map<String, LdDatatype> map = new HashMap<String, LdDatatype>();
public static final LdDatatype LD_ANYURI = createDatatype(XsdType.ANYURI);
public static final LdDatatype LD_BASE64BINARY = createDatatype(XsdType.BASE64BINARY);
public static final LdDatatype LD_BOOLEAN = createDatatype(XsdType.BOOLEAN);
public static final LdDatatype LD_BYTE = createDatatype(XsdType.BYTE);
public static final LdDatatype LD_DATE = createDatatype(XsdType.DATE);
public static final LdDatatype LD_DATETIME = createDatatype(XsdType.DATETIME);
public static final LdDatatype LD_DECIMAL = createDatatype(XsdType.DECIMAL);
public static final LdDatatype LD_DOUBLE = createDatatype(XsdType.DOUBLE);
public static final LdDatatype LD_DURATION = createDatatype(XsdType.DURATION);
public static final LdDatatype LD_FLOAT = createDatatype(XsdType.FLOAT);
public static final LdDatatype LD_GDAY = createDatatype(XsdType.GDAY);
public static final LdDatatype LD_GMONTH = createDatatype(XsdType.GMONTH);
public static final LdDatatype LD_GMONTHDAY = createDatatype(XsdType.GMONTHDAY);
public static final LdDatatype LD_GYEAR = createDatatype(XsdType.GYEAR);
public static final LdDatatype LD_GYEARMONTH = createDatatype(XsdType.GYEARMONTH);
public static final LdDatatype LD_HEXBINARY = createDatatype(XsdType.HEXBINARY);
public static final LdDatatype LD_INT = createDatatype(XsdType.INT);
public static final LdDatatype LD_INTEGER = createDatatype(XsdType.INTEGER);
public static final LdDatatype LD_LANGUAGE = createDatatype(XsdType.LANGUAGE);
public static final LdDatatype LD_LONG = createDatatype(XsdType.LONG);
public static final LdDatatype LD_NAME = createDatatype(XsdType.NAME);
public static final LdDatatype LD_NCNAME = createDatatype(XsdType.NCNAME);
public static final LdDatatype LD_NEGATIVEINTEGER = createDatatype(XsdType.NEGATIVEINTEGER);
public static final LdDatatype LD_NMTOKEN = createDatatype(XsdType.NMTOKEN);
public static final LdDatatype LD_NONNEGATIVEINTEGER = createDatatype(XsdType.NONNEGATIVEINTEGER);
public static final LdDatatype LD_NONPOSITIVEINTEGER = createDatatype(XsdType.NONPOSITIVEINTEGER);
public static final LdDatatype LD_NORMALIZEDSTRING = createDatatype(XsdType.NORMALIZEDSTRING);
public static final LdDatatype LD_POSTIVEINTEGER = createDatatype(XsdType.POSTIVEINTEGER);
public static final LdDatatype LD_SHORT = createDatatype(XsdType.SHORT);
public static final LdDatatype LD_STRING = createDatatype(XsdType.STRING);
public static final LdDatatype LD_TIME = createDatatype(XsdType.TIME);
public static final LdDatatype LD_TOKEN = createDatatype(XsdType.TOKEN);
public static final LdDatatype LD_UNSIGNEDBYTE = createDatatype(XsdType.UNSIGNEDBYTE);
public static final LdDatatype LD_UNSIGNEDINT = createDatatype(XsdType.UNSIGNEDINT);
public static final LdDatatype LD_UNSIGNEDLONG = createDatatype(XsdType.UNSIGNEDLONG);
public static final LdDatatype LD_UNSIGNEDSHORT = createDatatype(XsdType.UNSIGNEDSHORT);
public static final LdDatatype LD_DAYTIMEDURATION = new LdDatatype();
static {
LD_DAYTIMEDURATION.setBase(LD_DURATION);
LD_DAYTIMEDURATION.setNamespace("http://www.w3.org/2004/10/xpath-datatypes#");
LD_DAYTIMEDURATION.setURI("http://www.w3.org/2004/10/xpath-datatypes#dayTimeDuration");
LD_DAYTIMEDURATION.setLocalName("dayTimeDuration");
LD_DAYTIMEDURATION.setXsdType(XsdType.DURATION);
map.put(LD_DAYTIMEDURATION.getURI(), LD_DAYTIMEDURATION);
}
private static LdDatatype createDatatype(XsdType xsdType) {
LdDatatype datatype = new LdDatatype();
datatype.setNamespace(XsdType.URI);
datatype.setLocalName(xsdType.getLocalName());
datatype.setURI(XsdType.URI + xsdType.getLocalName());
datatype.setXsdType(xsdType);
map.put(datatype.getURI(), datatype);
return datatype;
}
public static LdDatatype getXsdTypeByURI(String uri) {
return map.get(uri);
}
}