package org.codehaus.xfire.aegis.type; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Method; import javax.xml.namespace.QName; /** * @author Dan Diephouse */ public interface TypeCreator { /** * Get the mapped name of a method parameter. * @param m * @param index * @return */ QName getElementName(Method m, int index); Type createType(Method m, int index); Type createType(PropertyDescriptor pd); Type createType(Field f); Type createType(Class clazz); /** * this function allowed to construct a aegis Type from an interface * java.lang.reflect.Type. * this function is added to handle geniricity such as * Map. * @param type * @return */ Type createType(java.lang.reflect.Type type); void setTypeMapping(TypeMapping typeMapping); }