QilName.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / QIL / QilName.cs / 1305376 / QilName.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
//-----------------------------------------------------------------------------
using System; 
using System.Diagnostics; 

namespace System.Xml.Xsl.Qil { 

    /// 
    /// View over a Qil name literal.
    ///  
    /// 
    /// Don't construct QIL nodes directly; instead, use the QilFactory. 
    ///  
    internal class QilName : QilLiteral {
        private string local; 
        private string uri;
        private string prefix;

 
        //-----------------------------------------------
        // Constructor 
        //----------------------------------------------- 

        ///  
        /// Construct a new node
        /// 
        public QilName(QilNodeType nodeType, string local, string uri, string prefix) : base(nodeType, null) {
            LocalName = local; 
            NamespaceUri = uri;
            Prefix = prefix; 
            Value = this; 
        }
 

        //-----------------------------------------------
        // QilName methods
        //----------------------------------------------- 

        public string LocalName { 
            get { return this.local; } 
            set { this.local = value; }
        } 

        public string NamespaceUri {
            get { return this.uri; }
            set { this.uri = value; } 
        }
 
        public string Prefix { 
            get { return this.prefix; }
            set { this.prefix = value; } 
        }

        /// 
        /// Build the qualified name in the form prefix:local 
        /// 
        public string QualifiedName { 
            get { 
                if (this.prefix.Length == 0) {
                    return this.local; 
                }
                else {
                    return this.prefix + ':' + this.local;
                } 
            }
        } 
 
        /// 
        /// Override GetHashCode() so that the QilName can be used as a key in the hashtable. 
        /// 
        /// Does not compare their prefixes (if any).
        public override int GetHashCode() {
            return this.local.GetHashCode(); 
        }
 
        ///  
        /// Override Equals() so that the QilName can be used as a key in the hashtable.
        ///  
        /// Does not compare their prefixes (if any).
        public override bool Equals(object other) {
            QilName name = other as QilName;
            if (name == null) 
                return false;
 
            return this.local == name.local && this.uri == name.uri; 
        }
 
        /// 
        /// Implement operator == to prevent exidental referential comarison
        /// 
        /// Does not compare their prefixes (if any). 
        public static bool operator ==(QilName a, QilName b) {
            if ((object)a == (object)b) { 
                return true; 
            }
            if ((object)a == null || (object)b == null) { 
                return false;
            }
            return a.local == b.local && a.uri == b.uri;
        } 

        ///  
        /// Implement operator != to prevent exidental referential comarison 
        /// 
        /// Does not compare their prefixes (if any). 
        public static bool operator !=(QilName a, QilName b) {
            return !(a == b);
        }
 
        /// 
        /// Return the QilName in this format: "{namespace}prefix:local-name". 
        /// If the namespace is empty, return the QilName in this truncated format: "local-name". 
        /// If the prefix is empty, return the QilName in this truncated format: "{namespace}local-name".
        ///  
        public override string ToString() {
            if (prefix.Length == 0) {
                if (uri.Length == 0)
                    return local; 

                return string.Concat("{", uri, "}", local); 
            } 

            return string.Concat("{", uri, "}", prefix, ":", local); 
        }
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
//-----------------------------------------------------------------------------
using System; 
using System.Diagnostics; 

namespace System.Xml.Xsl.Qil { 

    /// 
    /// View over a Qil name literal.
    ///  
    /// 
    /// Don't construct QIL nodes directly; instead, use the QilFactory. 
    ///  
    internal class QilName : QilLiteral {
        private string local; 
        private string uri;
        private string prefix;

 
        //-----------------------------------------------
        // Constructor 
        //----------------------------------------------- 

        ///  
        /// Construct a new node
        /// 
        public QilName(QilNodeType nodeType, string local, string uri, string prefix) : base(nodeType, null) {
            LocalName = local; 
            NamespaceUri = uri;
            Prefix = prefix; 
            Value = this; 
        }
 

        //-----------------------------------------------
        // QilName methods
        //----------------------------------------------- 

        public string LocalName { 
            get { return this.local; } 
            set { this.local = value; }
        } 

        public string NamespaceUri {
            get { return this.uri; }
            set { this.uri = value; } 
        }
 
        public string Prefix { 
            get { return this.prefix; }
            set { this.prefix = value; } 
        }

        /// 
        /// Build the qualified name in the form prefix:local 
        /// 
        public string QualifiedName { 
            get { 
                if (this.prefix.Length == 0) {
                    return this.local; 
                }
                else {
                    return this.prefix + ':' + this.local;
                } 
            }
        } 
 
        /// 
        /// Override GetHashCode() so that the QilName can be used as a key in the hashtable. 
        /// 
        /// Does not compare their prefixes (if any).
        public override int GetHashCode() {
            return this.local.GetHashCode(); 
        }
 
        ///  
        /// Override Equals() so that the QilName can be used as a key in the hashtable.
        ///  
        /// Does not compare their prefixes (if any).
        public override bool Equals(object other) {
            QilName name = other as QilName;
            if (name == null) 
                return false;
 
            return this.local == name.local && this.uri == name.uri; 
        }
 
        /// 
        /// Implement operator == to prevent exidental referential comarison
        /// 
        /// Does not compare their prefixes (if any). 
        public static bool operator ==(QilName a, QilName b) {
            if ((object)a == (object)b) { 
                return true; 
            }
            if ((object)a == null || (object)b == null) { 
                return false;
            }
            return a.local == b.local && a.uri == b.uri;
        } 

        ///  
        /// Implement operator != to prevent exidental referential comarison 
        /// 
        /// Does not compare their prefixes (if any). 
        public static bool operator !=(QilName a, QilName b) {
            return !(a == b);
        }
 
        /// 
        /// Return the QilName in this format: "{namespace}prefix:local-name". 
        /// If the namespace is empty, return the QilName in this truncated format: "local-name". 
        /// If the prefix is empty, return the QilName in this truncated format: "{namespace}local-name".
        ///  
        public override string ToString() {
            if (prefix.Length == 0) {
                if (uri.Length == 0)
                    return local; 

                return string.Concat("{", uri, "}", local); 
            } 

            return string.Concat("{", uri, "}", prefix, ":", local); 
        }
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK