📄 defaultsoapencodingtypemappingimpl.java
字号:
/* * Copyright 2001-2004 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. */package org.apache.axis.encoding;import org.apache.axis.Constants;import org.apache.axis.MessageContext;import org.apache.axis.encoding.ser.Base64SerializerFactory;import org.apache.axis.encoding.ser.Base64DeserializerFactory;import org.apache.axis.encoding.ser.ArraySerializerFactory;import org.apache.axis.encoding.ser.ArrayDeserializerFactory;/** * * This is the implementation of the axis Default JAX-RPC SOAP Encoding TypeMapping * See DefaultTypeMapping for more information. * * @author Rich Scheuerle (scheu@us.ibm.com) */public class DefaultSOAPEncodingTypeMappingImpl extends DefaultTypeMappingImpl { private static DefaultSOAPEncodingTypeMappingImpl tm = null; /** * Construct TypeMapping */ public static synchronized TypeMappingImpl getSingleton() { if (tm == null) { tm = new DefaultSOAPEncodingTypeMappingImpl(); } return tm; } public static TypeMappingDelegate createWithDelegate() { TypeMappingDelegate ret = new TypeMappingDelegate(new DefaultSOAPEncodingTypeMappingImpl()); MessageContext mc = MessageContext.getCurrentContext(); TypeMappingDelegate tm = null; if (mc != null) { tm = (TypeMappingDelegate)mc.getTypeMappingRegistry().getDefaultTypeMapping(); } else { tm = DefaultTypeMappingImpl.getSingletonDelegate(); } ret.setNext(tm); return ret; } protected DefaultSOAPEncodingTypeMappingImpl() { super(true); registerSOAPTypes(); } /** * Register the SOAP encoding data types. This is split out into a * method so it can happen either before or after the XSD mappings. */ private void registerSOAPTypes() { // SOAP Encoded strings are treated as primitives. // Everything else is not. myRegisterSimple(Constants.SOAP_STRING, java.lang.String.class); myRegisterSimple(Constants.SOAP_BOOLEAN, java.lang.Boolean.class); myRegisterSimple(Constants.SOAP_DOUBLE, java.lang.Double.class); myRegisterSimple(Constants.SOAP_FLOAT, java.lang.Float.class); myRegisterSimple(Constants.SOAP_INT, java.lang.Integer.class); myRegisterSimple(Constants.SOAP_INTEGER, java.math.BigInteger.class); myRegisterSimple(Constants.SOAP_DECIMAL, java.math.BigDecimal.class); myRegisterSimple(Constants.SOAP_LONG, java.lang.Long.class); myRegisterSimple(Constants.SOAP_SHORT, java.lang.Short.class); myRegisterSimple(Constants.SOAP_BYTE, java.lang.Byte.class); myRegister(Constants.SOAP_BASE64, byte[].class, new Base64SerializerFactory(byte[].class, Constants.SOAP_BASE64), new Base64DeserializerFactory(byte[].class, Constants.SOAP_BASE64) ); myRegister(Constants.SOAP_BASE64BINARY, byte[].class, new Base64SerializerFactory(byte[].class, Constants.SOAP_BASE64BINARY), new Base64DeserializerFactory(byte[].class, Constants.SOAP_BASE64BINARY) ); myRegister(Constants.SOAP_ARRAY12, java.util.Collection.class, new ArraySerializerFactory(), new ArrayDeserializerFactory() ); myRegister(Constants.SOAP_ARRAY12, java.util.ArrayList.class, new ArraySerializerFactory(), new ArrayDeserializerFactory() ); myRegister(Constants.SOAP_ARRAY12, Object[].class, new ArraySerializerFactory(), new ArrayDeserializerFactory() ); myRegister(Constants.SOAP_ARRAY, java.util.ArrayList.class, new ArraySerializerFactory(), new ArrayDeserializerFactory() ); // All array objects automatically get associated with the SOAP_ARRAY. // There is no way to do this with a hash table, // so it is done directly in getTypeQName. // Internally the runtime uses ArrayList objects to hold arrays... // which is the reason that ArrayList is associated with SOAP_ARRAY. // In addition, handle all objects that implement the List interface // as a SOAP_ARRAY myRegister(Constants.SOAP_ARRAY, java.util.Collection.class, new ArraySerializerFactory(), new ArrayDeserializerFactory() ); myRegister(Constants.SOAP_ARRAY, Object[].class, new ArraySerializerFactory(), new ArrayDeserializerFactory() ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -