def METHOD_NAME(
    self,
    reports: List[Report],
    output_dir_path: str,
    parser,
    export_type: str,
    file_name: str
):
    """ Creates plist files from the parse result to the given output.
    It will generate a context free hash for each diagnostics.
    """
    output_dir = os.path.abspath(output_dir_path)
    file_to_report: Dict[str, List[Report]] = defaultdict(list)
    for report in reports:
        file_path = os.path.normpath(report.file.original_path)
        file_to_report[file_path].append(report)
    analyzer_info = AnalyzerInfo(name=self.TOOL_NAME)
    for file_path, file_reports in file_to_report.items():
        source_file = os.path.basename(file_path)
        file_hash = hashlib.md5(file_path.encode(errors='ignore')) \
            .hexdigest()
        out_file_name = file_name \
            .replace("{source_file}", source_file) \
            .replace("{analyzer}", self.TOOL_NAME) \
            .replace("{file_hash}", file_hash)
        out_file_name = f"{out_file_name}.{export_type}"
        out_file_path = os.path.join(output_dir, out_file_name)
        LOG.info("Create/modify plist file: '%s'.", out_file_path)
        LOG.debug(file_reports)
        data = parser.convert(file_reports, analyzer_info)
        parser.write(data, out_file_path)