package org.apache.axis2.schema.typemap; | |
import org.apache.axiom.om.OMElement; | |
import org.apache.axis2.databinding.types.Day; | |
import org.apache.axis2.databinding.types.Duration; | |
import org.apache.axis2.databinding.types.Entities; | |
import org.apache.axis2.databinding.types.Entity; | |
import org.apache.axis2.databinding.types.HexBinary; | |
import org.apache.axis2.databinding.types.IDRef; | |
import org.apache.axis2.databinding.types.IDRefs; | |
import org.apache.axis2.databinding.types.Id; | |
import org.apache.axis2.databinding.types.Language; | |
import org.apache.axis2.databinding.types.Month; | |
import org.apache.axis2.databinding.types.MonthDay; | |
import org.apache.axis2.databinding.types.NCName; | |
import org.apache.axis2.databinding.types.NMToken; | |
import org.apache.axis2.databinding.types.NMTokens; | |
import org.apache.axis2.databinding.types.Name; | |
import org.apache.axis2.databinding.types.NegativeInteger; | |
import org.apache.axis2.databinding.types.NonNegativeInteger; | |
import org.apache.axis2.databinding.types.NonPositiveInteger; | |
import org.apache.axis2.databinding.types.NormalizedString; | |
import org.apache.axis2.databinding.types.Notation; | |
import org.apache.axis2.databinding.types.PositiveInteger; | |
import org.apache.axis2.databinding.types.Time; | |
import org.apache.axis2.databinding.types.Token; | |
import org.apache.axis2.databinding.types.URI; | |
import org.apache.axis2.databinding.types.UnsignedByte; | |
import org.apache.axis2.databinding.types.UnsignedInt; | |
import org.apache.axis2.databinding.types.UnsignedLong; | |
import org.apache.axis2.databinding.types.UnsignedShort; | |
import org.apache.axis2.databinding.types.Year; | |
import org.apache.axis2.databinding.types.YearMonth; | |
import org.apache.axis2.schema.SchemaConstants; | |
import javax.xml.namespace.QName; | |
import java.math.BigDecimal; | |
import java.util.HashMap; | |
import java.util.Map; | |
/* | |
* Copyright 2004,2005 The Apache Software Foundation. | |
* | |
* 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. | |
*/ | |
/** | |
* The java type map. uses a static map for caching | |
* Most code from Axis 1 Codebase | |
*/ | |
public class JavaTypeMap implements TypeMap { | |
public Map getTypeMap() { | |
return typeMap; | |
} | |
private static Map typeMap = new HashMap(); | |
static { | |
// If SOAP 1.1 over the wire, map wrapper classes to XSD primitives. | |
addTypemapping(SchemaConstants.XSD_STRING, | |
java.lang.String.class.getName()); | |
// The XSD Primitives are mapped to java primitives. | |
addTypemapping(SchemaConstants.XSD_BOOLEAN, boolean.class.getName()); | |
addTypemapping(SchemaConstants.XSD_DOUBLE, double.class.getName()); | |
addTypemapping(SchemaConstants.XSD_FLOAT, float.class.getName()); | |
addTypemapping(SchemaConstants.XSD_INT, int.class.getName()); | |
addTypemapping(SchemaConstants.XSD_INTEGER, | |
java.math.BigInteger.class.getName()); | |
addTypemapping(SchemaConstants.XSD_LONG, long.class.getName()); | |
addTypemapping(SchemaConstants.XSD_SHORT, short.class.getName()); | |
addTypemapping(SchemaConstants.XSD_BYTE, byte.class.getName()); | |
addTypemapping(SchemaConstants.XSD_ANY, OMElement.class.getName()); | |
addTypemapping(SchemaConstants.XSD_DECIMAL, BigDecimal.class.getName()); | |
//anytype is mapped to the OMElement instead of the java.lang.Object | |
addTypemapping(SchemaConstants.XSD_ANYTYPE, | |
OMElement.class.getName()); | |
//Qname maps to jax rpc QName class | |
addTypemapping(SchemaConstants.XSD_QNAME, | |
javax.xml.namespace.QName.class.getName()); | |
//xsd Date is mapped to the java.util.date! | |
addTypemapping(SchemaConstants.XSD_DATE, | |
java.util.Date.class.getName()); | |
// Mapping for xsd:time. Map to Axis type Time | |
addTypemapping(SchemaConstants.XSD_TIME, | |
Time.class.getName()); | |
addTypemapping(SchemaConstants.XSD_DATETIME, | |
java.util.Calendar.class.getName()); | |
//as for the base 64 encoded binary stuff we map it to a javax. | |
// activation.Datahandler object | |
addTypemapping(SchemaConstants.XSD_BASE64, | |
javax.activation.DataHandler.class.getName()); | |
addTypemapping(SchemaConstants.XSD_HEXBIN, | |
HexBinary.class.getName()); | |
// These are the g* types (gYearMonth, etc) which map to Axis types | |
addTypemapping(SchemaConstants.XSD_YEARMONTH, | |
YearMonth.class.getName()); | |
addTypemapping(SchemaConstants.XSD_YEAR, | |
Year.class.getName()); | |
addTypemapping(SchemaConstants.XSD_MONTH, | |
Month.class.getName()); | |
addTypemapping(SchemaConstants.XSD_DAY, | |
Day.class.getName()); | |
addTypemapping(SchemaConstants.XSD_MONTHDAY, | |
MonthDay.class.getName()); | |
// xsd:token | |
addTypemapping(SchemaConstants.XSD_TOKEN, Token.class.getName()); | |
// a xsd:normalizedString | |
addTypemapping(SchemaConstants.XSD_NORMALIZEDSTRING, | |
NormalizedString.class.getName()); | |
// a xsd:unsignedLong | |
addTypemapping(SchemaConstants.XSD_UNSIGNEDLONG, | |
UnsignedLong.class.getName()); | |
// a xsd:unsignedInt | |
addTypemapping(SchemaConstants.XSD_UNSIGNEDINT, | |
UnsignedInt.class.getName()); | |
// a xsd:unsignedShort | |
addTypemapping(SchemaConstants.XSD_UNSIGNEDSHORT, | |
UnsignedShort.class.getName()); | |
// a xsd:unsignedByte | |
addTypemapping(SchemaConstants.XSD_UNSIGNEDBYTE, | |
UnsignedByte.class.getName()); | |
// a xsd:nonNegativeInteger | |
addTypemapping(SchemaConstants.XSD_NONNEGATIVEINTEGER, | |
NonNegativeInteger.class.getName()); | |
// a xsd:negativeInteger | |
addTypemapping(SchemaConstants.XSD_NEGATIVEINTEGER, | |
NegativeInteger.class.getName()); | |
// a xsd:positiveInteger | |
addTypemapping(SchemaConstants.XSD_POSITIVEINTEGER, | |
PositiveInteger.class.getName()); | |
// a xsd:nonPositiveInteger | |
addTypemapping(SchemaConstants.XSD_NONPOSITIVEINTEGER, | |
NonPositiveInteger.class.getName()); | |
// a xsd:Name | |
addTypemapping(SchemaConstants.XSD_NAME, Name.class.getName()); | |
// a xsd:NCName | |
addTypemapping(SchemaConstants.XSD_NCNAME, NCName.class.getName()); | |
// a xsd:ID | |
addTypemapping(SchemaConstants.XSD_ID, Id.class.getName()); | |
// a xml:lang | |
// addTypemapping(SchemaConstants.XML_LANG,Language.class.getName()); | |
// a xsd:language | |
addTypemapping(SchemaConstants.XSD_LANGUAGE, Language.class.getName()); | |
// a xsd:NmToken | |
addTypemapping(SchemaConstants.XSD_NMTOKEN, NMToken.class.getName()); | |
// a xsd:NmTokens | |
addTypemapping(SchemaConstants.XSD_NMTOKENS, NMTokens.class.getName()); | |
// a xsd:NOTATION | |
addTypemapping(SchemaConstants.XSD_NOTATION, Notation.class.getName()); | |
// a xsd:XSD_ENTITY | |
addTypemapping(SchemaConstants.XSD_ENTITY, Entity.class.getName()); | |
// a xsd:XSD_ENTITIES | |
addTypemapping(SchemaConstants.XSD_ENTITIES, Entities.class.getName()); | |
// a xsd:XSD_IDREF | |
addTypemapping(SchemaConstants.XSD_IDREF, IDRef.class.getName()); | |
// a xsd:XSD_XSD_IDREFS | |
addTypemapping(SchemaConstants.XSD_IDREFS, IDRefs.class.getName()); | |
// a xsd:Duration | |
addTypemapping(SchemaConstants.XSD_DURATION, Duration.class.getName()); | |
// a xsd:anyURI | |
addTypemapping(SchemaConstants.XSD_ANYURI, URI.class.getName()); | |
} | |
private static void addTypemapping(QName name, String str) { | |
typeMap.put(name, str); | |
} | |
} |