2002-06-12 Duncan Mak <duncan@ximian.com>
[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 { return data; }
51
52                         set {
53                                 if (IsReadOnly)
54                                         throw new ArgumentException ("Node is read-only.");
55
56                                 data = value;
57                         }
58                 }
59
60                 #endregion
61
62                 #region Methods
63
64                 [MonoTODO]
65                 public virtual void AppendData (string strData)
66                 {
67                         throw new NotImplementedException ();
68                 }
69
70                 [MonoTODO]
71                 public virtual void DeleteData (int offset, int count)
72                 {
73                         throw new NotImplementedException ();
74                 }
75
76                 [MonoTODO]
77                 public virtual void InsertData (int offset, string strData)
78                 {
79                         throw new NotImplementedException ();
80                 }
81
82                 [MonoTODO]
83                 public virtual void ReplaceData (int offset, int count, string strData)
84                 {
85                         throw new NotImplementedException();
86                 }
87
88                 public virtual string Substring (int offset, int count)
89                 {
90                         return data.Substring (offset, count);
91                 }
92
93                 #endregion
94         }
95 }