7cdd160414aa97b3f93c9317d9faad1c3e43d694
[mono.git] / mcs / class / System.XML / System.Xml / XmlCharacterData.cs
1 //
2 // System.Xml.XmlCharacterData.cs
3 //
4 // Author:
5 //   Jason Diamond <jason@injektilo.org>
6 //
7 // (C) 2002 Jason Diamond  http://injektilo.org/
8 //
9
10 using System;
11
12 namespace System.Xml
13 {
14         public abstract class XmlCharacterData : XmlLinkedNode
15         {
16                 private string data;
17
18                 #region Constructor
19
20                 protected internal XmlCharacterData (string data, XmlDocument doc)
21                         : base (doc)
22                 {
23                         if (data == null)
24                                 data = String.Empty;
25
26                         this.data = data;
27                 }
28
29                 #endregion
30                 
31                 #region Properties
32
33                 public virtual string Data {
34                         get { return data; }
35                         
36                         set { data = value; }
37                 }
38
39                 public override string InnerText {
40                         get { return data; }
41
42                         set { data = value; }
43                 }
44
45                 public virtual int Length {
46                         get { return data != null ? data.Length : 0; }
47                 }
48
49                 public override string Value {
50                         get {
51                                 if (IsReadOnly)
52                                         throw new ArgumentException ("Node is read-only.");
53                                 
54                                 return data; }
55
56                         set { data = value; }
57                 }
58
59                 #endregion
60
61                 #region Methods
62
63                 [MonoTODO]
64                 public virtual void AppendData (string strData)
65                 {
66                         throw new NotImplementedException ();
67                 }
68
69                 [MonoTODO]
70                 public virtual void DeleteData (int offset, int count)
71                 {
72                         throw new NotImplementedException ();
73                 }
74
75                 [MonoTODO]
76                 public virtual void InsertData (int offset, string strData)
77                 {
78                         throw new NotImplementedException ();
79                 }
80
81                 [MonoTODO]
82                 public virtual void ReplaceData (int offset, int count, string strData)
83                 {
84                         throw new NotImplementedException();
85                 }
86
87                 public virtual string Substring (int offset, int count)
88                 {
89                         return data.Substring (offset, count);
90                 }
91
92                 #endregion
93         }
94 }