001    package railo.runtime.net.rpc;
002    
003    import javax.xml.namespace.QName;
004    import javax.xml.rpc.encoding.TypeMapping;
005    import javax.xml.rpc.encoding.TypeMappingRegistry;
006    
007    import org.apache.axis.encoding.ser.BeanDeserializerFactory;
008    import org.apache.axis.encoding.ser.BeanSerializerFactory;
009    
010    import coldfusion.xml.rpc.QueryBean;
011    
012    public class TypeMappingUtil {
013    
014            public static void registerDefaults(TypeMappingRegistry tmr) { 
015                    TypeMapping tm = tmr.getDefaultTypeMapping();
016                    if(!tm.isRegistered(QueryBean.class, RPCConstants.QUERY_QNAME))
017                            tm.register(QueryBean.class, 
018                    RPCConstants.QUERY_QNAME,
019                    new BeanSerializerFactory(QueryBean.class,RPCConstants.QUERY_QNAME),
020                    new BeanDeserializerFactory(QueryBean.class,RPCConstants.QUERY_QNAME));
021            }
022            
023            public static void registerBeanTypeMapping(javax.xml.rpc.encoding.TypeMapping tm, Class clazz, QName qName) {
024                    
025                    if(tm.isRegistered(clazz, qName)) return;
026                    tm.register(
027                            clazz, 
028                            qName, 
029                            new BeanSerializerFactory(clazz, qName), 
030                            new BeanDeserializerFactory(clazz, qName));
031                    
032                    
033            }
034            
035    }