Merge pull request #228 from QuickJack/3e163743eda89cc8c239779a75dd245be12aee3c
[mono.git] / mcs / class / System.XML / System.Xml / XmlNodeChangedEventArgs.cs
1
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining
4 // a copy of this software and associated documentation files (the
5 // "Software"), to deal in the Software without restriction, including
6 // without limitation the rights to use, copy, modify, merge, publish,
7 // distribute, sublicense, and/or sell copies of the Software, and to
8 // permit persons to whom the Software is furnished to do so, subject to
9 // the following conditions:
10 // 
11 // The above copyright notice and this permission notice shall be
12 // included in all copies or substantial portions of the Software.
13 // 
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 using System;
23
24 namespace System.Xml
25 {
26         /// <summary>
27         /// Passed to delegates on document tree changes
28         /// </summary>
29 #if NET_2_0
30         public class XmlNodeChangedEventArgs : EventArgs
31 #else
32         public class XmlNodeChangedEventArgs
33 #endif
34         {
35                 // Private data members
36                 XmlNode _oldParent;
37                 XmlNode _newParent;
38                 XmlNodeChangedAction _action;
39                 XmlNode _node;
40 #if NET_2_0             
41                 string _oldValue;
42                 string _newValue;
43 #endif          
44
45                 // public properties
46                 public XmlNodeChangedAction Action 
47                 { 
48                         get
49                         {
50                                 return _action;
51                         }
52                 } 
53
54                 public XmlNode Node 
55                 { 
56                         get
57                         {
58                                 return _node;
59                         }
60                 } 
61
62
63                 public XmlNode OldParent 
64                 { 
65                         get
66                         {
67                                 return _oldParent;
68                         }
69                 } 
70
71
72                 public XmlNode NewParent 
73                 { 
74                         get
75                         {
76                                 return _newParent;
77                         }
78                 } 
79
80
81 #if NET_2_0
82                 public string OldValue
83                 {
84                         get
85                         {
86                                 return _oldValue != null ? _oldValue : _node.Value;
87                         }
88                 }
89                 
90
91                 public string NewValue
92                 {
93                         get
94                         {
95                                 return _newValue != null ? _newValue : _node.Value;
96                         }
97                 }
98 #endif
99
100 #if NET_2_0
101                 public
102 #else
103                 internal
104 #endif
105                 XmlNodeChangedEventArgs (
106                         XmlNode node, 
107                         XmlNode oldParent,
108                         XmlNode newParent,
109                         string oldValue,
110                         string newValue,
111                         XmlNodeChangedAction action)
112                 {
113                         _node = node;
114                         _oldParent = oldParent;
115                         _newParent = newParent;
116 #if NET_2_0                     
117                         _oldValue = oldValue;
118                         _newValue = newValue;
119 #endif                  
120                         _action = action;
121                 }
122         }
123 }