/* * 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.axis2.schema.typemap; import org.apache.axis2.schema.SchemaConstants; import javax.xml.namespace.QName; import java.util.HashMap; import java.util.Map; /** * The C type map. uses a static map for caching */ public class CTypeMap implements TypeMap{ private static Map typeMap = new HashMap(); // Type map for the standard schema types public Map getTypeMap(){ return typeMap; } static { // If SOAP 1.1 over the wire, map wrapper classes to XSD primitives. CTypeMap.addTypemapping(SchemaConstants.XSD_STRING, "axis2_char_t*"); // The XSD Primitives are mapped to axis2/c primitives. CTypeMap.addTypemapping(SchemaConstants.XSD_BOOLEAN, "axis2_bool_t"); CTypeMap.addTypemapping(SchemaConstants.XSD_DOUBLE, "double"); CTypeMap.addTypemapping(SchemaConstants.XSD_FLOAT, "float"); CTypeMap.addTypemapping(SchemaConstants.XSD_INT, "int"); CTypeMap.addTypemapping(SchemaConstants.XSD_INTEGER, "int"); CTypeMap.addTypemapping(SchemaConstants.XSD_LONG, "int64_t"); CTypeMap.addTypemapping(SchemaConstants.XSD_SHORT, "short"); CTypeMap.addTypemapping(SchemaConstants.XSD_BYTE, "axis2_byte_t"); CTypeMap.addTypemapping(SchemaConstants.XSD_ANY, "axiom_node_t*"); CTypeMap.addTypemapping(SchemaConstants.XSD_DECIMAL, "double"); CTypeMap.addTypemapping(SchemaConstants.XSD_ANYTYPE, "axiom_node_t*"); CTypeMap.addTypemapping(SchemaConstants.XSD_QNAME, "axutil_qname_t*"); CTypeMap.addTypemapping(SchemaConstants.XSD_DATE, "axutil_date_time_t*"); CTypeMap.addTypemapping(SchemaConstants.XSD_TIME, "axutil_date_time_t*"); CTypeMap.addTypemapping(SchemaConstants.XSD_DATETIME, "axutil_date_time_t*"); CTypeMap.addTypemapping(SchemaConstants.XSD_BASE64, "axutil_base64_binary_t*"); CTypeMap.addTypemapping(SchemaConstants.XSD_HEXBIN, "axiom_node_t*"); // These are the g* types (gYearMonth, etc) which map to Axis types // These types are mapped to an integer CTypeMap.addTypemapping(SchemaConstants.XSD_YEARMONTH, "axutil_date_time_t*"); CTypeMap.addTypemapping(SchemaConstants.XSD_YEAR, "int"); CTypeMap.addTypemapping(SchemaConstants.XSD_MONTH, "int"); CTypeMap.addTypemapping(SchemaConstants.XSD_DAY, "int"); CTypeMap.addTypemapping(SchemaConstants.XSD_MONTHDAY, "axutil_date_time_t*"); // xsd:token CTypeMap.addTypemapping(SchemaConstants.XSD_TOKEN, "axis2_char_t*"); // a xsd:normalizedString CTypeMap.addTypemapping(SchemaConstants.XSD_NORMALIZEDSTRING, "axis2_char_t*"); // a xsd:unsignedLong CTypeMap.addTypemapping(SchemaConstants.XSD_UNSIGNEDLONG, "uint64_t"); // a xsd:unsignedInt CTypeMap.addTypemapping(SchemaConstants.XSD_UNSIGNEDINT, "unsigned int"); // a xsd:unsignedShort CTypeMap.addTypemapping(SchemaConstants.XSD_UNSIGNEDSHORT, "unsigned short"); // a xsd:unsignedByte CTypeMap.addTypemapping(SchemaConstants.XSD_UNSIGNEDBYTE, "axis2_unsigned_byte_t"); // a xsd:nonNegativeInteger CTypeMap.addTypemapping(SchemaConstants.XSD_NONNEGATIVEINTEGER, "unsigned int"); // a xsd:negativeInteger CTypeMap.addTypemapping(SchemaConstants.XSD_NEGATIVEINTEGER, "int"); // a xsd:positiveInteger CTypeMap.addTypemapping(SchemaConstants.XSD_POSITIVEINTEGER, "unsigned int"); // a xsd:nonPositiveInteger CTypeMap.addTypemapping(SchemaConstants.XSD_NONPOSITIVEINTEGER, "unsigned int"); // a xsd:Name CTypeMap.addTypemapping(SchemaConstants.XSD_NAME, "axis2_char_t*"); // a xsd:NCName CTypeMap.addTypemapping(SchemaConstants.XSD_NCNAME, "axis2_char_t*"); // a xsd:ID CTypeMap.addTypemapping(SchemaConstants.XSD_ID, "axis2_char_t*"); // a xsd:language CTypeMap.addTypemapping(SchemaConstants.XSD_LANGUAGE, "axis2_char_t*"); // a xsd:NmToken CTypeMap.addTypemapping(SchemaConstants.XSD_NMTOKEN, "axis2_char_t*"); // a xsd:NmTokens CTypeMap.addTypemapping(SchemaConstants.XSD_NMTOKENS, "axis2_char_t*"); // a xsd:NOTATION CTypeMap.addTypemapping(SchemaConstants.XSD_NOTATION, "axiom_node_t*"); // a xsd:XSD_ENTITY CTypeMap.addTypemapping(SchemaConstants.XSD_ENTITY, "axis2_char_t*"); // a xsd:XSD_ENTITIES CTypeMap.addTypemapping(SchemaConstants.XSD_ENTITIES, "axis2_char_t*"); // a xsd:XSD_IDREF CTypeMap.addTypemapping(SchemaConstants.XSD_IDREF, "axis2_char_t*"); // a xsd:XSD_XSD_IDREFS CTypeMap.addTypemapping(SchemaConstants.XSD_IDREFS, "axis2_char_t*"); // a xsd:Duration CTypeMap.addTypemapping(SchemaConstants.XSD_DURATION, "axutil_duration_t*"); // a xsd:anyURI CTypeMap.addTypemapping(SchemaConstants.XSD_ANYURI, "axutil_uri_t*"); } private static void addTypemapping(QName name, String str) { CTypeMap.typeMap.put(name, str); } }