* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / System.Web.Services / System.Web.Services.Description / Message.cs
index 1a453e477c185a25fc6e34aed78d3c293fe22091..376dc9f350288bc25aab0bf7c2e0914d283e3009 100644 (file)
@@ -6,18 +6,55 @@
 //\r
 // Copyright (C) Tim Coleman, 2002\r
 //\r
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
 \r
 using System.Collections;\r
 using System.Web.Services;\r
-\r
-namespace System.Web.Services.Description {\r
-       public sealed class Message : DocumentableItem {\r
-\r
+using System.Web.Services.Configuration;\r
+using System.Xml.Serialization;\r
+\r
+namespace System.Web.Services.Description \r
+{\r
+#if NET_2_0\r
+       [XmlFormatExtensionPoint ("Extensions")]\r
+#endif\r
+       public sealed class Message :\r
+#if NET_2_0\r
+               NamedItem\r
+#else\r
+               DocumentableItem \r
+#endif\r
+       {\r
                #region Fields\r
 \r
+#if !NET_2_0\r
                string name;\r
+#endif\r
                MessagePartCollection parts;\r
                ServiceDescription serviceDescription;\r
+#if NET_2_0
+               ServiceDescriptionFormatExtensionCollection extensions;\r
+#endif
 \r
                #endregion // Fields\r
 \r
@@ -25,7 +62,12 @@ namespace System.Web.Services.Description {
                \r
                public Message ()\r
                {\r
+#if !NET_2_0\r
                        name = String.Empty;\r
+#endif\r
+#if NET_2_0
+                       extensions = new ServiceDescriptionFormatExtensionCollection (this);\r
+#endif
                        parts = new MessagePartCollection (this);\r
                        serviceDescription = null;\r
                }\r
@@ -34,31 +76,40 @@ namespace System.Web.Services.Description {
 \r
                #region Properties\r
 \r
+#if !NET_2_0\r
+               [XmlAttribute ("name", DataType = "NCName")]\r
                public string Name {\r
                        get { return name; }\r
                        set { name = value; }\r
                }\r
+#endif\r
 \r
+               [XmlElement ("part")]\r
                public MessagePartCollection Parts {\r
                        get { return parts; }\r
-                       set { parts = value; }\r
                }\r
 \r
+//             [XmlIgnore]\r
                public ServiceDescription ServiceDescription {\r
                        get { return serviceDescription; }\r
                }\r
-\r
+
+#if NET_2_0
+               [XmlIgnore]
+               public override ServiceDescriptionFormatExtensionCollection Extensions {
+                       get { return extensions; }\r
+               }\r
+#endif
+
                #endregion // Properties\r
 \r
                #region Methods\r
 \r
-               [MonoTODO]\r
                public MessagePart FindPartByName (string partName)\r
                {\r
-                       throw new NotImplementedException ();\r
+                       return parts [partName];\r
                }\r
 \r
-               [MonoTODO]\r
                public MessagePart[] FindPartsByName (string[] partNames) \r
                {\r
                        ArrayList searchResults = new ArrayList ();\r