Updates referencesource to .NET 4.7
[mono.git] / mcs / class / referencesource / System.Xml / System / Xml / Core / ValidatingReaderNodeData.cs
1 //------------------------------------------------------------------------------
2 // <copyright file="ValidatingReaderNodeData.cs" company="Microsoft">
3 //     Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 // <owner current="true" primary="true">Microsoft</owner> 
6 //------------------------------------------------------------------------------
7
8 using System;
9 using System.IO;
10 using System.Text;
11 using System.Collections;
12 using System.Xml.Schema;
13 using System.Diagnostics;
14 using System.Globalization;
15
16 namespace System.Xml {
17
18     internal class ValidatingReaderNodeData {
19         string                  localName;
20         string                  namespaceUri;
21         string                  prefix;
22         string                  nameWPrefix;
23
24         string                  rawValue;
25         string                  originalStringValue;  // Original value
26         int                     depth;
27         AttributePSVIInfo       attributePSVIInfo;  //Used only for default attributes
28         XmlNodeType             nodeType;
29        
30         int                     lineNo;
31         int                     linePos;
32         
33         public ValidatingReaderNodeData() {
34             Clear(XmlNodeType.None);
35         }
36         
37         public ValidatingReaderNodeData(XmlNodeType nodeType) {
38             Clear(nodeType);
39         }
40
41         public string LocalName {
42             get {
43                 return localName;
44             }
45             set {
46                 localName = value;
47             }
48         }
49
50         public string Namespace {
51             get {
52                 return namespaceUri;
53             }
54             set {
55                 namespaceUri = value;
56             }
57         }
58
59         public string Prefix {
60             get {
61                 return prefix;
62             }
63             set {
64                 prefix = value;
65             }
66         }
67         
68         public string GetAtomizedNameWPrefix(XmlNameTable nameTable) {
69             if (nameWPrefix == null) {
70                 if (prefix.Length == 0 ) {
71                     nameWPrefix = localName;
72                 }
73                 else {
74                     nameWPrefix = nameTable.Add ( string.Concat (prefix,":", localName));
75                 }
76             }
77             return nameWPrefix;
78         }
79
80         public int Depth {
81             get {
82                 return depth;
83             }
84             set {
85                 depth = value;
86             }
87         }
88
89         public string RawValue {
90             get {
91                 return rawValue;
92             }
93             set {
94                 rawValue = value;
95             }
96         }
97
98         public string OriginalStringValue {
99             get {
100                 return originalStringValue;
101             }
102             set {
103                 originalStringValue = value;
104             }
105         }
106
107         public XmlNodeType NodeType {
108             get {
109                 return nodeType;
110             }
111             set {
112                 nodeType = value;
113             }
114         }
115         
116         public AttributePSVIInfo AttInfo {
117             get {
118                 return attributePSVIInfo;
119             }
120             set {
121                 attributePSVIInfo = value;
122             }
123         }
124         
125         public int LineNumber {
126             get {
127                 return lineNo;
128             }
129         }
130         
131         public int LinePosition {
132             get {
133                 return linePos;
134             }
135         }
136
137         internal void Clear( XmlNodeType nodeType ) {
138             this.nodeType = nodeType;
139             localName = string.Empty;
140             prefix = string.Empty;
141             namespaceUri = string.Empty;
142             rawValue = string.Empty;
143             if (attributePSVIInfo != null) {
144                 attributePSVIInfo.Reset();
145             }
146             nameWPrefix = null;
147             lineNo = 0;
148             linePos = 0;
149         }
150
151         internal void ClearName() {
152             localName = string.Empty;
153             prefix = string.Empty;
154             namespaceUri = string.Empty;
155         }
156         
157         internal void SetLineInfo( int lineNo, int linePos ) {
158             this.lineNo =  lineNo;
159             this.linePos = linePos;
160         }
161
162         internal void SetLineInfo( IXmlLineInfo lineInfo ) {
163             if (lineInfo != null) {
164                 this.lineNo =  lineInfo.LineNumber;
165                 this.linePos = lineInfo.LinePosition;
166             }
167         }
168
169         internal void SetItemData(string localName, string prefix, string ns, string value) {
170             this.localName = localName;
171             this.prefix = prefix;
172             namespaceUri = ns;
173             rawValue = value;
174         }
175         
176         internal void SetItemData(string localName, string prefix, string ns, int depth) {
177             this.localName = localName;
178             this.prefix = prefix;
179             namespaceUri = ns;
180             this.depth = depth;
181             rawValue = string.Empty;
182         }
183
184         internal void SetItemData(string value) {
185             SetItemData(value, value);
186         }
187
188         internal void SetItemData(string value, string originalStringValue) {
189             rawValue = value;
190             this.originalStringValue = originalStringValue;
191         }
192     }
193 }