public BsonJsonWriter( TextWriter writer, BsonJsonWriterSettings settings ) { this.textWriter = writer; this.settings = settings; context = new BsonJsonWriterContext(null, ContextType.TopLevel, ""); state = BsonWriteState.Initial; }
public BsonJsonWriter( TextWriter writer, BsonJsonWriterSettings settings ) { this.textWriter = writer; this.settings = settings; context = null; state = BsonWriteState.Initial; }
public override void Close() { // Close can be called on Disposed objects if (state != BsonWriteState.Closed) { Flush(); if (settings.CloseOutput) { textWriter.Close(); } context = null; state = BsonWriteState.Closed; } }
public override void WriteStartDocument() { if (disposed) { throw new ObjectDisposedException("BsonJsonWriter"); } if (state != BsonWriteState.Value && state != BsonWriteState.Initial && state != BsonWriteState.ScopeDocument) { var message = string.Format("WriteStartDocument cannot be called when WriterState is: {0}", state); throw new InvalidOperationException(message); } if (state == BsonWriteState.Value || state == BsonWriteState.ScopeDocument) { WriteNameHelper(name); } textWriter.Write("{"); var contextType = (state == BsonWriteState.ScopeDocument) ? ContextType.ScopeDocument : ContextType.Document; context = new BsonJsonWriterContext(context, contextType, settings.IndentChars); state = BsonWriteState.Name; }
public override void WriteStartArray() { if (disposed) { throw new ObjectDisposedException("BsonJsonWriter"); } if (state != BsonWriteState.Value && state != BsonWriteState.Initial) { var message = string.Format("WriteStartArray cannot be called when WriterState is: {0}", state); throw new InvalidOperationException(message); } WriteNameHelper(name); textWriter.Write("["); context = new BsonJsonWriterContext(context, ContextType.Array, settings.IndentChars); state = BsonWriteState.Value; }
public override void WriteEndDocument() { if (disposed) { throw new ObjectDisposedException("BsonJsonWriter"); } if (state != BsonWriteState.Name) { var message = string.Format("WriteDateTime cannot be called when WriterState is: {0}", state); throw new InvalidOperationException(message); } if (settings.Indent && context.HasElements) { textWriter.Write(settings.NewLineChars); if (context.ParentContext != null) { textWriter.Write(context.ParentContext.Indentation); } textWriter.Write("}"); } else { textWriter.Write(" }"); } if (context.ContextType == ContextType.ScopeDocument) { context = context.ParentContext; WriteEndDocument(); } else { context = context.ParentContext; } if (context == null) { state = BsonWriteState.Done; } else { state = GetNextState(); } }
public override void WriteEndArray() { if (disposed) { throw new ObjectDisposedException("BsonJsonWriter"); } if (state != BsonWriteState.Value) { var message = string.Format("WriteEndArray cannot be called when WriterState is: {0}", state); throw new InvalidOperationException(message); } textWriter.Write("]"); context = context.ParentContext; state = GetNextState(); }