Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / CompMod / System / CodeDOM / Compiler / IndentTextWriter.cs / 1 / IndentTextWriter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.CodeDom.Compiler {
using System.Diagnostics;
using System;
using System.IO;
using System.Text;
using System.Security.Permissions;
using System.Globalization;
///
/// Provides a text writer that can indent new lines by a tabString token.
///
[PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
[PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust")]
public class IndentedTextWriter : TextWriter {
private TextWriter writer;
private int indentLevel;
private bool tabsPending;
private string tabString;
///
/// [To be supplied.]
///
public const string DefaultTabString = " ";
///
///
/// Initializes a new instance of using the specified
/// text writer and default tab string.
///
///
public IndentedTextWriter(TextWriter writer) : this(writer, DefaultTabString) {
}
///
///
/// Initializes a new instance of using the specified
/// text writer and tab string.
///
///
public IndentedTextWriter(TextWriter writer, string tabString): base(CultureInfo.InvariantCulture) {
this.writer = writer;
this.tabString = tabString;
indentLevel = 0;
tabsPending = false;
}
///
/// [To be supplied.]
///
public override Encoding Encoding {
get {
return writer.Encoding;
}
}
///
///
/// Gets or sets the new line character to use.
///
///
public override string NewLine {
get {
return writer.NewLine;
}
set {
writer.NewLine = value;
}
}
///
///
/// Gets or sets the number of spaces to indent.
///
///
public int Indent {
get {
return indentLevel;
}
set {
Debug.Assert(value >= 0, "Bogus Indent... probably caused by mismatched Indent++ and Indent--");
if (value < 0) {
value = 0;
}
indentLevel = value;
}
}
///
///
/// Gets or sets the TextWriter to use.
///
///
public TextWriter InnerWriter {
get {
return writer;
}
}
internal string TabString {
get { return tabString; }
}
///
///
/// Closes the document being written to.
///
///
public override void Close() {
writer.Close();
}
///
/// [To be supplied.]
///
public override void Flush() {
writer.Flush();
}
///
/// [To be supplied.]
///
protected virtual void OutputTabs() {
if (tabsPending) {
for (int i=0; i < indentLevel; i++) {
writer.Write(tabString);
}
tabsPending = false;
}
}
///
///
/// Writes a string
/// to the text stream.
///
///
public override void Write(string s) {
OutputTabs();
writer.Write(s);
}
///
///
/// Writes the text representation of a Boolean value to the text stream.
///
///
public override void Write(bool value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes a character to the text stream.
///
///
public override void Write(char value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes a
/// character array to the text stream.
///
///
public override void Write(char[] buffer) {
OutputTabs();
writer.Write(buffer);
}
///
///
/// Writes a subarray
/// of characters to the text stream.
///
///
public override void Write(char[] buffer, int index, int count) {
OutputTabs();
writer.Write(buffer, index, count);
}
///
///
/// Writes the text representation of a Double to the text stream.
///
///
public override void Write(double value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes the text representation of
/// a Single to the text
/// stream.
///
///
public override void Write(float value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes the text representation of an integer to the text stream.
///
///
public override void Write(int value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes the text representation of an 8-byte integer to the text stream.
///
///
public override void Write(long value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes the text representation of an object
/// to the text stream.
///
///
public override void Write(object value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes out a formatted string, using the same semantics as specified.
///
///
public override void Write(string format, object arg0) {
OutputTabs();
writer.Write(format, arg0);
}
///
///
/// Writes out a formatted string,
/// using the same semantics as specified.
///
///
public override void Write(string format, object arg0, object arg1) {
OutputTabs();
writer.Write(format, arg0, arg1);
}
///
///
/// Writes out a formatted string,
/// using the same semantics as specified.
///
///
public override void Write(string format, params object[] arg) {
OutputTabs();
writer.Write(format, arg);
}
///
///
/// Writes the specified
/// string to a line without tabs.
///
///
public void WriteLineNoTabs(string s) {
writer.WriteLine(s);
}
///
///
/// Writes the specified string followed by
/// a line terminator to the text stream.
///
///
public override void WriteLine(string s) {
OutputTabs();
writer.WriteLine(s);
tabsPending = true;
}
///
///
/// Writes a line terminator.
///
///
public override void WriteLine() {
OutputTabs();
writer.WriteLine();
tabsPending = true;
}
///
///
/// Writes the text representation of a Boolean followed by a line terminator to
/// the text stream.
///
///
public override void WriteLine(bool value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(char value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(char[] buffer) {
OutputTabs();
writer.WriteLine(buffer);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(char[] buffer, int index, int count) {
OutputTabs();
writer.WriteLine(buffer, index, count);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(double value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(float value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(int value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(long value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(object value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(string format, object arg0) {
OutputTabs();
writer.WriteLine(format, arg0);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(string format, object arg0, object arg1) {
OutputTabs();
writer.WriteLine(format, arg0, arg1);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(string format, params object[] arg) {
OutputTabs();
writer.WriteLine(format, arg);
tabsPending = true;
}
///
/// [To be supplied.]
///
[CLSCompliant(false)]
public override void WriteLine(UInt32 value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
internal void InternalOutputTabs() {
for (int i=0; i < indentLevel; i++) {
writer.Write(tabString);
}
}
}
internal class Indentation {
private IndentedTextWriter writer;
private int indent;
private string s;
internal Indentation(IndentedTextWriter writer, int indent) {
this.writer = writer;
this.indent = indent;
s = null;
}
internal string IndentationString {
get {
if ( s == null) {
string tabString = writer.TabString;
StringBuilder sb = new StringBuilder(indent * tabString.Length);
for( int i = 0; i < indent; i++) {
sb.Append(tabString);
}
s = sb.ToString();
}
return s;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.CodeDom.Compiler {
using System.Diagnostics;
using System;
using System.IO;
using System.Text;
using System.Security.Permissions;
using System.Globalization;
///
/// Provides a text writer that can indent new lines by a tabString token.
///
[PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
[PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust")]
public class IndentedTextWriter : TextWriter {
private TextWriter writer;
private int indentLevel;
private bool tabsPending;
private string tabString;
///
/// [To be supplied.]
///
public const string DefaultTabString = " ";
///
///
/// Initializes a new instance of using the specified
/// text writer and default tab string.
///
///
public IndentedTextWriter(TextWriter writer) : this(writer, DefaultTabString) {
}
///
///
/// Initializes a new instance of using the specified
/// text writer and tab string.
///
///
public IndentedTextWriter(TextWriter writer, string tabString): base(CultureInfo.InvariantCulture) {
this.writer = writer;
this.tabString = tabString;
indentLevel = 0;
tabsPending = false;
}
///
/// [To be supplied.]
///
public override Encoding Encoding {
get {
return writer.Encoding;
}
}
///
///
/// Gets or sets the new line character to use.
///
///
public override string NewLine {
get {
return writer.NewLine;
}
set {
writer.NewLine = value;
}
}
///
///
/// Gets or sets the number of spaces to indent.
///
///
public int Indent {
get {
return indentLevel;
}
set {
Debug.Assert(value >= 0, "Bogus Indent... probably caused by mismatched Indent++ and Indent--");
if (value < 0) {
value = 0;
}
indentLevel = value;
}
}
///
///
/// Gets or sets the TextWriter to use.
///
///
public TextWriter InnerWriter {
get {
return writer;
}
}
internal string TabString {
get { return tabString; }
}
///
///
/// Closes the document being written to.
///
///
public override void Close() {
writer.Close();
}
///
/// [To be supplied.]
///
public override void Flush() {
writer.Flush();
}
///
/// [To be supplied.]
///
protected virtual void OutputTabs() {
if (tabsPending) {
for (int i=0; i < indentLevel; i++) {
writer.Write(tabString);
}
tabsPending = false;
}
}
///
///
/// Writes a string
/// to the text stream.
///
///
public override void Write(string s) {
OutputTabs();
writer.Write(s);
}
///
///
/// Writes the text representation of a Boolean value to the text stream.
///
///
public override void Write(bool value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes a character to the text stream.
///
///
public override void Write(char value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes a
/// character array to the text stream.
///
///
public override void Write(char[] buffer) {
OutputTabs();
writer.Write(buffer);
}
///
///
/// Writes a subarray
/// of characters to the text stream.
///
///
public override void Write(char[] buffer, int index, int count) {
OutputTabs();
writer.Write(buffer, index, count);
}
///
///
/// Writes the text representation of a Double to the text stream.
///
///
public override void Write(double value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes the text representation of
/// a Single to the text
/// stream.
///
///
public override void Write(float value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes the text representation of an integer to the text stream.
///
///
public override void Write(int value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes the text representation of an 8-byte integer to the text stream.
///
///
public override void Write(long value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes the text representation of an object
/// to the text stream.
///
///
public override void Write(object value) {
OutputTabs();
writer.Write(value);
}
///
///
/// Writes out a formatted string, using the same semantics as specified.
///
///
public override void Write(string format, object arg0) {
OutputTabs();
writer.Write(format, arg0);
}
///
///
/// Writes out a formatted string,
/// using the same semantics as specified.
///
///
public override void Write(string format, object arg0, object arg1) {
OutputTabs();
writer.Write(format, arg0, arg1);
}
///
///
/// Writes out a formatted string,
/// using the same semantics as specified.
///
///
public override void Write(string format, params object[] arg) {
OutputTabs();
writer.Write(format, arg);
}
///
///
/// Writes the specified
/// string to a line without tabs.
///
///
public void WriteLineNoTabs(string s) {
writer.WriteLine(s);
}
///
///
/// Writes the specified string followed by
/// a line terminator to the text stream.
///
///
public override void WriteLine(string s) {
OutputTabs();
writer.WriteLine(s);
tabsPending = true;
}
///
///
/// Writes a line terminator.
///
///
public override void WriteLine() {
OutputTabs();
writer.WriteLine();
tabsPending = true;
}
///
///
/// Writes the text representation of a Boolean followed by a line terminator to
/// the text stream.
///
///
public override void WriteLine(bool value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(char value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(char[] buffer) {
OutputTabs();
writer.WriteLine(buffer);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(char[] buffer, int index, int count) {
OutputTabs();
writer.WriteLine(buffer, index, count);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(double value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(float value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(int value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(long value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(object value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(string format, object arg0) {
OutputTabs();
writer.WriteLine(format, arg0);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(string format, object arg0, object arg1) {
OutputTabs();
writer.WriteLine(format, arg0, arg1);
tabsPending = true;
}
///
/// [To be supplied.]
///
public override void WriteLine(string format, params object[] arg) {
OutputTabs();
writer.WriteLine(format, arg);
tabsPending = true;
}
///
/// [To be supplied.]
///
[CLSCompliant(false)]
public override void WriteLine(UInt32 value) {
OutputTabs();
writer.WriteLine(value);
tabsPending = true;
}
internal void InternalOutputTabs() {
for (int i=0; i < indentLevel; i++) {
writer.Write(tabString);
}
}
}
internal class Indentation {
private IndentedTextWriter writer;
private int indent;
private string s;
internal Indentation(IndentedTextWriter writer, int indent) {
this.writer = writer;
this.indent = indent;
s = null;
}
internal string IndentationString {
get {
if ( s == null) {
string tabString = writer.TabString;
StringBuilder sb = new StringBuilder(indent * tabString.Length);
for( int i = 0; i < indent; i++) {
sb.Append(tabString);
}
s = sb.ToString();
}
return s;
}
}
}
}
// 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
- FontWeight.cs
- CheckoutException.cs
- FrameworkContentElementAutomationPeer.cs
- ElementHostAutomationPeer.cs
- EntitySetBaseCollection.cs
- DocumentGrid.cs
- log.cs
- HashMembershipCondition.cs
- DependencyProperty.cs
- DiscoveryInnerClientAdhoc11.cs
- SQLDoubleStorage.cs
- Constraint.cs
- IPHostEntry.cs
- ProviderMetadataCachedInformation.cs
- FormViewInsertEventArgs.cs
- PermissionListSet.cs
- WebScriptClientGenerator.cs
- ConnectionManagementElement.cs
- DispatcherSynchronizationContext.cs
- DesignerAdRotatorAdapter.cs
- CommonDialog.cs
- DelegatingHeader.cs
- OLEDB_Enum.cs
- ValidationResult.cs
- TextTreeExtractElementUndoUnit.cs
- PointUtil.cs
- DesignerActionUIService.cs
- Receive.cs
- DetailsViewUpdatedEventArgs.cs
- LogExtentCollection.cs
- TypeDescriptionProvider.cs
- ProtectedConfigurationProviderCollection.cs
- BamlRecordHelper.cs
- ExceptionHandler.cs
- TcpServerChannel.cs
- HtmlShim.cs
- StringReader.cs
- AssociatedControlConverter.cs
- ViewManager.cs
- DesignerAdapterUtil.cs
- SerTrace.cs
- RoutedCommand.cs
- RewritingSimplifier.cs
- NativeMethods.cs
- TagMapInfo.cs
- XamlSerializer.cs
- TypeDependencyAttribute.cs
- JsonSerializer.cs
- WebEventTraceProvider.cs
- BasicCellRelation.cs
- Graphics.cs
- SiteMapNodeItemEventArgs.cs
- Keywords.cs
- ListParagraph.cs
- OLEDB_Enum.cs
- BaseProcessor.cs
- QueuePathDialog.cs
- OrthographicCamera.cs
- DependentTransaction.cs
- SerialPinChanges.cs
- DbProviderServices.cs
- InstanceContext.cs
- ComponentFactoryHelpers.cs
- WebException.cs
- SqlTriggerAttribute.cs
- XmlWriter.cs
- DeviceContext2.cs
- RelatedEnd.cs
- FontSizeConverter.cs
- SqlCommandSet.cs
- ACE.cs
- NativeMethods.cs
- ToolStripDesignerAvailabilityAttribute.cs
- VideoDrawing.cs
- ComponentDispatcher.cs
- SchemaObjectWriter.cs
- GridViewCancelEditEventArgs.cs
- InfoCardCryptoHelper.cs
- WebHttpDispatchOperationSelector.cs
- SynchronizationLockException.cs
- XmlRootAttribute.cs
- MultiPropertyDescriptorGridEntry.cs
- WindowsImpersonationContext.cs
- TransformerInfoCollection.cs
- DataControlFieldHeaderCell.cs
- IArgumentProvider.cs
- SafeRightsManagementSessionHandle.cs
- RemoteArgument.cs
- OrderedDictionary.cs
- RuleRef.cs
- XmlConverter.cs
- EditBehavior.cs
- NativeMethods.cs
- TextTreeInsertUndoUnit.cs
- XdrBuilder.cs
- TextElementAutomationPeer.cs
- ProcessStartInfo.cs
- ListItemCollection.cs
- DbConnectionPoolIdentity.cs
- FixedFlowMap.cs