public boolean matches( Class<?> clazz )
    {
        Class<?> current = clazz;
        while ( current != null )
        {
            for ( Method method : getDeclaredMethods( current ) )
            {
                if ( this.name.equals( method.getName() )
                    && Arrays.equals( this.argumentsType, method.getParameterTypes() ) )
                {
                    return true;
                }
            }
            current = current.getSuperclass();
        }
        return false;
    }