Updates referencesource to .NET 4.7
[mono-project.git] / mcs / class / referencesource / System.Data.SqlXml / System / Xml / Xsl / QIL / WhitespaceRule.cs
blob914f12963d3e6e06dac91fdf262af6691ec4192e
1 //------------------------------------------------------------------------------
2 // <copyright file="WhitespaceRule.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 // </copyright>
5 // <owner current="true" primary="true">Microsoft</owner>
6 // <owner current="false">Microsoft</owner>
7 //------------------------------------------------------------------------------
9 using System.Diagnostics;
10 using System.IO;
11 using System.Xml.Xsl.Runtime;
13 namespace System.Xml.Xsl.Qil {
14 /// <summary>
15 /// Data structure for storing whitespace rules generated by xsl:strip-space and xsl:preserve-space
16 /// </summary>
17 internal class WhitespaceRule {
18 private string localName;
19 private string namespaceName;
20 private bool preserveSpace;
22 /// <summary>
23 /// Allow derived classes to construct empty whitespace rule.
24 /// </summary>
25 protected WhitespaceRule() {
28 /// <summary>
29 /// Construct new whitespace rule.
30 /// </summary>
31 public WhitespaceRule(string localName, string namespaceName, bool preserveSpace) {
32 Init(localName, namespaceName, preserveSpace);
35 /// <summary>
36 /// Initialize whitespace rule after it's been constructed.
37 /// </summary>
38 protected void Init(string localName, string namespaceName, bool preserveSpace) {
39 this.localName = localName;
40 this.namespaceName = namespaceName;
41 this.preserveSpace = preserveSpace;
44 /// <summary>
45 /// Local name of the element.
46 /// </summary>
47 public string LocalName {
48 get { return localName; }
49 set { localName = value; }
52 /// <summary>
53 /// Namespace name (uri) of the element.
54 /// </summary>
55 public string NamespaceName {
56 get { return namespaceName; }
57 set { namespaceName = value; }
60 /// <summary>
61 /// True, if this element is whitespace-preserving.
62 /// False, if this element is whitespace-stripping.
63 /// </summary>
64 public bool PreserveSpace {
65 get { return preserveSpace; }
68 /// <summary>
69 /// Serialize the object to BinaryWriter.
70 /// </summary>
71 public void GetObjectData(XmlQueryDataWriter writer) {
72 Debug.Assert(this.GetType() == typeof(WhitespaceRule), "Serialization of WhitespaceRule subclasses is not implemented");
73 // string localName;
74 writer.WriteStringQ(localName);
75 // string namespaceName;
76 writer.WriteStringQ(namespaceName);
77 // bool preserveSpace;
78 writer.Write(preserveSpace);
81 /// <summary>
82 /// Deserialize the object from BinaryReader.
83 /// </summary>
84 public WhitespaceRule(XmlQueryDataReader reader) {
85 // string localName;
86 this.localName = reader.ReadStringQ();
87 // string namespaceName;
88 this.namespaceName = reader.ReadStringQ();
89 // bool preserveSpace;
90 this.preserveSpace = reader.ReadBoolean();