blob: 1d9b37615e3f19394b68b6f015892368b8b54f33 [file] [log] [blame]
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);
}
}