2002-02-24 Duncan Mak <duncan@ximian.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
9 using System;
10
11 namespace System.Xml
12 {
13         public class XmlQualifiedName
14         {
15                 // Constructors         
16                 public XmlQualifiedName ()
17                         : base ()
18                 {
19                 }
20
21                 public XmlQualifiedName (string name)
22                         : base ()
23                 {
24                         this.name = name;
25                 }
26
27                 public XmlQualifiedName (string name, string ns)
28                         : base ()
29                 {
30                         this.name = name;
31                         this.ns = ns;
32                 }
33
34                 // Fields
35                 public static readonly XmlQualifiedName Empty = new XmlQualifiedName ();                
36                 private string name;
37                 private string ns;
38                 
39                 // Properties
40                 public bool IsEmpty
41                 {
42                         get {
43                                 if ((name == String.Empty) && (ns == String.Empty))
44                                         return true;
45                                 else
46                                         return false;
47                         }
48                 }
49
50                 public string Name
51                 {
52                         get { return name; }
53                 }
54
55                 public string Namespace
56                 {
57                         get { return ns; }
58                 }
59
60                 // Methods
61                 public override bool Equals (object other)
62                 {
63                         if ((XmlQualifiedName) this == (XmlQualifiedName) other)
64                                 return true;
65                         else
66                                 return false;
67                 }
68
69                 [MonoTODO] public override int GetHashCode () { return 42; }
70
71                 public override string ToString ()
72                 {
73                         if (ns == null)
74                                 return name;
75                         else
76                                 return ns + ":" + name;
77                 }
78
79                 public static string ToString (string name, string ns)
80                 {
81                         if (ns == null)
82                                 return name;
83                         else                            
84                                 return ns + ":" + name;
85                 }
86
87                 // Operators
88                 public static bool operator == (XmlQualifiedName a, XmlQualifiedName b)
89                 {
90                         if ((a.Name == b.Name) && (a.Namespace == b.Namespace))
91                                 return true;
92                         else
93                                 return false;
94                 }
95
96                 public static bool operator != (XmlQualifiedName a, XmlQualifiedName b)
97                 {
98                         if (!(a == b))
99                                 return false;
100                         else
101                                 return true;
102                 }
103         }
104 }