File: UI\MobileControls\Adapters\EmptyTextWriter.cs
Project: ndp\fx\src\mit\System\Web\System.Web.Mobile.csproj (System.Web.Mobile)
//------------------------------------------------------------------------------
// <copyright file="EmptyTextWriter.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>                                                                
//------------------------------------------------------------------------------
 
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Globalization;
using System.IO;
using System.Text;
using System.Web.Mobile;
using System.Web.UI.MobileControls;
 
#if COMPILING_FOR_SHIPPED_SOURCE
namespace System.Web.UI.MobileControls.ShippedAdapterSource
#else
namespace System.Web.UI.MobileControls.Adapters
#endif    
 
{
    /*
     * EmptyTextWriter class. Like the Null text writer, but keeps track of whether
     * anything was written or not.
     *
     * Copyright (c) 2000 Microsoft Corporation
     */
    
    [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
    internal class EmptyTextWriter : TextWriter
    {
#if UNUSED_CODE
        bool _writeCalled = false;
#endif
        bool _nonWhiteSpaceWritten = false;
 
        internal EmptyTextWriter() : base(CultureInfo.CurrentCulture)
        {
        }
 
#if UNUSED_CODE
        internal /*public*/ bool WriteCalled
        {
            get
            {
                return _writeCalled;
            }
        }
#endif
 
        internal /*public*/ bool NonWhiteSpaceWritten
        {
            get
            {
                return _nonWhiteSpaceWritten;
            }
        }
 
        internal /*public*/ void Reset()
        {
#if UNUSED_CODE
            _writeCalled = false;
#endif
            _nonWhiteSpaceWritten = false;
        }
 
        public override void Write(string s) 
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (!IsWhiteSpace(s))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void Write(bool value) 
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override void Write(char value) 
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override void Write(char[] buffer) 
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (!IsWhiteSpace(buffer))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void Write(char[] buffer, int index, int count) 
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (!IsWhiteSpace(buffer, index, count))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void Write(double value)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override void Write(float value)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override void Write(int value)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override void Write(long value)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override void Write(Object value)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (value != null && !IsWhiteSpace(value.ToString()))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void Write(String format, Object arg0)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (!IsWhiteSpace(format) && !IsWhiteSpace(String.Format(CultureInfo.CurrentCulture, format, arg0)))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void Write(String format, Object arg0, Object arg1)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (!IsWhiteSpace(format) && !IsWhiteSpace(String.Format(CultureInfo.CurrentCulture, format, arg0, arg1)))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void Write(String format, params object[] arg)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (!IsWhiteSpace(format) && !IsWhiteSpace(String.Format(CultureInfo.CurrentCulture, format, arg)))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void WriteLine(string s) 
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (!IsWhiteSpace(s))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void WriteLine(bool value) 
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override void WriteLine(char value) 
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override void WriteLine(char[] buffer) 
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (!IsWhiteSpace(buffer))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void WriteLine(char[] buffer, int index, int count) 
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (!IsWhiteSpace(buffer, index, count))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void WriteLine(double value)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override void WriteLine(float value)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override void WriteLine(int value)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override void WriteLine(long value)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override void WriteLine(Object value)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (value != null && !IsWhiteSpace(value.ToString()))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void WriteLine(String format, Object arg0)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (!IsWhiteSpace(format) && !IsWhiteSpace(String.Format(CultureInfo.CurrentCulture, format, arg0)))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void WriteLine(String format, Object arg0, Object arg1)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (!IsWhiteSpace(format) && !IsWhiteSpace(String.Format(CultureInfo.CurrentCulture, format, arg0, arg1)))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void WriteLine(String format, params object[] arg)
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            if (!IsWhiteSpace(format) && !IsWhiteSpace(String.Format(CultureInfo.CurrentCulture, format, arg)))
            {
                _nonWhiteSpaceWritten = true;
            }
        }
 
        public override void WriteLine(UInt32 value) 
        {
#if UNUSED_CODE
            _writeCalled = true;
#endif
            _nonWhiteSpaceWritten = true;
        }
 
        public override Encoding Encoding 
        {
            get 
            {
                return Encoding.UTF8;
            }
        }
 
        private static bool IsWhiteSpace(String s)
        {
            if (s == null)
            {
                return true;
            }
 
            for (int i = s.Length - 1; i >= 0; i--)
            {
                char c = s[i];
                if (c != '\r' && c != '\n' && !Char.IsWhiteSpace(c))
                {
                    return false;
                }
            }
 
            return true;
        }
 
        private static bool IsWhiteSpace(char[] buffer)
        {
            if (buffer == null)
            {
                return true;
            }
 
            return IsWhiteSpace(buffer, 0, buffer.Length);
        }
 
        private static bool IsWhiteSpace(char[] buffer, int index, int count)
        {
            if (buffer == null)
            {
                return true;
            }
 
            for (int i = 0; i < count; i++)
            {
                char c = buffer[index + i];
                if (c != '\r' && c != '\n' && !Char.IsWhiteSpace(c))
                {
                    return false;
                }
            }
 
            return true;
        }
    }
 
}