2003-01-26 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
[mono.git] / mcs / class / System.XML / System.Xml / XmlText.cs
1 //
2 // System.Xml.XmlText
3 //
4 // Author:
5 //   Jason Diamond <jason@injektilo.org>
6 //
7 // (C) 2002 Jason Diamond  http://injektilo.org/
8 //
9
10 using System;
11 using System.Xml.XPath;
12
13 namespace System.Xml
14 {
15         public class XmlText : XmlCharacterData
16         {
17                 #region Constructor
18
19                 protected internal XmlText (string strData, XmlDocument doc) : base(strData, doc)
20                 {
21                 }
22
23                 #endregion
24
25                 #region Properties
26
27                 public override string LocalName 
28                 {
29                         get { return "#text"; }
30                 }
31
32                 public override string Name {
33                         get { return "#text"; }
34                 }
35
36                 public override XmlNodeType NodeType {
37                         get { return XmlNodeType.Text; }
38                 }
39
40                 internal override XPathNodeType XPathNodeType {
41                         get {
42                                 return XPathNodeType.Text;
43                         }
44                 }
45                 
46                 public override string Value {
47                         get { return Data; }
48                         set { Data = value; }
49                 }
50
51                 #endregion
52
53                 #region Methods
54
55                 public override XmlNode CloneNode (bool deep)
56                 {
57                         XmlText newText = OwnerDocument.CreateTextNode(Data);
58                         if(deep)
59                         {
60                                 foreach(XmlNode child in ChildNodes)
61                                         newText.AppendChild(child.CloneNode(deep));
62                         }
63                         return newText;
64                 }
65
66                 public virtual XmlText SplitText (int offset)
67                 {
68                         XmlText next = OwnerDocument.CreateTextNode(this.Data.Substring(offset));
69                         DeleteData(offset, Data.Length - offset);
70                         this.ParentNode.InsertAfter(next, this);
71                         return next;
72                 }
73
74                 public override void WriteContentTo (XmlWriter w) {}
75
76                 public override void WriteTo (XmlWriter w)
77                 {
78                         w.WriteString (Data);
79                 }
80
81                 #endregion
82         }
83 }