def METHOD_NAME(self, file_infos):
    """
    This function iterates over through the yielded file_info objects.  It
    determines the type of the file and applies pattern matching to
    determine if the rule applies.  While iterating though the patterns the
    file is assigned a boolean flag to determine if a file should be
    yielded on past the filer.  Anything identified by the exclude filter
    has its flag set to false.  Anything identified by the include filter
    has its flag set to True.  All files begin with the flag set to true.
    Rules listed at the end will overwrite flags thrown by rules listed
    before it.
    """
    for file_info in file_infos:
        file_path = file_info.src
        file_status = (file_info, True)
        for pattern, dst_pattern in zip(self.patterns, self.dst_patterns):
            current_file_status = self._match_pattern(pattern, file_info)
            if current_file_status is not None:
                file_status = current_file_status
            dst_current_file_status = self._match_pattern(dst_pattern, file_info)
            if dst_current_file_status is not None:
                file_status = dst_current_file_status
        LOG.debug("=%s final filtered status, should_include: %s",
                  file_path, file_status[1])
        if file_status[1]:
            yield file_info