public function process($input)
    {
        if (!isset($this->_rules[$this->_currentState])) {
            include_once 'Zend/Search/Exception.php';
            throw new Zend_Search_Exception('There is no any rule for current state (' . $this->_currentState . ').');
        }
        if (!isset($this->_rules[$this->_currentState][$input])) {
            include_once 'Zend/Search/Exception.php';
            throw new Zend_Search_Exception('There is no any rule for {current state, input} pair (' . $this->_currentState . ', ' . $input . ').');
        }

        $sourceState = $this->_currentState;
        $targetState = $this->_rules[$this->_currentState][$input];

        if ($sourceState != $targetState  &&  isset($this->_exitActions[$sourceState])) {
            foreach ($this->_exitActions[$sourceState] as $action) {
                $action->doAction();
            }
        }
        if (isset($this->_inputActions[$sourceState]) 
            && isset($this->_inputActions[$sourceState][$input])
        ) {
            foreach ($this->_inputActions[$sourceState][$input] as $action) {
                $action->doAction();
            }
        }


        $this->_currentState = $targetState;

        if (isset($this->_transitionActions[$sourceState]) 
            && isset($this->_transitionActions[$sourceState][$targetState])
        ) {
            foreach ($this->_transitionActions[$sourceState][$targetState] as $action) {
                $action->doAction();
            }
        }
        if ($sourceState != $targetState  &&  isset($this->_entryActions[$targetState])) {
            foreach ($this->_entryActions[$targetState] as $action) {
                $action->doAction();
            }
        }
    }
public function process($input)
    {
        if (!isset($this->_rules[$this->_currentState])) {
            include_once 'Zend/Search/Exception.php';
            throw new Zend_Search_Exception('There is no any rule for current state (' . $this->_currentState . ').');
        }
        if (!isset($this->_rules[$this->_currentState][$input])) {
            include_once 'Zend/Search/Exception.php';
            throw new Zend_Search_Exception('There is no any rule for {current state, input} pair (' . $this->_currentState . ', ' . $input . ').');
        }

        $sourceState = $this->_currentState;
        $targetState = $this->_rules[$this->_currentState][$input];

        if ($sourceState != $targetState  &&  isset($this->_exitActions[$sourceState])) {
            foreach ($this->_exitActions[$sourceState] as $action) {
                $action->doAction();
            }
        }
        if (isset($this->_inputActions[$sourceState]) 
            && isset($this->_inputActions[$sourceState][$input])
        ) {
            foreach ($this->_inputActions[$sourceState][$input] as $action) {
                $action->doAction();
            }
        }


        $this->_currentState = $targetState;

        if (isset($this->_transitionActions[$sourceState]) 
            && isset($this->_transitionActions[$sourceState][$targetState])
        ) {
            foreach ($this->_transitionActions[$sourceState][$targetState] as $action) {
                $action->doAction();
            }
        }
        if ($sourceState != $targetState  &&  isset($this->_entryActions[$targetState])) {
            foreach ($this->_entryActions[$targetState] as $action) {
                $action->doAction();
            }
        }
    }
public function process ( $ input ) { if ( ! isset ( $ this -> _rules [ $ this -> _currentState ] ) ) { include_once 'Zend/Search/Exception.php' ; throw new Zend_Search_Exception ( 'There is no any rule for current state (' . $ this -> _currentState . ').' ) ; } if ( ! isset ( $ this -> _rules [ $ this -> _currentState ] [ $ input ] ) ) { include_once 'Zend/Search/Exception.php' ; throw new Zend_Search_Exception ( 'There is no any rule for {current state, input} pair (' . $ this -> _currentState . ', ' . $ input . ').' ) ; } $ sourceState = $ this -> _currentState ; $ targetState = $ this -> _rules [ $ this -> _currentState ] [ $ input ] ; if ( $ sourceState != $ targetState && isset ( $ this -> _exitActions [ $ sourceState ] ) ) { foreach ( $ this -> _exitActions [ $ sourceState ] as $ action ) { $ action -> doAction ( ) ; } } if ( isset ( $ this -> _inputActions [ $ sourceState ] ) && isset ( $ this -> _inputActions [ $ sourceState ] [ $ input ] ) ) { foreach ( $ this -> _inputActions [ $ sourceState ] [ $ input ] as $ action ) { $ action -> doAction ( ) ; } } $ this -> _currentState = $ targetState ; if ( isset ( $ this -> _transitionActions [ $ sourceState ] ) && isset ( $ this -> _transitionActions [ $ sourceState ] [ $ targetState ] ) ) { foreach ( $ this -> _transitionActions [ $ sourceState ] [ $ targetState ] as $ action ) { $ action -> doAction ( ) ; } } if ( $ sourceState != $ targetState && isset ( $ this -> _entryActions [ $ targetState ] ) ) { foreach ( $ this -> _entryActions [ $ targetState ] as $ action ) { $ action -> doAction ( ) ; } } }
Process an input

@param  mixed $input
@throws Zend_Search_Exception
Process an input