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

📄 jsr181webannotations.java

📁 Xfire文件 用于开发web service 的一个开源工具 很好用的
💻 JAVA
字号:
package org.codehaus.xfire.annotations.jsr181;import java.lang.annotation.Annotation;import java.lang.reflect.Method;import java.util.Arrays;import java.util.Collection;import java.util.Collections;import java.util.HashMap;import java.util.Map;import javax.jws.HandlerChain;import javax.jws.Oneway;import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebResult;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;import org.codehaus.xfire.XFireRuntimeException;import org.codehaus.xfire.annotations.EnableMTOM;import org.codehaus.xfire.annotations.FaultHandlers;import org.codehaus.xfire.annotations.HandlerChainAnnotation;import org.codehaus.xfire.annotations.InHandlers;import org.codehaus.xfire.annotations.OutHandlers;import org.codehaus.xfire.annotations.ServiceProperties;import org.codehaus.xfire.annotations.ServiceProperty;import org.codehaus.xfire.annotations.WebAnnotations;import org.codehaus.xfire.annotations.WebMethodAnnotation;import org.codehaus.xfire.annotations.WebParamAnnotation;import org.codehaus.xfire.annotations.WebResultAnnotation;import org.codehaus.xfire.annotations.WebServiceAnnotation;import org.codehaus.xfire.annotations.soap.SOAPBindingAnnotation;import org.codehaus.xfire.soap.SoapConstants;public class Jsr181WebAnnotations        implements WebAnnotations{    public boolean hasWebServiceAnnotation(Class clazz)    {        return clazz.isAnnotationPresent(WebService.class);    }    public WebServiceAnnotation getWebServiceAnnotation(Class clazz)    {        WebService webService = (WebService) clazz.getAnnotation(WebService.class);        if (webService != null)        {            WebServiceAnnotation annotation = new WebServiceAnnotation();            annotation.setEndpointInterface(webService.endpointInterface());            annotation.setName(webService.name());            annotation.setServiceName(webService.serviceName());            annotation.setTargetNamespace(webService.targetNamespace());            annotation.setPortName(webService.portName());            annotation.setWsdlLocation(webService.wsdlLocation());                        return annotation;        }        else        {            return null;        }    }    public boolean hasWebMethodAnnotation(Method method)    {        return method.isAnnotationPresent(WebMethod.class);    }    public WebMethodAnnotation getWebMethodAnnotation(Method method)    {        WebMethod webMethod = (WebMethod) method.getAnnotation(WebMethod.class);        if (webMethod != null)        {            WebMethodAnnotation annotation = new WebMethodAnnotation();            annotation.setAction(webMethod.action());            annotation.setOperationName(webMethod.operationName());            annotation.setExclude(webMethod.exclude());                        return annotation;        }        else        {            return null;        }    }    public boolean hasWebResultAnnotation(Method method)    {        return method.isAnnotationPresent(WebResult.class);    }    public WebResultAnnotation getWebResultAnnotation(Method method)    {        Annotation[][] annotations = method.getParameterAnnotations();        WebResult webResult = (WebResult) method.getAnnotation(WebResult.class);        if (webResult != null)        {            WebResultAnnotation annot = new WebResultAnnotation();            annot.setName(webResult.name());            annot.setTargetNamespace(webResult.targetNamespace());            annot.setHeader(webResult.header());            annot.setPartName(webResult.partName());                        return annot;        }        else        {            return null;        }    }    public boolean hasWebParamAnnotation(Method method, int parameter)    {        Annotation[][] annotations = method.getParameterAnnotations();        if (parameter >= annotations.length)        {            return false;        }        else        {            for (int i = 0; i < annotations[parameter].length; i++)            {                Annotation annotation = annotations[parameter][i];                if (annotation.annotationType().equals(WebParam.class))                {                    return true;                }            }            return false;        }    }    public WebParamAnnotation getWebParamAnnotation(Method method, int parameter)    {        Annotation[][] annotations = method.getParameterAnnotations();        if (parameter >= annotations.length)        {            return null;        }        WebParam webParam = null;        for (int i = 0; i < annotations[parameter].length; i++)        {            Annotation annotation = annotations[parameter][i];            if (annotation.annotationType().equals(WebParam.class))            {                webParam = (WebParam) annotations[parameter][i];                break;            }        }        if (webParam != null)        {            WebParamAnnotation annot = new WebParamAnnotation();            annot.setName(webParam.name());            annot.setTargetNamespace(webParam.targetNamespace());            annot.setHeader(webParam.header());            annot.setPartName(webParam.partName());                        if (webParam.mode() == WebParam.Mode.IN)            {                annot.setMode(WebParamAnnotation.MODE_IN);            }            else if (webParam.mode() == WebParam.Mode.INOUT)            {                annot.setMode(WebParamAnnotation.MODE_INOUT);            }            else if (webParam.mode() == WebParam.Mode.OUT)            {                annot.setMode(WebParamAnnotation.MODE_OUT);            }            return annot;        }        else        {            return null;        }    }    public boolean hasOnewayAnnotation(Method method)    {        return method.isAnnotationPresent(Oneway.class);    }    public boolean hasSOAPBindingAnnotation(Class clazz)    {        return clazz.isAnnotationPresent(SOAPBinding.class);    }    public SOAPBindingAnnotation getSOAPBindingAnnotation(Class clazz)    {        SOAPBinding binding = (SOAPBinding) clazz.getAnnotation(SOAPBinding.class);        SOAPBindingAnnotation annot = null;        if (binding != null)        {            annot = new SOAPBindingAnnotation();            if (binding.parameterStyle() == SOAPBinding.ParameterStyle.BARE)            {                annot.setParameterStyle(SOAPBindingAnnotation.PARAMETER_STYLE_BARE);            }            else if (binding.parameterStyle() == SOAPBinding.ParameterStyle.WRAPPED)            {                annot.setParameterStyle(SOAPBindingAnnotation.PARAMETER_STYLE_WRAPPED);            }            if (binding.style() == SOAPBinding.Style.DOCUMENT)            {                annot.setStyle(SOAPBindingAnnotation.STYLE_DOCUMENT);            }            else if (binding.style() == SOAPBinding.Style.RPC)            {                annot.setStyle(SOAPBindingAnnotation.STYLE_RPC);            }            if (binding.use() == SOAPBinding.Use.ENCODED)            {                annot.setUse(SOAPBindingAnnotation.USE_ENCODED);            }            else if (binding.use() == SOAPBinding.Use.LITERAL)            {                annot.setUse(SOAPBindingAnnotation.USE_LITERAL);            }        }        return annot;    }    public boolean hasHandlerChainAnnotation(Class clazz)    {        return clazz.isAnnotationPresent(HandlerChain.class);    }    public HandlerChainAnnotation getHandlerChainAnnotation(Class clazz)    {        HandlerChain handlerChain = (HandlerChain) clazz.getAnnotation(HandlerChain.class);        HandlerChainAnnotation annotation = null;        if (handlerChain != null)        {            annotation = new HandlerChainAnnotation(handlerChain.file(),                                                     handlerChain.name());        }        return annotation;    }	public Map getServiceProperties(Class clazz) {		Map properties = new HashMap();		ServiceProperties serviceProperties = (ServiceProperties) clazz.getAnnotation(ServiceProperties.class); 		if(serviceProperties  != null){			ServiceProperty[] props =serviceProperties.properties(); 			for(int i=0;i<props.length;i++){				ServiceProperty serviceProperty  = props[i];				if(!"".equals(serviceProperty.value()) && serviceProperty.list().length>0 ){					throw new XFireRuntimeException("Service property cant have set both value and list values");				}				if( !"".equals(serviceProperty.value()) ){				 properties.put(serviceProperty.key(),serviceProperty.value());				}else{					properties.put(serviceProperty.key(), Arrays.asList(serviceProperty.list()));						}							}		}		ServiceProperty serviceProperty = (ServiceProperty) clazz.getAnnotation(ServiceProperty.class); 		if(serviceProperty   !=null){			if( !"".equals(serviceProperty.value()) ){				 properties.put(serviceProperty.key(),serviceProperty.value());				}else{					properties.put(serviceProperty.key(), Arrays.asList(serviceProperty.list()));						}  		}		if(clazz.getAnnotation(EnableMTOM.class)!= null){			properties.put(SoapConstants.MTOM_ENABLED,"true");		}				return properties;	}    public Collection getFaultHandlers(Class clazz)    {        FaultHandlers faultHandlers = (FaultHandlers) clazz.getAnnotation(FaultHandlers.class);         if( faultHandlers != null ){                        return Arrays.asList(faultHandlers.handlers());        }        return Collections.EMPTY_LIST;            }    public Collection getInHandlers(Class clazz)    {        InHandlers inHandlers = (InHandlers) clazz.getAnnotation(InHandlers.class);         if( inHandlers != null ){                        return Arrays.asList(inHandlers.handlers());        }        return Collections.EMPTY_LIST;    }    public Collection getOutHandlers(Class clazz)    {        OutHandlers outHandlers = (OutHandlers) clazz.getAnnotation(OutHandlers.class);         if( outHandlers != null ){                        return Arrays.asList(outHandlers.handlers());        }        return Collections.EMPTY_LIST;    }}

⌨️ 快捷键说明

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