File: System\Activities\Debugger\XmlWrappingReader.cs
Project: ndp\cdf\src\NetFx40\System.Activities\System.Activities.csproj (System.Activities)
// <copyright>
//   Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
 
namespace System.Activities.Debugger
{
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Xml;
    using System.Xml.Schema;
 
    internal class XmlWrappingReader : XmlReader, IXmlLineInfo, IXmlNamespaceResolver
    {
        private XmlReader baseReader;
        private IXmlLineInfo baseReaderAsLineInfo;
        private IXmlNamespaceResolver baseReaderAsNamespaceResolver;
 
        public override XmlReaderSettings Settings
        {
            get { return this.baseReader.Settings; }
        }
 
        public override XmlNodeType NodeType
        {
            get { return this.baseReader.NodeType; }
        }
 
        public override string Name
        {
            get { return this.baseReader.Name; }
        }
 
        public override string LocalName
        {
            get { return this.baseReader.LocalName; }
        }
 
        public override string NamespaceURI
        {
            get { return this.baseReader.NamespaceURI; }
        }
 
        public override string Prefix
        {
            get { return this.baseReader.Prefix; }
        }
 
        public override bool HasValue
        {
            get { return this.baseReader.HasValue; }
        }
 
        public override string Value
        {
            get { return this.baseReader.Value; }
        }
 
        public override int Depth
        {
            get { return this.baseReader.Depth; }
        }
 
        public override string BaseURI
        {
            get { return this.baseReader.BaseURI; }
        }
 
        public override bool IsEmptyElement
        {
            get { return this.baseReader.IsEmptyElement; }
        }
 
        public override bool IsDefault
        {
            get { return this.baseReader.IsDefault; }
        }
 
        public override char QuoteChar
        {
            get { return this.baseReader.QuoteChar; }
        }
 
        public override XmlSpace XmlSpace
        {
            get { return this.baseReader.XmlSpace; }
        }
 
        public override string XmlLang
        {
            get { return this.baseReader.XmlLang; }
        }
 
        public override IXmlSchemaInfo SchemaInfo
        {
            get { return this.baseReader.SchemaInfo; }
        }
 
        public override Type ValueType
        {
            get { return this.baseReader.ValueType; }
        }
 
        public override int AttributeCount
        {
            get { return this.baseReader.AttributeCount; }
        }
 
        public override bool CanResolveEntity
        {
            get { return this.baseReader.CanResolveEntity; }
        }
 
        public override bool EOF
        {
            get { return this.baseReader.EOF; }
        }
 
        public override ReadState ReadState
        {
            get { return this.baseReader.ReadState; }
        }
 
        public override bool HasAttributes
        {
            get { return this.baseReader.HasAttributes; }
        }
 
        public override XmlNameTable NameTable
        {
            get { return this.baseReader.NameTable; }
        }
 
        public virtual int LineNumber
        {
            get
            {
                return (this.baseReaderAsLineInfo == null) ? 0 : this.baseReaderAsLineInfo.LineNumber;
            }
        }
 
        public virtual int LinePosition
        {
            get
            {
                return (this.baseReaderAsLineInfo == null) ? 0 : this.baseReaderAsLineInfo.LinePosition;
            }
        }
 
        protected XmlReader BaseReader
        {
            set
            {
                this.baseReader = value;
                this.baseReaderAsLineInfo = value as IXmlLineInfo;
                this.baseReaderAsNamespaceResolver = value as IXmlNamespaceResolver;
            }
        }
 
        protected IXmlLineInfo BaseReaderAsLineInfo
        {
            get
            {
                return this.baseReaderAsLineInfo;
            }
        }
 
        public override string this[int i]
        {
            get { return this.baseReader[i]; }
        }
 
        public override string this[string name]
        {
            get { return this.baseReader[name]; }
        }
 
        public override string this[string name, string namespaceURI]
        {
            get { return this.baseReader[name, namespaceURI]; }
        }
 
        public override string GetAttribute(string name)
        {
            return this.baseReader.GetAttribute(name);
        }
 
        public override string GetAttribute(string name, string namespaceURI)
        {
            return this.baseReader.GetAttribute(name, namespaceURI);
        }
 
        public override string GetAttribute(int i)
        {
            return this.baseReader.GetAttribute(i);
        }
 
        public override bool MoveToAttribute(string name)
        {
            return this.baseReader.MoveToAttribute(name);
        }
 
        public override bool MoveToAttribute(string name, string ns)
        {
            return this.baseReader.MoveToAttribute(name, ns);
        }
 
        public override void MoveToAttribute(int i)
        {
            this.baseReader.MoveToAttribute(i);
        }
 
        public override bool MoveToFirstAttribute()
        {
            return this.baseReader.MoveToFirstAttribute();
        }
 
        public override bool MoveToNextAttribute()
        {
            return this.baseReader.MoveToNextAttribute();
        }
 
        public override bool MoveToElement()
        {
            return this.baseReader.MoveToElement();
        }
 
        public override bool Read()
        {
            return this.baseReader.Read();
        }
 
        public override void Close()
        {
            this.baseReader.Close();
        }
 
        public override void Skip()
        {
            this.baseReader.Skip();
        }
 
        public override string LookupNamespace(string prefix)
        {
            return this.baseReader.LookupNamespace(prefix);
        }
 
        public override void ResolveEntity()
        {
            this.baseReader.ResolveEntity();
        }
 
        public override bool ReadAttributeValue()
        {
            return this.baseReader.ReadAttributeValue();
        }
 
        public virtual bool HasLineInfo()
        {
            return (this.baseReaderAsLineInfo == null) ? false : this.baseReaderAsLineInfo.HasLineInfo();
        }
 
        string IXmlNamespaceResolver.LookupPrefix(string namespaceName)
        {
            return (this.baseReaderAsNamespaceResolver == null) ? null : this.baseReaderAsNamespaceResolver.LookupPrefix(namespaceName);
        }
 
        IDictionary<string, string> IXmlNamespaceResolver.GetNamespacesInScope(XmlNamespaceScope scope)
        {
            return (this.baseReaderAsNamespaceResolver == null) ? null : this.baseReaderAsNamespaceResolver.GetNamespacesInScope(scope);
        }
 
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);
            if (disposing)
            {
                if (this.baseReader != null)
                {
                    ((IDisposable)this.baseReader).Dispose();
                }
 
                this.baseReader = null;
            }
        }
    }
}