blob: ab4f627d41b8f6cac99d17db8f785a76c4906fc2 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.apache.vxquery.types;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.xml.namespace.QName;
public final class BuiltinTypeRegistry {
public static final BuiltinAtomicType XS_ANY_ATOMIC = new BuiltinAtomicType(
BuiltinTypeConstants.XS_ANY_ATOMIC_TYPE_ID, AnySimpleType.INSTANCE, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_STRING = new BuiltinAtomicType(BuiltinTypeConstants.XS_STRING_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_NORMALIZED_STRING = new BuiltinAtomicType(
BuiltinTypeConstants.XS_NORMALIZED_STRING_TYPE_ID, XS_STRING, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_TOKEN = new BuiltinAtomicType(BuiltinTypeConstants.XS_TOKEN_TYPE_ID,
XS_NORMALIZED_STRING, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_LANGUAGE = new BuiltinAtomicType(BuiltinTypeConstants.XS_LANGUAGE_TYPE_ID,
XS_TOKEN, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_NMTOKEN = new BuiltinAtomicType(BuiltinTypeConstants.XS_NMTOKEN_TYPE_ID,
XS_TOKEN, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_NAME = new BuiltinAtomicType(BuiltinTypeConstants.XS_NAME_TYPE_ID,
XS_TOKEN, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_NCNAME = new BuiltinAtomicType(BuiltinTypeConstants.XS_NCNAME_TYPE_ID,
XS_NAME, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_ID = new BuiltinAtomicType(BuiltinTypeConstants.XS_ID_TYPE_ID, XS_NCNAME,
DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_IDREF = new BuiltinAtomicType(BuiltinTypeConstants.XS_IDREF_TYPE_ID,
XS_NCNAME, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_ENTITY = new BuiltinAtomicType(BuiltinTypeConstants.XS_ENTITY_TYPE_ID,
XS_NCNAME, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_UNTYPED_ATOMIC = new BuiltinAtomicType(
BuiltinTypeConstants.XS_UNTYPED_ATOMIC_TYPE_ID, XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_DATETIME = new BuiltinAtomicType(BuiltinTypeConstants.XS_DATETIME_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_DATE = new BuiltinAtomicType(BuiltinTypeConstants.XS_DATE_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_TIME = new BuiltinAtomicType(BuiltinTypeConstants.XS_TIME_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_DURATION = new BuiltinAtomicType(BuiltinTypeConstants.XS_DURATION_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_YEAR_MONTH_DURATION = new BuiltinAtomicType(
BuiltinTypeConstants.XS_YEAR_MONTH_DURATION_TYPE_ID, XS_DURATION, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_DAY_TIME_DURATION = new BuiltinAtomicType(
BuiltinTypeConstants.XS_DAY_TIME_DURATION_TYPE_ID, XS_DURATION, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XSEXT_NUMERIC = new BuiltinAtomicType(
BuiltinTypeConstants.XSEXT_NUMERIC_TYPE_ID, XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_FLOAT = new BuiltinAtomicType(BuiltinTypeConstants.XS_FLOAT_TYPE_ID,
XSEXT_NUMERIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_DOUBLE = new BuiltinAtomicType(BuiltinTypeConstants.XS_DOUBLE_TYPE_ID,
XSEXT_NUMERIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_DECIMAL = new BuiltinAtomicType(BuiltinTypeConstants.XS_DECIMAL_TYPE_ID,
XSEXT_NUMERIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_INTEGER = new BuiltinAtomicType(BuiltinTypeConstants.XS_INTEGER_TYPE_ID,
XS_DECIMAL, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_NON_POSITIVE_INTEGER = new BuiltinAtomicType(
BuiltinTypeConstants.XS_NON_POSITIVE_INTEGER_TYPE_ID, XS_INTEGER, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_NEGATIVE_INTEGER = new BuiltinAtomicType(
BuiltinTypeConstants.XS_NEGATIVE_INTEGER_TYPE_ID, XS_NON_POSITIVE_INTEGER, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_LONG = new BuiltinAtomicType(BuiltinTypeConstants.XS_LONG_TYPE_ID,
XS_INTEGER, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_INT = new BuiltinAtomicType(BuiltinTypeConstants.XS_INT_TYPE_ID, XS_LONG,
DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_SHORT = new BuiltinAtomicType(BuiltinTypeConstants.XS_SHORT_TYPE_ID,
XS_INT, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_BYTE = new BuiltinAtomicType(BuiltinTypeConstants.XS_BYTE_TYPE_ID,
XS_SHORT, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_NON_NEGATIVE_INTEGER = new BuiltinAtomicType(
BuiltinTypeConstants.XS_NON_NEGATIVE_INTEGER_TYPE_ID, XS_INTEGER, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_UNSIGNED_LONG = new BuiltinAtomicType(
BuiltinTypeConstants.XS_UNSIGNED_LONG_TYPE_ID, XS_NON_NEGATIVE_INTEGER, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_UNSIGNED_INT = new BuiltinAtomicType(
BuiltinTypeConstants.XS_UNSIGNED_INT_TYPE_ID, XS_UNSIGNED_LONG, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_UNSIGNED_SHORT = new BuiltinAtomicType(
BuiltinTypeConstants.XS_UNSIGNED_SHORT_TYPE_ID, XS_UNSIGNED_INT, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_UNSIGNED_BYTE = new BuiltinAtomicType(
BuiltinTypeConstants.XS_UNSIGNED_BYTE_TYPE_ID, XS_UNSIGNED_SHORT, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_POSITIVE_INTEGER = new BuiltinAtomicType(
BuiltinTypeConstants.XS_POSITIVE_INTEGER_TYPE_ID, XS_NON_NEGATIVE_INTEGER, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_G_YEAR_MONTH = new BuiltinAtomicType(
BuiltinTypeConstants.XS_G_YEAR_MONTH_TYPE_ID, XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_G_YEAR = new BuiltinAtomicType(BuiltinTypeConstants.XS_G_YEAR_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_G_MONTH_DAY = new BuiltinAtomicType(
BuiltinTypeConstants.XS_G_MONTH_DAY_TYPE_ID, XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_G_DAY = new BuiltinAtomicType(BuiltinTypeConstants.XS_G_DAY_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_G_MONTH = new BuiltinAtomicType(BuiltinTypeConstants.XS_G_MONTH_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_BOOLEAN = new BuiltinAtomicType(BuiltinTypeConstants.XS_BOOLEAN_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_BASE64_BINARY = new BuiltinAtomicType(
BuiltinTypeConstants.XS_BASE64_BINARY_TYPE_ID, XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_HEX_BINARY = new BuiltinAtomicType(
BuiltinTypeConstants.XS_HEX_BINARY_TYPE_ID, XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_ANY_URI = new BuiltinAtomicType(BuiltinTypeConstants.XS_ANY_URI_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_QNAME = new BuiltinAtomicType(BuiltinTypeConstants.XS_QNAME_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType XS_NOTATION = new BuiltinAtomicType(BuiltinTypeConstants.XS_NOTATION_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinAtomicType JS_NULL = new BuiltinAtomicType(BuiltinTypeConstants.JS_NULL_TYPE_ID,
XS_ANY_ATOMIC, DerivationProcess.RESTRICTION);
public static final BuiltinTypeRegistry INSTANCE = new BuiltinTypeRegistry();
private final SchemaType[] types;
private final QName[] typeNames;
private BuiltinTypeRegistry() {
types = new SchemaType[BuiltinTypeConstants.BUILTIN_TYPE_COUNT];
types[BuiltinTypeConstants.XS_ANY_SIMPLE_TYPE_ID] = AnySimpleType.INSTANCE;
types[BuiltinTypeConstants.XS_ANY_ATOMIC_TYPE_ID] = XS_ANY_ATOMIC;
types[BuiltinTypeConstants.XS_STRING_TYPE_ID] = XS_STRING;
types[BuiltinTypeConstants.XS_NORMALIZED_STRING_TYPE_ID] = XS_NORMALIZED_STRING;
types[BuiltinTypeConstants.XS_TOKEN_TYPE_ID] = XS_TOKEN;
types[BuiltinTypeConstants.XS_LANGUAGE_TYPE_ID] = XS_LANGUAGE;
types[BuiltinTypeConstants.XS_NMTOKEN_TYPE_ID] = XS_NMTOKEN;
types[BuiltinTypeConstants.XS_NAME_TYPE_ID] = XS_NAME;
types[BuiltinTypeConstants.XS_NCNAME_TYPE_ID] = XS_NCNAME;
types[BuiltinTypeConstants.XS_ID_TYPE_ID] = XS_ID;
types[BuiltinTypeConstants.XS_IDREF_TYPE_ID] = XS_IDREF;
types[BuiltinTypeConstants.XS_ENTITY_TYPE_ID] = XS_ENTITY;
types[BuiltinTypeConstants.XS_UNTYPED_ATOMIC_TYPE_ID] = XS_UNTYPED_ATOMIC;
types[BuiltinTypeConstants.XS_DATETIME_TYPE_ID] = XS_DATETIME;
types[BuiltinTypeConstants.XS_DATE_TYPE_ID] = XS_DATE;
types[BuiltinTypeConstants.XS_TIME_TYPE_ID] = XS_TIME;
types[BuiltinTypeConstants.XS_DURATION_TYPE_ID] = XS_DURATION;
types[BuiltinTypeConstants.XS_YEAR_MONTH_DURATION_TYPE_ID] = XS_YEAR_MONTH_DURATION;
types[BuiltinTypeConstants.XS_DAY_TIME_DURATION_TYPE_ID] = XS_DAY_TIME_DURATION;
types[BuiltinTypeConstants.XSEXT_NUMERIC_TYPE_ID] = XSEXT_NUMERIC;
types[BuiltinTypeConstants.XS_FLOAT_TYPE_ID] = XS_FLOAT;
types[BuiltinTypeConstants.XS_DOUBLE_TYPE_ID] = XS_DOUBLE;
types[BuiltinTypeConstants.XS_DECIMAL_TYPE_ID] = XS_DECIMAL;
types[BuiltinTypeConstants.XS_INTEGER_TYPE_ID] = XS_INTEGER;
types[BuiltinTypeConstants.XS_NON_POSITIVE_INTEGER_TYPE_ID] = XS_NON_POSITIVE_INTEGER;
types[BuiltinTypeConstants.XS_NEGATIVE_INTEGER_TYPE_ID] = XS_NEGATIVE_INTEGER;
types[BuiltinTypeConstants.XS_LONG_TYPE_ID] = XS_LONG;
types[BuiltinTypeConstants.XS_INT_TYPE_ID] = XS_INT;
types[BuiltinTypeConstants.XS_SHORT_TYPE_ID] = XS_SHORT;
types[BuiltinTypeConstants.XS_BYTE_TYPE_ID] = XS_BYTE;
types[BuiltinTypeConstants.XS_NON_NEGATIVE_INTEGER_TYPE_ID] = XS_NON_NEGATIVE_INTEGER;
types[BuiltinTypeConstants.XS_UNSIGNED_LONG_TYPE_ID] = XS_UNSIGNED_LONG;
types[BuiltinTypeConstants.XS_UNSIGNED_INT_TYPE_ID] = XS_UNSIGNED_INT;
types[BuiltinTypeConstants.XS_UNSIGNED_SHORT_TYPE_ID] = XS_UNSIGNED_SHORT;
types[BuiltinTypeConstants.XS_UNSIGNED_BYTE_TYPE_ID] = XS_UNSIGNED_BYTE;
types[BuiltinTypeConstants.XS_POSITIVE_INTEGER_TYPE_ID] = XS_POSITIVE_INTEGER;
types[BuiltinTypeConstants.XS_G_YEAR_MONTH_TYPE_ID] = XS_G_YEAR_MONTH;
types[BuiltinTypeConstants.XS_G_YEAR_TYPE_ID] = XS_G_YEAR;
types[BuiltinTypeConstants.XS_G_MONTH_DAY_TYPE_ID] = XS_G_MONTH_DAY;
types[BuiltinTypeConstants.XS_G_DAY_TYPE_ID] = XS_G_DAY;
types[BuiltinTypeConstants.XS_G_MONTH_TYPE_ID] = XS_G_MONTH;
types[BuiltinTypeConstants.XS_BOOLEAN_TYPE_ID] = XS_BOOLEAN;
types[BuiltinTypeConstants.XS_BASE64_BINARY_TYPE_ID] = XS_BASE64_BINARY;
types[BuiltinTypeConstants.XS_HEX_BINARY_TYPE_ID] = XS_HEX_BINARY;
types[BuiltinTypeConstants.XS_ANY_URI_TYPE_ID] = XS_ANY_URI;
types[BuiltinTypeConstants.XS_QNAME_TYPE_ID] = XS_QNAME;
types[BuiltinTypeConstants.XS_NOTATION_TYPE_ID] = XS_NOTATION;
types[BuiltinTypeConstants.JS_NULL_TYPE_ID] = JS_NULL;
typeNames = new QName[BuiltinTypeConstants.BUILTIN_TYPE_COUNT];
typeNames[BuiltinTypeConstants.XS_ANY_TYPE_ID] = BuiltinTypeQNames.XS_ANY_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_ANY_SIMPLE_TYPE_ID] = BuiltinTypeQNames.XS_ANY_SIMPLE_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_UNTYPED_TYPE_ID] = BuiltinTypeQNames.XS_UNTYPED_QNAME;
typeNames[BuiltinTypeConstants.XS_ANY_ATOMIC_TYPE_ID] = BuiltinTypeQNames.XS_ANY_ATOMIC_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_STRING_TYPE_ID] = BuiltinTypeQNames.XS_STRING_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_NORMALIZED_STRING_TYPE_ID] = BuiltinTypeQNames.XS_NORMALIZED_STRING_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_TOKEN_TYPE_ID] = BuiltinTypeQNames.XS_TOKEN_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_LANGUAGE_TYPE_ID] = BuiltinTypeQNames.XS_LANGUAGE_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_NMTOKEN_TYPE_ID] = BuiltinTypeQNames.XS_NMTOKEN_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_NAME_TYPE_ID] = BuiltinTypeQNames.XS_NAME_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_NCNAME_TYPE_ID] = BuiltinTypeQNames.XS_NCNAME_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_ID_TYPE_ID] = BuiltinTypeQNames.XS_ID_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_IDREF_TYPE_ID] = BuiltinTypeQNames.XS_IDREF_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_ENTITY_TYPE_ID] = BuiltinTypeQNames.XS_ENTITY_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_UNTYPED_ATOMIC_TYPE_ID] = BuiltinTypeQNames.XS_UNTYPED_ATOMIC_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_DATETIME_TYPE_ID] = BuiltinTypeQNames.XS_DATETIME_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_DATE_TYPE_ID] = BuiltinTypeQNames.XS_DATE_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_TIME_TYPE_ID] = BuiltinTypeQNames.XS_TIME_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_DURATION_TYPE_ID] = BuiltinTypeQNames.XS_DURATION_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_YEAR_MONTH_DURATION_TYPE_ID] = BuiltinTypeQNames.XS_YEAR_MONTH_DURATION_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_DAY_TIME_DURATION_TYPE_ID] = BuiltinTypeQNames.XS_DAY_TIME_DURATION_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XSEXT_NUMERIC_TYPE_ID] = BuiltinTypeQNames.XSEXT_NUMERIC_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_FLOAT_TYPE_ID] = BuiltinTypeQNames.XS_FLOAT_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_DOUBLE_TYPE_ID] = BuiltinTypeQNames.XS_DOUBLE_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_DECIMAL_TYPE_ID] = BuiltinTypeQNames.XS_DECIMAL_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_INTEGER_TYPE_ID] = BuiltinTypeQNames.XS_INTEGER_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_NON_POSITIVE_INTEGER_TYPE_ID] = BuiltinTypeQNames.XS_NON_POSITIVE_INTEGER_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_NEGATIVE_INTEGER_TYPE_ID] = BuiltinTypeQNames.XS_NEGATIVE_INTEGER_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_LONG_TYPE_ID] = BuiltinTypeQNames.XS_LONG_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_INT_TYPE_ID] = BuiltinTypeQNames.XS_INT_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_SHORT_TYPE_ID] = BuiltinTypeQNames.XS_SHORT_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_BYTE_TYPE_ID] = BuiltinTypeQNames.XS_BYTE_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_NON_NEGATIVE_INTEGER_TYPE_ID] = BuiltinTypeQNames.XS_NON_NEGATIVE_INTEGER_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_UNSIGNED_LONG_TYPE_ID] = BuiltinTypeQNames.XS_UNSIGNED_LONG_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_UNSIGNED_INT_TYPE_ID] = BuiltinTypeQNames.XS_UNSIGNED_INT_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_UNSIGNED_SHORT_TYPE_ID] = BuiltinTypeQNames.XS_UNSIGNED_SHORT_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_UNSIGNED_BYTE_TYPE_ID] = BuiltinTypeQNames.XS_UNSIGNED_BYTE_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_POSITIVE_INTEGER_TYPE_ID] = BuiltinTypeQNames.XS_POSITIVE_INTEGER_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_G_YEAR_MONTH_TYPE_ID] = BuiltinTypeQNames.XS_G_YEAR_MONTH_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_G_YEAR_TYPE_ID] = BuiltinTypeQNames.XS_G_YEAR_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_G_MONTH_DAY_TYPE_ID] = BuiltinTypeQNames.XS_G_MONTH_DAY_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_G_DAY_TYPE_ID] = BuiltinTypeQNames.XS_G_DAY_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_G_MONTH_TYPE_ID] = BuiltinTypeQNames.XS_G_MONTH_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_BOOLEAN_TYPE_ID] = BuiltinTypeQNames.XS_BOOLEAN_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_BASE64_BINARY_TYPE_ID] = BuiltinTypeQNames.XS_BASE64_BINARY_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_HEX_BINARY_TYPE_ID] = BuiltinTypeQNames.XS_HEX_BINARY_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_ANY_URI_TYPE_ID] = BuiltinTypeQNames.XS_ANY_URI_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_QNAME_TYPE_ID] = BuiltinTypeQNames.XS_QNAME_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_NOTATION_TYPE_ID] = BuiltinTypeQNames.XS_NOTATION_TYPE_QNAME;
typeNames[BuiltinTypeConstants.JS_NULL_TYPE_ID] = BuiltinTypeQNames.JS_NULL_TYPE_QNAME;
}
public SchemaType getSchemaTypeById(int id) {
return types[id];
}
public boolean isBuiltinTypeId(int id) {
return id < BuiltinTypeConstants.BUILTIN_TYPE_COUNT;
}
public boolean isBuiltinType(SchemaType type) {
return isBuiltinTypeId(type.getTypeId());
}
public SchemaType getBuiltinBaseType(SchemaType type) {
while (!isBuiltinType(type)) {
type = type.getBaseType();
}
return type;
}
public QName getTypeName(int id) {
return typeNames[id];
}
public static final Map<QName, SchemaType> TYPE_MAP;
static {
Map<QName, SchemaType> typeMap = new LinkedHashMap<QName, SchemaType>();
typeMap.put(BuiltinTypeQNames.XS_ANY_SIMPLE_TYPE_QNAME, AnySimpleType.INSTANCE);
typeMap.put(BuiltinTypeQNames.XS_ANY_ATOMIC_TYPE_QNAME, XS_ANY_ATOMIC);
typeMap.put(BuiltinTypeQNames.XS_STRING_TYPE_QNAME, XS_STRING);
typeMap.put(BuiltinTypeQNames.XS_NORMALIZED_STRING_TYPE_QNAME, XS_NORMALIZED_STRING);
typeMap.put(BuiltinTypeQNames.XS_TOKEN_TYPE_QNAME, XS_TOKEN);
typeMap.put(BuiltinTypeQNames.XS_LANGUAGE_TYPE_QNAME, XS_LANGUAGE);
typeMap.put(BuiltinTypeQNames.XS_NMTOKEN_TYPE_QNAME, XS_NMTOKEN);
typeMap.put(BuiltinTypeQNames.XS_NAME_TYPE_QNAME, XS_NAME);
typeMap.put(BuiltinTypeQNames.XS_NCNAME_TYPE_QNAME, XS_NCNAME);
typeMap.put(BuiltinTypeQNames.XS_ID_TYPE_QNAME, XS_ID);
typeMap.put(BuiltinTypeQNames.XS_IDREF_TYPE_QNAME, XS_IDREF);
typeMap.put(BuiltinTypeQNames.XS_ENTITY_TYPE_QNAME, XS_ENTITY);
typeMap.put(BuiltinTypeQNames.XS_UNTYPED_ATOMIC_TYPE_QNAME, XS_UNTYPED_ATOMIC);
typeMap.put(BuiltinTypeQNames.XS_DATETIME_TYPE_QNAME, XS_DATETIME);
typeMap.put(BuiltinTypeQNames.XS_DATE_TYPE_QNAME, XS_DATE);
typeMap.put(BuiltinTypeQNames.XS_TIME_TYPE_QNAME, XS_TIME);
typeMap.put(BuiltinTypeQNames.XS_DURATION_TYPE_QNAME, XS_DURATION);
typeMap.put(BuiltinTypeQNames.XS_YEAR_MONTH_DURATION_TYPE_QNAME, XS_YEAR_MONTH_DURATION);
typeMap.put(BuiltinTypeQNames.XS_DAY_TIME_DURATION_TYPE_QNAME, XS_DAY_TIME_DURATION);
typeMap.put(BuiltinTypeQNames.XSEXT_NUMERIC_TYPE_QNAME, XSEXT_NUMERIC);
typeMap.put(BuiltinTypeQNames.XS_FLOAT_TYPE_QNAME, XS_FLOAT);
typeMap.put(BuiltinTypeQNames.XS_DOUBLE_TYPE_QNAME, XS_DOUBLE);
typeMap.put(BuiltinTypeQNames.XS_DECIMAL_TYPE_QNAME, XS_DECIMAL);
typeMap.put(BuiltinTypeQNames.XS_INTEGER_TYPE_QNAME, XS_INTEGER);
typeMap.put(BuiltinTypeQNames.XS_NON_POSITIVE_INTEGER_TYPE_QNAME, XS_NON_POSITIVE_INTEGER);
typeMap.put(BuiltinTypeQNames.XS_NEGATIVE_INTEGER_TYPE_QNAME, XS_NEGATIVE_INTEGER);
typeMap.put(BuiltinTypeQNames.XS_LONG_TYPE_QNAME, XS_LONG);
typeMap.put(BuiltinTypeQNames.XS_INT_TYPE_QNAME, XS_INT);
typeMap.put(BuiltinTypeQNames.XS_SHORT_TYPE_QNAME, XS_SHORT);
typeMap.put(BuiltinTypeQNames.XS_BYTE_TYPE_QNAME, XS_BYTE);
typeMap.put(BuiltinTypeQNames.XS_NON_NEGATIVE_INTEGER_TYPE_QNAME, XS_NON_NEGATIVE_INTEGER);
typeMap.put(BuiltinTypeQNames.XS_UNSIGNED_LONG_TYPE_QNAME, XS_UNSIGNED_LONG);
typeMap.put(BuiltinTypeQNames.XS_UNSIGNED_INT_TYPE_QNAME, XS_UNSIGNED_INT);
typeMap.put(BuiltinTypeQNames.XS_UNSIGNED_SHORT_TYPE_QNAME, XS_UNSIGNED_SHORT);
typeMap.put(BuiltinTypeQNames.XS_UNSIGNED_BYTE_TYPE_QNAME, XS_UNSIGNED_BYTE);
typeMap.put(BuiltinTypeQNames.XS_POSITIVE_INTEGER_TYPE_QNAME, XS_POSITIVE_INTEGER);
typeMap.put(BuiltinTypeQNames.XS_G_YEAR_MONTH_TYPE_QNAME, XS_G_YEAR_MONTH);
typeMap.put(BuiltinTypeQNames.XS_G_YEAR_TYPE_QNAME, XS_G_YEAR);
typeMap.put(BuiltinTypeQNames.XS_G_MONTH_DAY_TYPE_QNAME, XS_G_MONTH_DAY);
typeMap.put(BuiltinTypeQNames.XS_G_DAY_TYPE_QNAME, XS_G_DAY);
typeMap.put(BuiltinTypeQNames.XS_G_MONTH_TYPE_QNAME, XS_G_MONTH);
typeMap.put(BuiltinTypeQNames.XS_BOOLEAN_TYPE_QNAME, XS_BOOLEAN);
typeMap.put(BuiltinTypeQNames.XS_BASE64_BINARY_TYPE_QNAME, XS_BASE64_BINARY);
typeMap.put(BuiltinTypeQNames.XS_HEX_BINARY_TYPE_QNAME, XS_HEX_BINARY);
typeMap.put(BuiltinTypeQNames.XS_ANY_URI_TYPE_QNAME, XS_ANY_URI);
typeMap.put(BuiltinTypeQNames.XS_QNAME_TYPE_QNAME, XS_QNAME);
typeMap.put(BuiltinTypeQNames.XS_NOTATION_TYPE_QNAME, XS_NOTATION);
TYPE_MAP = Collections.unmodifiableMap(typeMap);
}
}