This repository was archived by the owner on Feb 12, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 226
/
Copy pathMessage.cs
145 lines (133 loc) · 3.71 KB
/
Message.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
using System;
using System.Xml.Serialization;
namespace ThoughtWorks.CruiseControl.Remote
{
/// <summary>
/// A user-readable message.
/// </summary>
[Serializable]
[XmlRoot("message")]
public class Message
{
/// <summary>
///
/// </summary>
public enum MessageKind
{
/// <summary>
///
/// </summary>
/// <remarks></remarks>
NotDefined = 0,
/// <summary>
///
/// </summary>
/// <remarks></remarks>
Breakers = 1,
/// <summary>
///
/// </summary>
/// <remarks></remarks>
Fixer = 2,
/// <summary>
///
/// </summary>
/// <remarks></remarks>
FailingTasks = 3,
/// <summary>
///
/// </summary>
/// <remarks></remarks>
BuildStatus = 4,
/// <summary>
///
/// </summary>
/// <remarks></remarks>
BuildAbortedBy = 5,
/// <summary>
///
/// </summary>
/// <remarks></remarks>
ForceBuildPublisherFailed = 6
}
private string message;
private MessageKind messageKind;
/// <summary>
/// Initialise a new blank <see cref="Message"/>.
/// </summary>
public Message()
{ }
/// <summary>
/// Initialise a new <see cref="Message"/> with a message.
/// </summary>
/// <param name="message">The message.</param>
public Message(string message)
{
this.message = message;
this.Kind = MessageKind.NotDefined;
}
/// <summary>
/// Initialise a new <see cref="Message"/> with a message.
/// </summary>
/// <param name="message">The message</param>
/// <param name="kind">the message kind</param>
public Message(string message, MessageKind kind)
{
this.message = message;
this.Kind = kind;
}
/// <summary>
/// The text of the message.
/// </summary>
[XmlText]
public string Text
{
get { return message; }
set { message = value; }
}
/// <summary>
/// The type of message
/// </summary>
[XmlAttribute]
public MessageKind Kind
{
get { return messageKind; }
set { messageKind = value; }
}
/// <summary>
/// Returns the kind and the message text.
/// </summary>
/// <returns>The text of the message.</returns>
public override string ToString()
{
if (message == null)
return string.Empty;
else
return message;
}
/// <summary>
/// compares 2 message objects
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public override bool Equals(object obj)
{
//if obj can't be casted as Message, return false
var m = obj as Message;
if (m == null)
{
return false;
}
//compare the values
return string.Equals(this.Text, m.Text, StringComparison.CurrentCulture) && (this.Kind == m.Kind);
}
/// <summary>
/// Retrieves the hash code for this message.
/// </summary>
/// <returns></returns>
public override int GetHashCode()
{
return this.ToString().GetHashCode();
}
}
}