package org.springframework.roo.classpath.details;
import org.springframework.roo.model.JavaSymbolName;
import org.springframework.roo.model.JavaType;
/**
* Metadata concerning a particular method.
*
* @author Ben Alex
* @since 1.0
*/
public interface MethodMetadata extends InvocableMemberMetadata {
/**
* @return the name of the method (never null)
*/
JavaSymbolName getMethodName();
/**
* @return the return type (never null, even if void)
*/
JavaType getReturnType();
/**
* Indicates whether this method has the same name (case-sensitive) as any
* of the given methods
*
* @param otherMethods the methods to check against; can be empty or contain
* <code>null</code> elements, which will be ignored
* @return see above
* @since 1.2.0
*/
boolean hasSameName(final MethodMetadata... otherMethods);
/**
* Indicates whether this method is static
*
* @return see above
* @since 1.2.0
*/
boolean isStatic();
}