def init(self, switch_configuration, terminal_controller, logger, piping_processor, *args):
        """
        :type switch_configuration: fake_switches.switch_configuration.SwitchConfiguration
        :type terminal_controller: fake_switches.terminal.TerminalController
        :type logger: logging.Logger
        :type piping_processor: fake_switches.command_processing.piping_processor_base.PipingProcessorBase
        """

        self.switch_configuration = switch_configuration
        self.terminal_controller = terminal_controller
        self.logger = logger
        self.piping_processor = piping_processor
        self.sub_processor = None
        self.continuing_to = None
        self.is_done = False
        self.replace_input = False
        self.awaiting_keystroke = False
:type switch_configuration: fake_switches.switch_configuration.SwitchConfiguration
        :type terminal_controller: fake_switches.terminal.TerminalController
        :type logger: logging.Logger
        :type piping_processor: fake_switches.command_processing.piping_processor_base.PipingProcessorBase