more class status updates:
[mono.git] / mcs / tools / corcompare / MissingEvent.cs
1 // Mono.Util.CorCompare.MissingEvent
2 //
3 // Author(s):
4 //   Nick Drochak (ndrochak@gol.com)
5 //
6 // (C) 2001-2002 Nick Drochak
7
8 using System;
9 using System.Reflection;
10 using System.Xml;
11
12 namespace Mono.Util.CorCompare {
13
14         /// <summary>
15         ///     Represents a class event that is completely missing
16         /// </summary>
17         /// <remarks>
18         ///     created by - Nick
19         ///     created on - 2/24/2002 10:43:57 PM
20         /// </remarks>
21         class MissingEvent : MissingProperty {
22                 // e.g. <method name="Equals" status="missing"/>
23                 public MissingEvent (MemberInfo infoMono, MemberInfo infoMS) : base (infoMono, infoMS) {}
24                 MissingMethod mmRaise;
25
26                 public override string Type {
27                         get {
28                                 return "event";
29                         }
30                 }
31                 /// <summary>
32                 /// a place holder for the method used to set the value of this property
33                 /// </summary>
34                 public virtual MissingMethod RaiseMethod
35                 {
36                         get { return mmRaise; }
37                         set
38                         {
39                                 if (mmRaise != null)
40                                         m_nodeStatus.SubChildren (mmRaise.Status);
41                                 mmRaise = value;
42                                 if (mmRaise != null)
43                                         m_nodeStatus.AddChildren (mmRaise.Status);
44                         }
45                 }
46
47                 public override XmlElement CreateXML (XmlDocument doc)
48                 {
49                         XmlElement eltMember = base.CreateXML (doc);
50
51                         if (mInfoMono != null && mmRaise != null)
52                         {
53                                 XmlElement eltAccessors = (XmlElement) eltMember.SelectSingleNode ("accessors");
54                                 if (eltAccessors == null)
55                                 {
56                                         eltAccessors = doc.CreateElement ("accessors");
57                                         eltMember.AppendChild (eltAccessors);
58                                 }
59
60                                 if (mmRaise != null)
61                                 {
62                                         XmlElement eltRaise = mmRaise.CreateXML (doc);
63                                         eltAccessors.AppendChild (eltRaise);
64                                 }
65                         }
66                         return eltMember;
67                 }
68         }
69 }