TextEvent() private method

private TextEvent ( int state, string text, bool disableOutputEscaping ) : Processor.OutputResult
state int
text string
disableOutputEscaping bool
return Processor.OutputResult
Ejemplo n.º 1
0
        internal bool TextEvent(string text, bool disableOutputEscaping)
        {
            Debug.Assert(_xsm != null);

            if (_ignoreLevel > 0)
            {
                return(true);
            }

            int stateOutlook = _xsm.BeginOutlook(XPathNodeType.Text);

            switch (_builder.TextEvent(stateOutlook, text, disableOutputEscaping))
            {
            case OutputResult.Continue:
                _xsm.Begin(XPathNodeType.Text);
                Debug.Assert(StateMachine.StateOnly(stateOutlook) == _xsm.State);
                Debug.Assert(ExecutionResult == ExecResult.Continue);
                return(true);

            case OutputResult.Interrupt:
                _xsm.Begin(XPathNodeType.Text);
                Debug.Assert(StateMachine.StateOnly(stateOutlook) == _xsm.State);
                ExecutionResult = ExecResult.Interrupt;
                return(true);

            case OutputResult.Overflow:
                ExecutionResult = ExecResult.Interrupt;
                return(false);

            case OutputResult.Error:
            case OutputResult.Ignore:
                return(true);

            default:
                Debug.Fail("Unexpected result of RecordBuilder.TextEvent()");
                return(true);
            }
        }