package org.qi4j.api.util; import java.lang.reflect.Method; import java.lang.reflect.Type; import org.qi4j.functional.Function; import org.qi4j.functional.Specification; import static org.qi4j.functional.Iterables.iterable; /** * Useful methods for handling Methods. */ public class Methods { public static final Specification<Type> HAS_METHODS = new Specification<Type>() { @Override public boolean satisfiedBy( Type item ) { return Classes.RAW_CLASS.map( item ).getDeclaredMethods().length > 0; } }; public static final Function<Type, Iterable<Method>> METHODS_OF = Classes.forTypes( new Function<Type, Iterable<Method>>() { @Override public Iterable<Method> map( Type type ) { return iterable( Classes.RAW_CLASS.map( type ).getDeclaredMethods() ); } } ); }