
org.objectweb.celtix.tools.common.model.JavaMethod Maven / Gradle / Ivy
The newest version!
package org.objectweb.celtix.tools.common.model;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import javax.jws.soap.SOAPBinding;
import javax.wsdl.OperationType;
import org.objectweb.celtix.common.i18n.Message;
import org.objectweb.celtix.common.logging.LogUtils;
import org.objectweb.celtix.tools.common.ToolException;
import org.objectweb.celtix.tools.extensions.jaxws.JAXWSBinding;
import org.objectweb.celtix.tools.processors.wsdl2.WSDLToProcessor;
public class JavaMethod {
private static final Logger LOG = LogUtils.getL7dLogger(WSDLToProcessor.class);
private String name;
private String operationName;
private JavaReturn javaReturn;
private OperationType style;
private String soapAction;
private SOAPBinding.Style soapStyle;
private SOAPBinding.Use soapUse;
private WSDLParameter requestParameter;
private WSDLParameter responseParameter;
private boolean wrapperStyle;
private final JavaInterface javaInterface;
private final List parameters = new ArrayList();
private final List exceptions = new ArrayList();
private final Map annotations = new HashMap();
private final List wsdlExceptions = new ArrayList();
private JAXWSBinding jaxwsBinding = new JAXWSBinding();
private JAXWSBinding bindingExt = new JAXWSBinding();
public JavaMethod() {
this.javaInterface = null;
}
public JavaMethod(JavaInterface i) {
this.javaInterface = i;
}
public void clear() {
parameters.clear();
javaReturn = null;
}
public String getSignature() {
StringBuffer sb = new StringBuffer();
sb.append(javaReturn.getName());
sb.append("#");
sb.append(javaInterface.getPackageName());
sb.append(".");
sb.append(javaInterface.getName());
sb.append("#");
sb.append(name);
sb.append("[");
for (JavaParameter param : parameters) {
sb.append(param.getName());
sb.append(",");
}
sb.append("]");
return sb.toString();
}
public JavaInterface getInterface() {
return this.javaInterface;
}
public String getName() {
return name;
}
public void setName(String n) {
this.name = n;
}
public String getOperationName() {
return this.operationName;
}
public void setOperationName(String arg) {
this.operationName = arg;
}
public JavaReturn getReturn() {
return javaReturn;
}
public void setReturn(JavaReturn rt) {
this.javaReturn = rt;
}
public boolean hasParameter(String paramName) {
for (int i = 0; i < parameters.size(); i++) {
if (paramName.equals((parameters.get(i)).getName())) {
return true;
}
}
return false;
}
private void removeParameter(JavaParameter param) {
parameters.remove(param);
}
public void addParameter(JavaParameter param) {
if (hasParameter(param.getName())) {
JavaParameter paramInList = getParameter(param.getName());
if (paramInList.isIN() || paramInList.isINOUT()) {
removeParameter(paramInList);
} else {
Message message = new Message("PARAMETER_ALREADY_EXIST", LOG, param.getName());
throw new ToolException(message);
}
}
parameters.add(param);
}
public JavaParameter getParameter(String paramName) {
for (int i = 0; i < parameters.size(); i++) {
JavaParameter jParam = parameters.get(i);
if (paramName.equals(jParam.getName())) {
return jParam;
}
}
return null;
}
public List getParameters() {
return parameters;
}
public int getParameterCount() {
return parameters.size();
}
public boolean hasException(JavaException exception) {
return exceptions.contains(exception);
}
public void addException(JavaException exception) {
if (hasException(exception)) {
Message message = new Message("EXCEPTION_ALREADY_EXIST", LOG, exception.getName());
throw new ToolException(message);
}
exceptions.add(exception);
}
public List getExceptions() {
return exceptions;
}
public OperationType getStyle() {
return this.style;
}
public void setStyle(OperationType ot) {
this.style = ot;
}
public boolean isOneWay() {
return OperationType.ONE_WAY.equals(getStyle());
}
public boolean isWrapperStyle() {
return this.wrapperStyle;
}
public void setWrapperStyle(boolean w) {
this.wrapperStyle = w;
}
public void setSoapStyle(SOAPBinding.Style sty) {
this.soapStyle = sty;
}
public SOAPBinding.Style getSoapStyle() {
return this.soapStyle;
}
public void setSoapAction(String action) {
this.soapAction = action;
}
public String getSoapAction() {
return this.soapAction;
}
public void setSoapUse(SOAPBinding.Use u) {
this.soapUse = u;
}
public SOAPBinding.Use getSoapUse() {
return this.soapUse;
}
public void addAnnotation(String tag, JavaAnnotation annotation) {
if (annotation == null) {
return;
}
this.annotations.put(tag, annotation);
}
public Collection getAnnotations() {
return this.annotations.values();
}
public Map getAnnotationMap() {
return this.annotations;
}
public void addWSDLException(WSDLException exception) {
if (wsdlExceptions.contains(exception)) {
Message message = new Message("EXCEPTION_ALREADY_EXIST", LOG,
exception.getDetailType().getName());
throw new ToolException(message);
}
wsdlExceptions.add(exception);
}
public List getWSDLExceptions() {
return wsdlExceptions;
}
public void addRequest(WSDLParameter param) {
this.requestParameter = param;
}
public WSDLParameter getRequest() {
return this.requestParameter;
}
public void addResponse(WSDLParameter param) {
this.responseParameter = param;
}
public WSDLParameter getResponse() {
return this.responseParameter;
}
public List getParameterList() {
return getParameterList(true);
}
public List getParameterListWithoutAnnotation() {
return getParameterList(false);
}
public List getParameterList(boolean includeAnnotation) {
List list = new ArrayList();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < parameters.size(); i++) {
JavaParameter parameter = parameters.get(i);
if (includeAnnotation) {
list.add(parameter.getAnnotation().toString());
}
sb.setLength(0);
if (parameter.isHolder()) {
sb.append(parameter.getHolderName());
sb.append("<");
sb.append(parameter.getHolderClass());
sb.append(">");
} else {
sb.append(parameter.getClassName());
}
sb.append(" ");
sb.append(parameter.getName());
if (i != (parameters.size() - 1)) {
sb.append(',');
}
list.add(sb.toString());
}
return list;
}
public JAXWSBinding getJAXWSBinding() {
return this.jaxwsBinding;
}
public void setJAXWSBinding(JAXWSBinding binding) {
if (binding != null) {
this.jaxwsBinding = binding;
}
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("\n========================\n");
sb.append("\nMethod:");
sb.append(getName());
sb.append("\n-----------\n");
sb.append("\nReturn:");
sb.append(getReturn());
sb.append("\n------------\n");
sb.append("\nParameter:");
sb.append(getParameterList());
sb.append("\n------------\n");
sb.append("\nAnnotations:");
sb.append(getAnnotations());
sb.append("\n========================\n");
return sb.toString();
}
public JAXWSBinding getBindingExt() {
return bindingExt;
}
public void setBindingExt(JAXWSBinding pBindingExt) {
this.bindingExt = pBindingExt;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy