2002-06-21 Ajay kumar Dwivedi <adwiv@yahoo.com>
[mono.git] / mcs / class / System.XML / System.Xml / XmlQualifiedName.cs
1 //
2 // System.Xml.XmlQualifiedName.cs
3 //
4 // Author: Duncan Mak (duncan@ximian.com)
5 //               
6 // (C) Ximian, Inc.
7 // 
8 // Modified: 
9 //              21st June 2002 : Ajay kumar Dwivedi (adwiv@yahoo.com)
10
11 using System;
12
13 namespace System.Xml
14 {
15         public class XmlQualifiedName
16         {
17                 // Constructors         
18                 public XmlQualifiedName ()
19                         : this (string.Empty, string.Empty)
20                 {
21                 }
22
23                 public XmlQualifiedName (string name)
24                         : this (name, string.Empty)
25                 {
26                 }
27
28                 public XmlQualifiedName (string name, string ns)
29                         : base ()
30                 {
31                         this.name = name;
32                         this.ns = ns;
33                 }
34
35                 // Fields
36                 public static readonly XmlQualifiedName Empty = new XmlQualifiedName ();                
37                 private string name;
38                 private string ns;
39                 
40                 // Properties
41                 public bool IsEmpty
42                 {
43                         get {
44                                 if ((name == String.Empty) && (ns == String.Empty))
45                                         return true;
46                                 else
47                                         return false;
48                         }
49                 }
50
51                 public string Name
52                 {
53                         get { return name; }
54                 }
55
56                 public string Namespace
57                 {
58                         get { return ns; }
59                 }
60
61                 // Methods
62                 public override bool Equals (object other)
63                 {
64                         if(!(other is XmlQualifiedName))
65                                 return false;
66
67                         if ((XmlQualifiedName) this == (XmlQualifiedName) other)
68                                 return true;
69                         else
70                                 return false;
71                 }
72
73                 public override int GetHashCode () 
74                 { 
75                         return unchecked (name.GetHashCode() + ns.GetHashCode()); 
76                 }
77
78                 public override string ToString ()
79                 {
80                         if (ns == null)
81                                 return name;
82                         else
83                                 return ns + ":" + name;
84                 }
85
86                 public static string ToString (string name, string ns)
87                 {
88                         if (ns == string.Empty)
89                                 return name;
90                         else                            
91                                 return ns + ":" + name;
92                 }
93
94                 // Operators
95                 public static bool operator == (XmlQualifiedName a, XmlQualifiedName b)
96                 {
97                         if((Object)a == null || (Object)b == null)
98                                 return false;
99
100                         if ((a.Name == b.Name) && (a.Namespace == b.Namespace))
101                                 return true;
102                         else
103                                 return false;
104                 }
105
106                 public static bool operator != (XmlQualifiedName a, XmlQualifiedName b)
107                 {
108                         if (a == b)
109                                 return false;
110                         else
111                                 return true;
112                 }
113         }
114 }