def _execute(self, logger: Logger, options: Dict[str, Dict[str, Any]]) -> T:
        """
        Implementation of the parent class method.
        Checks that self.parser is a _BaseParser, and calls the appropriate parsing method.

        :param logger:
        :param options:
        :return:
        """
        if isinstance(self.parser, _BaseParser):
            if (not self.is_singlefile) and self.parser.supports_multifile():
                return self.parser._parse_multifile(self.obj_type, self.obj_on_fs_to_parse,
                                                    self._get_children_parsing_plan(), logger, options)

            elif self.is_singlefile and self.parser.supports_singlefile():
                return self.parser._parse_singlefile(self.obj_type, self.get_singlefile_path(),
                                                     self.get_singlefile_encoding(), logger, options)
            else:
                raise _InvalidParserException.create(self.parser, self.obj_on_fs_to_parse)
        else:
            raise TypeError('Parser attached to this _BaseParsingPlan is not a ' + str(_BaseParser))
Implementation of the parent class method.
        Checks that self.parser is a _BaseParser, and calls the appropriate parsing method.

        :param logger:
        :param options:
        :return: