|
Axis 2 example source code file (TypeTable.java)
The Axis 2 TypeTable.java source code/* * 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.description.java2wsdl; import org.apache.axiom.om.OMElement; import javax.xml.namespace.QName; import java.util.*; public class TypeTable { private static HashMap simpleTypetoxsd; public static final QName ANY_TYPE = new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "anyType", "xs"); private HashMap complexTypeMap; public TypeTable() { //complex type table is resetted every time this is //instantiated complexTypeMap = new HashMap(); } /* statically populate the simple type map - this is not likely to * change and we need not populate it over and over */ static{ populateSimpleTypes(); } /* populate the simpletype hashmap */ private static void populateSimpleTypes() { simpleTypetoxsd = new HashMap(); //todo pls use the types from org.apache.ws.commons.schema.constants.Constants simpleTypetoxsd.put("int", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "int", "xs")); simpleTypetoxsd.put("java.lang.String", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "string", "xs")); simpleTypetoxsd.put("boolean", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "boolean", "xs")); simpleTypetoxsd.put("float", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "float", "xs")); simpleTypetoxsd.put("double", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "double", "xs")); simpleTypetoxsd.put("short", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "short", "xs")); simpleTypetoxsd.put("long", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "long", "xs")); simpleTypetoxsd.put("byte", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "byte", "xs")); simpleTypetoxsd.put("char", ANY_TYPE); simpleTypetoxsd.put("java.lang.Integer", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "int", "xs")); simpleTypetoxsd.put("java.lang.Double", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "double", "xs")); simpleTypetoxsd.put("java.lang.Float", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "float", "xs")); simpleTypetoxsd.put("java.lang.Long", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "long", "xs")); simpleTypetoxsd.put("java.lang.Character", ANY_TYPE); simpleTypetoxsd.put("java.lang.Boolean", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "boolean", "xs")); simpleTypetoxsd.put("java.lang.Byte", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "byte", "xs")); simpleTypetoxsd.put("java.lang.Short", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "short", "xs")); simpleTypetoxsd.put("java.util.Date", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "dateTime", "xs")); simpleTypetoxsd.put("java.util.Calendar", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "dateTime", "xs")); // SQL date time simpleTypetoxsd.put("java.sql.Date", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "dateTime", "xs")); simpleTypetoxsd.put("java.sql.Time", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "time", "xs")); simpleTypetoxsd.put("java.sql.Timestamp", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "dateTime", "xs")); //consider BigDecimal, BigInteger, Day, Duration, Month, MonthDay, //Time, Year, YearMonth as SimpleType as well simpleTypetoxsd.put("java.math.BigDecimal", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "decimal", "xs")); simpleTypetoxsd.put("java.math.BigInteger", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "integer", "xs")); simpleTypetoxsd.put("org.apache.axis2.databinding.types.Day", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "gDay", "xs")); simpleTypetoxsd.put("org.apache.axis2.databinding.types.Duration", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "duration", "xs")); simpleTypetoxsd.put("org.apache.axis2.databinding.types.Month", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "gMonth", "xs")); simpleTypetoxsd.put("org.apache.axis2.databinding.types.MonthDay", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "gMonthDay", "xs")); simpleTypetoxsd.put("org.apache.axis2.databinding.types.Time", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "time", "xs")); simpleTypetoxsd.put("org.apache.axis2.databinding.types.Year", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "gYear", "xs")); simpleTypetoxsd.put("org.apache.axis2.databinding.types.YearMonth", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "gYearMonth", "xs")); simpleTypetoxsd.put("java.lang.Object", ANY_TYPE); // Any types simpleTypetoxsd.put(OMElement.class.getName(), ANY_TYPE); simpleTypetoxsd.put(ArrayList.class.getName(), ANY_TYPE); simpleTypetoxsd.put(Vector.class.getName(), ANY_TYPE); simpleTypetoxsd.put(List.class.getName(), ANY_TYPE); simpleTypetoxsd.put(HashMap.class.getName(), ANY_TYPE); simpleTypetoxsd.put(Hashtable.class.getName(), ANY_TYPE); //byteArrat simpleTypetoxsd.put("base64Binary", new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "base64Binary", "xs")); } /** * Return the schema type QName given the type class name * @param typeName the name of the type * @return the name of the simple type or null if it is not a simple type */ public QName getSimpleSchemaTypeName(String typeName) { QName qName = (QName) simpleTypetoxsd.get(typeName); if(qName == null){ if((typeName.startsWith("java.lang")||typeName.startsWith("javax.")) && !Exception.class.getName().equals(typeName)){ return ANY_TYPE; } } return qName; } /** * Return whether the given type is a simple type or not * @param typeName the name of the type * @return true if the type is a simple type */ public boolean isSimpleType(String typeName) { if (simpleTypetoxsd.keySet().contains(typeName)){ return true; }else if(typeName.startsWith("java.lang")||typeName.startsWith("javax.")){ return true; } return false; } /** * Return the complex type map * @return the map with complex types */ public Map getComplexSchemaMap() { return complexTypeMap; } public void addComplexSchema(String name, QName schemaType) { complexTypeMap.put(name, schemaType); } public QName getComplexSchemaType(String name) { return (QName) complexTypeMap.get(name); } /** * Get the qname for a type * first try the simple types if not try the complex types * @param typeName name of the type * @return the Qname for this type */ public QName getQNamefortheType(String typeName) { QName type = getSimpleSchemaTypeName(typeName); if (type == null) { type = getComplexSchemaType(typeName); } return type; } } Other Axis 2 examples (source code examples)Here is a short list of links related to this Axis 2 TypeTable.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.