⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 annotatedtypeinfo.java

📁 Xfire文件 用于开发web service 的一个开源工具 很好用的
💻 JAVA
字号:
package org.codehaus.xfire.aegis.type.java5;import java.beans.PropertyDescriptor;import javax.xml.namespace.QName;import org.codehaus.xfire.aegis.type.Type;import org.codehaus.xfire.aegis.type.TypeMapping;import org.codehaus.xfire.aegis.type.basic.BeanTypeInfo;import org.codehaus.xfire.util.NamespaceHelper;public class AnnotatedTypeInfo    extends BeanTypeInfo{    public AnnotatedTypeInfo(TypeMapping tm, Class typeClass, String ns)    {        super(typeClass, ns);        setTypeMapping(tm);                initialize();    }        /**     * Override from parent in order to check for IgnoreProperty annotation.     */    protected void mapProperty(PropertyDescriptor pd)    {        if (isIgnored(pd))            return; // do not map ignored properties        String name = pd.getName();        if (isAttribute(pd))        {            mapAttribute(name, createMappedName(pd));        }        else if (isElement(pd))        {            mapElement(name, createMappedName(pd));        }    }         @Override    protected boolean registerType(PropertyDescriptor desc)    {        XmlAttribute att = desc.getReadMethod().getAnnotation(XmlAttribute.class);        if (att != null && att.type() != Type.class) return false;                XmlElement el = desc.getReadMethod().getAnnotation(XmlElement.class);        if (el != null && el.type() != Type.class) return false;                return super.registerType(desc);    }    protected boolean isIgnored(PropertyDescriptor desc)    {        return desc.getReadMethod().isAnnotationPresent(IgnoreProperty.class);    }             protected boolean isAttribute(PropertyDescriptor desc)    {        return desc.getReadMethod().isAnnotationPresent(XmlAttribute.class);    }    protected boolean isElement(PropertyDescriptor desc)    {        return !isAttribute(desc);    }    protected boolean isAnnotatedElement(PropertyDescriptor desc)    {        return desc.getReadMethod().isAnnotationPresent(XmlElement.class);    }            @Override    protected QName createMappedName(PropertyDescriptor desc)    {        return createQName(desc);    }    protected QName createQName(PropertyDescriptor desc)    {        String name = null;        String ns = null;                XmlType xtype = (XmlType) getTypeClass().getAnnotation(XmlType.class);        if (xtype != null)        {            ns = xtype.namespace();        }        if (isAttribute(desc))        {            XmlAttribute att = desc.getReadMethod().getAnnotation(XmlAttribute.class);            name = att.name();            if (att.namespace().length() > 0) ns = att.namespace();        }        else if (isAnnotatedElement(desc))        {            XmlElement att = desc.getReadMethod().getAnnotation(XmlElement.class);            name = att.name();            if (att.namespace().length() > 0) ns = att.namespace();        }                if (name == null || name.length() == 0)            name = desc.getName();                if (ns == null || ns.length() == 0)            ns = NamespaceHelper.makeNamespaceFromClassName( getTypeClass().getName(), "http");                return new QName(ns, name);    }    public boolean isNillable(QName name)    {        PropertyDescriptor desc = getPropertyDescriptorFromMappedName(name);                if (isAnnotatedElement(desc))        {            XmlElement att = desc.getReadMethod().getAnnotation(XmlElement.class);            return att.nillable();        }        else        {            return super.isNillable(name);        }    }        public int getMinOccurs ( QName name )    {        PropertyDescriptor desc = getPropertyDescriptorFromMappedName(name);                if (isAnnotatedElement(desc))        {            XmlElement att = desc.getReadMethod().getAnnotation(XmlElement.class);            String minOccurs = att.minOccurs();            if ( minOccurs != null && minOccurs.length() > 0 )            {                return Integer.parseInt( minOccurs );            }        }        return super.getMinOccurs(name);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -