parameter = (JavaParameter) ja;
} else {
throw new RuntimeException("WebParamAnnotator only annotate the JavaParameter");
}
JavaMethod method = parameter.getMethod();
JavaAnnotation webParamAnnotation = new JavaAnnotation("WebParam");
String name = parameter.getName();
String targetNamespace = method.getInterface().getNamespace();
String partName = null;
if (method.getSoapStyle() == SOAPBinding.Style.DOCUMENT
|| parameter.isHeader()) {
targetNamespace = parameter.getTargetNamespace();
if (parameter.getQName() != null) {
name = parameter.getQName().getLocalPart();
}
if (!method.isWrapperStyle()) {
partName = parameter.getPartName();
}
}
if (method.getSoapStyle() == SOAPBinding.Style.RPC) {
name = parameter.getPartName();
partName = parameter.getPartName();
}
if (partName != null) {
webParamAnnotation.addArgument("partName", partName);
}
if (parameter.getStyle() == JavaType.Style.OUT || parameter.getStyle() == JavaType.Style.INOUT) {
webParamAnnotation.addArgument("mode", "Mode." + parameter.getStyle().toString(), "");
}
webParamAnnotation.addArgument("name", name);
if (method.getSoapStyle() == SOAPBinding.Style.DOCUMENT || parameter.isHeader()) {
webParamAnnotation.addArgument("targetNamespace", targetNamespace);
}
parameter.setAnnotation(webParamAnnotation);
}