Implementation of Parser API
        Relies on the underlying registry of parsers to provide the best parsing plan
        :param desired_type:
        :param filesystem_object:
        :param logger:
        :param log_only_last: a flag to only log the last part of the file path (default False)
        :return:

def _create_parsing_plan(self, desired_type: Type[T], filesystem_object: PersistedObject, logger: Logger,
                             log_only_last: bool = False) -> ParsingPlan[T]:
        """
        Implementation of Parser API
        Relies on the underlying registry of parsers to provide the best parsing plan
        :param desired_type:
        :param filesystem_object:
        :param logger:
        :param log_only_last: a flag to only log the last part of the file path (default False)
        :return:
        """
        # find the parser for this object
        t, combined_parser = self.build_parser_for_fileobject_and_desiredtype(filesystem_object, desired_type,
                                                                           logger=logger)
        # ask the parser for the parsing plan
        return combined_parser.create_parsing_plan(t, filesystem_object, logger)