def build_parser_for_fileobject_and_desiredtype(self, obj_on_filesystem: PersistedObject, object_type: Type[T],
                                                    logger: Logger = None) -> Parser:
        """
        Returns the most appropriate parser to use to parse object obj_on_filesystem as an object of type object_type

        :param obj_on_filesystem: the filesystem object to parse
        :param object_type: the type of object that the parser is expected to produce
        :param logger:
        :return:
        """
        pass