/// <summary> /// Attempts to complete the token being written /// </summary> /// <param name="tokenBeingWritten"></param> internal void AutoComplete(StepToken tokenBeingWritten) { logger.Debug(String.Format("AutoComplete( {0} ); //tokenBeingWritten : {1}; _currentState : {2}, _top : {3};", tokenBeingWritten, (int)tokenBeingWritten, _currentState, _top)); int token; switch (tokenBeingWritten) { default: token = (int)tokenBeingWritten; break; case StepToken.Integer: case StepToken.Float: case StepToken.String: case StepToken.Boolean: case StepToken.Enumeration: case StepToken.Overridden: case StepToken.Null: case StepToken.Undefined: case StepToken.Date: // a value is being written token = 7; break; } // gets new state based on the current state and what is being written State newState = stateArray[token][(int)_currentState]; /*logger.Debug(String.Format(CultureInfo.InvariantCulture, * "From a Current State, {0}, and attempting to write a token of {1} has resulted in a state of {2}", * _currentState.ToString(), tokenBeingWritten.ToString(), newState.ToString())); */ if (newState == State.Error) { throw new StepWriterException(String.Format(CultureInfo.InvariantCulture, "Token {0} in state {1} would result in an invalid Step object.", tokenBeingWritten.ToString(), _currentState.ToString())); } if ((_currentState == State.Entity || _currentState == State.Array) && tokenBeingWritten != StepToken.Comment) { WriteValueDelimiter(); } WriteState writeState = WriteState; _currentState = newState; }
/// <summary> /// Attempts to complete the token being written /// </summary> /// <param name="tokenBeingWritten"></param> internal void AutoComplete(StepToken tokenBeingWritten) { logger.Debug(String.Format("AutoComplete( {0} ); //tokenBeingWritten : {1}; _currentState : {2}, _top : {3};", tokenBeingWritten, (int)tokenBeingWritten, _currentState, _top)); int token; switch (tokenBeingWritten) { default: token = (int)tokenBeingWritten; break; case StepToken.Integer: case StepToken.Float: case StepToken.String: case StepToken.Boolean: case StepToken.Enumeration: case StepToken.Overridden: case StepToken.Null: case StepToken.Undefined: case StepToken.Date: // a value is being written token = 7; break; } // gets new state based on the current state and what is being written State newState = stateArray[token][(int)_currentState]; /*logger.Debug(String.Format(CultureInfo.InvariantCulture, "From a Current State, {0}, and attempting to write a token of {1} has resulted in a state of {2}", _currentState.ToString(), tokenBeingWritten.ToString(), newState.ToString())); */ if (newState == State.Error) throw new StepWriterException(String.Format(CultureInfo.InvariantCulture, "Token {0} in state {1} would result in an invalid Step object.", tokenBeingWritten.ToString(), _currentState.ToString())); if ((_currentState == State.Entity || _currentState == State.Array) && tokenBeingWritten != StepToken.Comment) { WriteValueDelimiter(); } WriteState writeState = WriteState; _currentState = newState; }
private void WriteToken(StepToken token, StringBuilder builder) { WriteText(token.ToString(this), builder); }