@abstractmethod<EOL><INDENT>def create_parsing_plan(self, desired_type: Type[T], filesystem_object: PersistedObject, logger: Logger,<EOL>options: Dict[str, Dict[str, Any]]) -> ParsingPlan[T]:<DEDENT>
pass<EOL>
Creates a parsing plan to parse the given filesystem object into the given desired_type.
Implementing classes may wish to support additional parameters.

:param desired_type: the type of object that should be created as the output of parsing plan execution.
:param filesystem_object: the persisted object that should be parsed
:param logger: an optional logger to log all parsing plan creation and execution information
:param options: a dictionary additional implementation-specific parameters (one dict per parser id).
Implementing classes may use 'self._get_applicable_options()' to get the options that are of interest for this
parser.
:return: