This commit was manufactured by cvs2svn to create branch 'mono-1-0'.
[mono.git] / mcs / class / System.Web.Services / System.Web.Services.Protocols / MimeFormatter.cs
1 // \r
2 // System.Web.Services.Protocols.MimeFormatter.cs\r
3 //\r
4 // Author:\r
5 //   Tim Coleman (tim@timcoleman.com)\r
6 //   Lluis Sanchez Gual (lluis@ximian.com)\r
7 //\r
8 // Copyright (C) Tim Coleman, 2002\r
9 //\r
10
11 //
12 // Permission is hereby granted, free of charge, to any person obtaining
13 // a copy of this software and associated documentation files (the
14 // "Software"), to deal in the Software without restriction, including
15 // without limitation the rights to use, copy, modify, merge, publish,
16 // distribute, sublicense, and/or sell copies of the Software, and to
17 // permit persons to whom the Software is furnished to do so, subject to
18 // the following conditions:
19 // 
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
22 // 
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 //
31 \r
32 using System.Web.Services;\r
33 \r
34 namespace System.Web.Services.Protocols {\r
35         public abstract class MimeFormatter {\r
36 \r
37                 #region Constructors\r
38 \r
39                 protected MimeFormatter () \r
40                 {\r
41                 }\r
42                 \r
43                 #endregion // Constructors\r
44 \r
45                 #region Methods\r
46 \r
47                 public static MimeFormatter CreateInstance (Type type, object initializer)\r
48                 {\r
49                         MimeFormatter ob = (MimeFormatter) Activator.CreateInstance (type);\r
50                         ob.Initialize (initializer);\r
51                         return ob;\r
52                 }\r
53 \r
54                 public abstract object GetInitializer (LogicalMethodInfo methodInfo);\r
55 \r
56                 public static object GetInitializer (Type type, LogicalMethodInfo methodInfo)\r
57                 {\r
58                         MimeFormatter ob = (MimeFormatter) Activator.CreateInstance (type);\r
59                         return ob.GetInitializer (methodInfo);\r
60                 }\r
61 \r
62                 public virtual object[] GetInitializers (LogicalMethodInfo[] methodInfos)\r
63                 {\r
64                         object[] initializers = new object [methodInfos.Length];\r
65                         for (int n=0; n<methodInfos.Length; n++)\r
66                                 initializers [n] = GetInitializer (methodInfos[n]);\r
67                                 \r
68                         return initializers;\r
69                 }\r
70 \r
71                 public static object[] GetInitializers (Type type, LogicalMethodInfo[] methodInfos)\r
72                 {\r
73                         MimeFormatter ob = (MimeFormatter) Activator.CreateInstance (type);\r
74                         return ob.GetInitializers (methodInfos);\r
75                 }\r
76 \r
77                 public abstract void Initialize (object initializer);   \r
78 \r
79                 #endregion // Methods\r
80         }\r
81 }