<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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))