Merge branch 'master' of http://github.com/mono/mono
[mono.git] / mcs / class / Commons.Xml.Relaxng / Commons.Xml / XmlDefaultReader.cs
1 //\r
2 // Commons.Xml.XmlDefaultReader.cs\r
3 //\r
4 // Author:\r
5 //      Atsushi Enomoto (ginga@kit.hi-ho.ne.jp)\r
6 //\r
7 // 2003 Atsushi Enomoto "No rights reserved."\r
8 //\r
9 // Copyright (c) 2004 Novell Inc.\r
10 // All rights reserved\r
11 //\r
12 // Permission is hereby granted, free of charge, to any person obtaining\r
13 // a copy of this software and associated documentation files (the\r
14 // "Software"), to deal in the Software without restriction, including\r
15 // without limitation the rights to use, copy, modify, merge, publish,\r
16 // distribute, sublicense, and/or sell copies of the Software, and to\r
17 // permit persons to whom the Software is furnished to do so, subject to\r
18 // the following conditions:\r
19 // \r
20 // The above copyright notice and this permission notice shall be\r
21 // included in all copies or substantial portions of the Software.\r
22 // \r
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
30 //\r
31 \r
32 //\r
33 // Similar to SAX DefaultHandler\r
34 //\r
35 \r
36 using System;\r
37 using System.Xml;\r
38 \r
39 namespace Commons.Xml\r
40 {\r
41         public class XmlDefaultReader : XmlReader, IXmlLineInfo\r
42         {\r
43                 XmlReader reader;\r
44                 IXmlLineInfo lineInfo;\r
45 \r
46                 public XmlDefaultReader (XmlReader reader)\r
47                 {\r
48                         this.reader = reader;\r
49                         this.lineInfo = reader as IXmlLineInfo;\r
50                 }\r
51 \r
52                 #region Properties\r
53                 // This is the only one non-overriden property.\r
54                 public XmlReader Reader {\r
55                         get { return reader; }\r
56                 }\r
57 \r
58                 public int LineNumber {\r
59                         get { return lineInfo != null ? lineInfo.LineNumber : 0; }\r
60                 }\r
61                 \r
62                 public int LinePosition {\r
63                         get { return lineInfo != null ? lineInfo.LinePosition : 0; }\r
64                 }\r
65                 \r
66                 public override XmlNodeType NodeType \r
67                 {\r
68                         get { return reader.NodeType; }\r
69                 }\r
70 \r
71                 public override string Name {\r
72                         get { return reader.Name; }\r
73                 }\r
74 \r
75                 public override string LocalName {\r
76                         get { return reader.LocalName; }\r
77                 }\r
78 \r
79                 public override string NamespaceURI {\r
80                         get { return reader.NamespaceURI; }\r
81                 }\r
82 \r
83                 public override string Prefix {\r
84                         get { return reader.Prefix; }\r
85                 }\r
86 \r
87                 public override bool HasValue {\r
88                         get { return reader.HasValue; }\r
89                 }\r
90 \r
91                 public override int Depth {\r
92                         get { return reader.Depth; }\r
93                 }\r
94 \r
95                 public override string Value {\r
96                         get { return reader.Value; }\r
97                 }\r
98 \r
99                 public override string BaseURI {\r
100                         get { return reader.BaseURI; }\r
101                 }\r
102 \r
103                 public override bool IsEmptyElement {\r
104                         get { return reader.IsEmptyElement; }\r
105                 }\r
106 \r
107                 public override bool IsDefault {\r
108                         get { return reader.IsDefault; }\r
109                 }\r
110 \r
111                 public override char QuoteChar {\r
112                         get { return reader.QuoteChar; }\r
113                 }\r
114 \r
115                 public override string XmlLang {\r
116                         get { return reader.XmlLang; }\r
117                 }\r
118 \r
119                 public override XmlSpace XmlSpace {\r
120                         get { return reader.XmlSpace; }\r
121                 }\r
122 \r
123                 public override int AttributeCount {\r
124                         get { return reader.AttributeCount; }\r
125                 }\r
126 \r
127                 public override string this [int i] {\r
128                         get { return reader [i]; }\r
129                 }\r
130 \r
131                 public override string this [string name] {\r
132                         get { return reader [name]; }\r
133                 }\r
134 \r
135                 public override string this [string localName, string namespaceURI] {\r
136                         get { return reader [localName, namespaceURI]; }\r
137                 }\r
138 \r
139                 public override bool EOF {\r
140                         get { return reader.EOF; }\r
141                 }\r
142 \r
143                 public override ReadState ReadState {\r
144                         get { return reader.ReadState; }\r
145                 }\r
146 \r
147                 public override XmlNameTable NameTable {\r
148                         get { return reader.NameTable; }\r
149                 }\r
150                 #endregion\r
151 \r
152                 #region Methods\r
153 \r
154                 public override string GetAttribute (string name)\r
155                 {\r
156                         return reader.GetAttribute (name);\r
157                 }\r
158 \r
159                 public override string GetAttribute (string localName, string namespaceURI)\r
160                 {\r
161                         return reader.GetAttribute (localName, namespaceURI);\r
162                 }\r
163 \r
164                 public override string GetAttribute (int i)\r
165                 {\r
166                         return reader.GetAttribute (i);\r
167                 }\r
168 \r
169                 public bool HasLineInfo ()\r
170                 {\r
171                         return lineInfo != null ? lineInfo.HasLineInfo () : false;\r
172                 }\r
173 \r
174                 public override bool MoveToAttribute (string name)\r
175                 {\r
176                         return reader.MoveToAttribute (name);\r
177                 }\r
178 \r
179                 public override bool MoveToAttribute (string localName, string namespaceURI)\r
180                 {\r
181                         return reader.MoveToAttribute (localName, namespaceURI);\r
182                 }\r
183 \r
184                 public override void MoveToAttribute (int i)\r
185                 {\r
186                         reader.MoveToAttribute (i);\r
187                 }\r
188 \r
189                 public override bool MoveToFirstAttribute ()\r
190                 {\r
191                         return reader.MoveToFirstAttribute ();\r
192                 }\r
193 \r
194                 public override bool MoveToNextAttribute ()\r
195                 {\r
196                         return reader.MoveToNextAttribute ();\r
197                 }\r
198 \r
199                 public override bool MoveToElement ()\r
200                 {\r
201                         return reader.MoveToElement ();\r
202                 }\r
203 \r
204                 public override void Close ()\r
205                 {\r
206                         reader.Close ();\r
207                 }\r
208 \r
209                 public override bool Read ()\r
210                 {\r
211                         return Reader.Read ();\r
212                 }\r
213 \r
214 /*\r
215                 public override string ReadString ()\r
216                 {\r
217                         return reader.ReadString ();\r
218                 }\r
219 \r
220                 public override string ReadInnerXml ()\r
221                 {\r
222                         return reader.ReadInnerXml ();\r
223                 }\r
224 \r
225                 public override string ReadOuterXml ()\r
226                 {\r
227                         return reader.ReadOuterXml ();\r
228                 }\r
229 */\r
230 \r
231                 public override string LookupNamespace (string prefix)\r
232                 {\r
233                         return reader.LookupNamespace (prefix);\r
234                 }\r
235 \r
236                 public override void ResolveEntity ()\r
237                 {\r
238                         reader.ResolveEntity ();\r
239                 }\r
240 \r
241                 public override bool ReadAttributeValue () {\r
242                         return reader.ReadAttributeValue ();\r
243                 }\r
244                 #endregion\r
245         }\r
246 }\r