package org.bndtools.utils.jdt;
import java.util.Iterator;
import java.util.List;
import org.eclipse.jdt.core.dom.ITypeBinding;
import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
public class ASTUtil {
public static String buildMethodSignature(MethodDeclaration method) {
StringBuilder builder = new StringBuilder();
builder.append(method.getName());
builder.append('(');
@SuppressWarnings("unchecked")
List<SingleVariableDeclaration> params = method.parameters();
for (Iterator<SingleVariableDeclaration> iter = params.iterator(); iter.hasNext();) {
String paramType;
SingleVariableDeclaration param = iter.next();
ITypeBinding typeBinding = param.getType().resolveBinding();
if (typeBinding != null)
paramType = typeBinding.getBinaryName();
else
paramType = param.getName().getIdentifier();
builder.append(paramType);
if (iter.hasNext())
builder.append(",");
}
builder.append(')');
return builder.toString();
}
}