2002-07-22 Tim Coleman <tim@timcoleman.com>
[mono.git] / mcs / class / System.Web.Services / System.Web.Services.Description / Message.cs
1 // \r
2 // System.Web.Services.Description.Message.cs\r
3 //\r
4 // Author:\r
5 //   Tim Coleman (tim@timcoleman.com)\r
6 //\r
7 // Copyright (C) Tim Coleman, 2002\r
8 //\r
9 \r
10 using System.Collections;\r
11 using System.Web.Services;\r
12 using System.Xml.Serialization;\r
13 \r
14 namespace System.Web.Services.Description {\r
15         public sealed class Message : DocumentableItem {\r
16 \r
17                 #region Fields\r
18 \r
19                 string name;\r
20                 MessagePartCollection parts;\r
21                 ServiceDescription serviceDescription;\r
22 \r
23                 #endregion // Fields\r
24 \r
25                 #region Constructors\r
26                 \r
27                 public Message ()\r
28                 {\r
29                         name = String.Empty;\r
30                         parts = new MessagePartCollection (this);\r
31                         serviceDescription = null;\r
32                 }\r
33                 \r
34                 #endregion // Constructors\r
35 \r
36                 #region Properties\r
37 \r
38                 [XmlAttribute ("name", DataType = "NCName")]\r
39                 public string Name {\r
40                         get { return name; }\r
41                         set { name = value; }\r
42                 }\r
43 \r
44                 [XmlElement ("part")]\r
45                 public MessagePartCollection Parts {\r
46                         get { return parts; }\r
47                 }\r
48 \r
49                 public ServiceDescription ServiceDescription {\r
50                         get { return serviceDescription; }\r
51                 }\r
52 \r
53                 #endregion // Properties\r
54 \r
55                 #region Methods\r
56 \r
57                 [MonoTODO]\r
58                 public MessagePart FindPartByName (string partName)\r
59                 {\r
60                         throw new NotImplementedException ();\r
61                 }\r
62 \r
63                 [MonoTODO]\r
64                 public MessagePart[] FindPartsByName (string[] partNames) \r
65                 {\r
66                         ArrayList searchResults = new ArrayList ();\r
67 \r
68                         foreach (string partName in partNames)\r
69                                 searchResults.Add (FindPartByName (partName));\r
70 \r
71                         int count = searchResults.Count;\r
72 \r
73                         if (count == 0)\r
74                                 throw new ArgumentException ();\r
75 \r
76                         MessagePart[] returnValue = new MessagePart[count];\r
77                         searchResults.CopyTo (returnValue);\r
78                         return returnValue;\r
79                 }\r
80 \r
81                 internal void SetParent (ServiceDescription serviceDescription)\r
82                 {\r
83                         this.serviceDescription = serviceDescription;\r
84                 }\r
85 \r
86                 #endregion\r
87         }\r
88 }\r