org.nakedobjects.metamodel.facets.MethodRemover Maven / Gradle / Ivy
The newest version!
package org.nakedobjects.metamodel.facets;
import java.lang.reflect.Method;
import java.util.List;
/**
* Removes the methods from further processing by subsequent {@link Facet}s.
*/
public interface MethodRemover {
/**
* Locate all methods (that the implementation should somehow know about) that match the criteria and
* remove them from the implementation's list so that they are not considered for subsequent scans.
*
* @param methodScope
* - whethre looking for static (class) or instance-level methods.
* @return any methods that were removed.
*/
List removeMethods(
final MethodScope methodScope,
final String prefix,
final Class returnType,
final boolean canBeVoid,
final int paramCount);
/**
* Locate all methods (that the implementation should somehow know about) that match the criteria and
* remove them from the implementation's list so that they are not considered for subsequent scans.
*
* @param forClass
* - if true, then looking for static methods (otherwise instance methods).
*/
void removeMethod(MethodScope methodScope, String methodName, Class returnType, Class[] parameterTypes);
void removeMethod(Method method);
void removeMethods(List methods);
}