Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataWeb / Server / System / Data / Services / Serializers / IndentedTextWriter.cs / 1 / IndentedTextWriter.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Provides a writer implementation for Json format
//
//
// @owner [....]
//---------------------------------------------------------------------
namespace System.Data.Services.Serializers
{
using System;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Text;
/// Writes the Json text in indented format.
///
/// There are many more methods implemented in previous versions
/// of this file to handle more type and newline cases.
///
internal sealed class IndentedTextWriter : TextWriter
{
/// writer to which Json text needs to be written
private TextWriter writer;
/// keeps track of the indentLevel
private int indentLevel;
/// keeps track of pending tabs
private bool tabsPending;
/// string representation of tab
private string tabString;
///
/// Creates a new instance of IndentedTextWriter over the given text writer
///
/// writer which IndentedTextWriter wraps
public IndentedTextWriter(TextWriter writer) : base(CultureInfo.InvariantCulture)
{
this.writer = writer;
this.tabString = " ";
}
/// Returns the Encoding for the given writer
public override Encoding Encoding
{
get
{
return this.writer.Encoding;
}
}
/// Returns the new line character
public override string NewLine
{
get
{
return this.writer.NewLine;
}
}
/// returns the current indent level
public int Indent
{
get
{
return this.indentLevel;
}
set
{
Debug.Assert(value >= 0, "value >= 0");
if (value < 0)
{
value = 0;
}
this.indentLevel = value;
}
}
/// Closes the underlying writer
public override void Close()
{
this.writer.Close();
}
/// Clears all the buffer of the current writer
public override void Flush()
{
this.writer.Flush();
}
///
/// Writes the given string value to the underlying writer
///
/// string value to be written
public override void Write(string s)
{
this.OutputTabs();
this.writer.Write(s);
}
///
/// Writes the given char value to the underlying writer
///
/// char value to be written
public override void Write(char value)
{
this.OutputTabs();
this.writer.Write(value);
}
///
/// Writes the trimmed text if minimizeWhiteSpeace is set to true
///
/// string value to be written
public void WriteTrimmed(string text)
{
this.Write(text);
}
/// Writes the tabs depending on the indent level
private void OutputTabs()
{
if (this.tabsPending)
{
for (int i = 0; i < this.indentLevel; i++)
{
this.writer.Write(this.tabString);
}
this.tabsPending = false;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Provides a writer implementation for Json format
//
//
// @owner [....]
//---------------------------------------------------------------------
namespace System.Data.Services.Serializers
{
using System;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Text;
/// Writes the Json text in indented format.
///
/// There are many more methods implemented in previous versions
/// of this file to handle more type and newline cases.
///
internal sealed class IndentedTextWriter : TextWriter
{
/// writer to which Json text needs to be written
private TextWriter writer;
/// keeps track of the indentLevel
private int indentLevel;
/// keeps track of pending tabs
private bool tabsPending;
/// string representation of tab
private string tabString;
///
/// Creates a new instance of IndentedTextWriter over the given text writer
///
/// writer which IndentedTextWriter wraps
public IndentedTextWriter(TextWriter writer) : base(CultureInfo.InvariantCulture)
{
this.writer = writer;
this.tabString = " ";
}
/// Returns the Encoding for the given writer
public override Encoding Encoding
{
get
{
return this.writer.Encoding;
}
}
/// Returns the new line character
public override string NewLine
{
get
{
return this.writer.NewLine;
}
}
/// returns the current indent level
public int Indent
{
get
{
return this.indentLevel;
}
set
{
Debug.Assert(value >= 0, "value >= 0");
if (value < 0)
{
value = 0;
}
this.indentLevel = value;
}
}
/// Closes the underlying writer
public override void Close()
{
this.writer.Close();
}
/// Clears all the buffer of the current writer
public override void Flush()
{
this.writer.Flush();
}
///
/// Writes the given string value to the underlying writer
///
/// string value to be written
public override void Write(string s)
{
this.OutputTabs();
this.writer.Write(s);
}
///
/// Writes the given char value to the underlying writer
///
/// char value to be written
public override void Write(char value)
{
this.OutputTabs();
this.writer.Write(value);
}
///
/// Writes the trimmed text if minimizeWhiteSpeace is set to true
///
/// string value to be written
public void WriteTrimmed(string text)
{
this.Write(text);
}
/// Writes the tabs depending on the indent level
private void OutputTabs()
{
if (this.tabsPending)
{
for (int i = 0; i < this.indentLevel; i++)
{
this.writer.Write(this.tabString);
}
this.tabsPending = false;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ServerProtocol.cs
- SharedPerformanceCounter.cs
- MediaContext.cs
- MobileControlDesigner.cs
- TableAdapterManagerGenerator.cs
- SubMenuStyle.cs
- EntityFunctions.cs
- ControlCachePolicy.cs
- SystemFonts.cs
- TemplatedWizardStep.cs
- DiscoveryMessageSequenceGenerator.cs
- PaperSource.cs
- ObjectIDGenerator.cs
- HttpClientCertificate.cs
- CaseStatement.cs
- PatternMatcher.cs
- HttpApplicationFactory.cs
- PathGeometry.cs
- SetStoryboardSpeedRatio.cs
- BuildDependencySet.cs
- Deserializer.cs
- SqlConnectionFactory.cs
- VScrollProperties.cs
- StructureChangedEventArgs.cs
- BaseResourcesBuildProvider.cs
- ObjectListComponentEditor.cs
- PropertyDescriptor.cs
- Marshal.cs
- ExpressionBindings.cs
- FixedSOMSemanticBox.cs
- DbMetaDataFactory.cs
- ProcessProtocolHandler.cs
- Attributes.cs
- ActivityMarkupSerializer.cs
- BlurBitmapEffect.cs
- ContentPlaceHolder.cs
- GetPageNumberCompletedEventArgs.cs
- QilName.cs
- BindingContext.cs
- RepeaterItemCollection.cs
- BitmapInitialize.cs
- DurableRuntimeValidator.cs
- RegexGroup.cs
- TrackBarRenderer.cs
- DecoderBestFitFallback.cs
- WebPartDeleteVerb.cs
- AgileSafeNativeMemoryHandle.cs
- ProxyDataContractResolver.cs
- TableParagraph.cs
- TemplateControl.cs
- XmlAttributeProperties.cs
- figurelengthconverter.cs
- ErrorStyle.cs
- NavigationPropertyEmitter.cs
- AspCompat.cs
- WebPartVerbsEventArgs.cs
- XmlWriter.cs
- RegexMatchCollection.cs
- Grant.cs
- DataGridViewIntLinkedList.cs
- EventTask.cs
- OracleCommandBuilder.cs
- SessionStateSection.cs
- IUnknownConstantAttribute.cs
- CompilerLocalReference.cs
- SingleAnimationUsingKeyFrames.cs
- DataGridViewLayoutData.cs
- MachineKeyConverter.cs
- DataRowChangeEvent.cs
- CustomWebEventKey.cs
- ErrorFormatter.cs
- EdmProviderManifest.cs
- CellCreator.cs
- SecurityToken.cs
- ImportContext.cs
- ToolStripRendererSwitcher.cs
- StickyNoteAnnotations.cs
- WebScriptServiceHostFactory.cs
- UnsafeMethods.cs
- PopupRootAutomationPeer.cs
- DashStyle.cs
- DiscoveryClientReferences.cs
- SourceInterpreter.cs
- TrackingAnnotationCollection.cs
- AttributeEmitter.cs
- NullReferenceException.cs
- PeerNameRegistration.cs
- SamlAssertion.cs
- WmpBitmapEncoder.cs
- XmlIterators.cs
- OverlappedContext.cs
- ReturnType.cs
- UntypedNullExpression.cs
- ChangePassword.cs
- RtfToXamlLexer.cs
- SmtpReplyReaderFactory.cs
- TableCellCollection.cs
- NumberFormatInfo.cs
- CustomWebEventKey.cs
- StylusPlugin.cs