package org.robobinding.function; import java.lang.reflect.Method; import java.text.MessageFormat; import java.util.List; import org.robobinding.util.Joiner; import org.robobinding.util.Lists; /** * @since 1.0 * @author Cheng Wei * */ public class MethodDescription { private final Class<?> targetType; private final Method method; public MethodDescription(Class<?> targetType, Method method) { this.targetType = targetType; this.method = method; } @Override public String toString() { List<String> parameterTypesInString = getParameterTypesInString(); return MessageFormat.format("{0} {1}.{2}({3})", method.getReturnType().getName(), targetType.getName(), method.getName(), Joiner.on(", ").join(parameterTypesInString)); } private List<String> getParameterTypesInString() { List<String> parameterTypesInString = Lists.newArrayList(); for (Class<?> parameterType : method.getParameterTypes()) { parameterTypesInString.add(parameterType.getName()); } return parameterTypesInString; } }