'Create a result parser sending different arguments for diff parsers.
Args:
processor_obj: A Processor object that inherits from Parser.
responses: A list of, or single response depending on the processors
process_together setting.
responses_obj: The responses object itself.
artifact_name: Name of the artifact that generated the responses.
source: The source responsible for producing the responses.
aff4_output_map: dict of where to write results in aff4
output_collection_map: dict of collections when splitting by artifact
Raises:
RuntimeError: On bad parser.'

def _ParseResponses(self, processor_obj, responses, responses_obj, artifact_name, source, aff4_output_map, output_collection_map):

    _ = responses_obj
    result_iterator = artifact.ApplyParserToResponses(processor_obj, responses, source, self, self.token)
    artifact_return_types = self._GetArtifactReturnTypes(source)
    if result_iterator:
        for result in result_iterator:
            result_type = result.__class__.__name__
            if (result_type == 'Anomaly'):
                if self.args.store_results_in_aff4:
                    self._StoreAnomaly(result)
                self.SendReply(result)
            elif ((not artifact_return_types) or (result_type in artifact_return_types)):
                self.state.response_count += 1
                self.SendReply(result)
                self._WriteResultToSplitCollection(result, artifact_name, output_collection_map)
                if self.args.store_results_in_aff4:
                    self._WriteResultToMappedAFF4Location(result, artifact_name, aff4_output_map)
