All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy