Example #1
0
        private void FinalizeCurrentObject(bool @explicit)
        {
            if (_stateMachine.Current != Kv1TextReaderState.InObjectBeforeKey && _stateMachine.Current != Kv1TextReaderState.InObjectAfterValue)
            {
                throw new InvalidOperationException(
                          string.Format(
                              CultureInfo.InvariantCulture,
                              "Attempted to finalize object while in state {0}.",
                              _stateMachine.Current));
            }

            _stateMachine.PopObject(out var discard);

            if (_stateMachine.IsInObject)
            {
                _stateMachine.Push(Kv1TextReaderState.InObjectAfterValue);
            }

            if (discard)
            {
                _listener.DiscardCurrentObject();
            }
            else if (@explicit)
            {
                _listener.OnObjectEnd();
            }
        }
Example #2
0
        void FinalizeCurrentObject(bool @explicit)
        {
            if (stateMachine.Current != KV1TextReaderState.InObjectBeforeKey && stateMachine.Current != KV1TextReaderState.InObjectAfterValue)
            {
                throw new InvalidOperationException($"Attempted to finalize object while in state {stateMachine.Current}.");
            }

            stateMachine.PopObject(out var discard);

            if (stateMachine.IsInObject)
            {
                stateMachine.Push(KV1TextReaderState.InObjectAfterValue);
            }

            if (discard)
            {
                listener.DiscardCurrentObject();
            }
            if (@explicit)
            {
                listener.OnObjectEnd();
            }
        }