2003-11-12 Miguel de Icaza <miguel@ximian.com>
[mono.git] / mcs / class / corlib / System / OperatingSystem.cs
1 //------------------------------------------------------------------------------\r
2 // \r
3 // System.OperatingSystem.cs \r
4 //\r
5 // Copyright (C) 2001 Moonlight Enterprises, All Rights Reserved\r
6 // \r
7 // Author:         Jim Richardson, develop@wtfo-guru.com\r
8 // Created:        Saturday, August 11, 2001 \r
9 //\r
10 //------------------------------------------------------------------------------\r
11 \r
12 using System;\r
13 using System.Globalization;\r
14 \r
15 namespace System\r
16 {\r
17         /// <summary>\r
18         /// Class representing a specific operating system version for a specific platform\r
19         /// </summary>\r
20         [Serializable]\r
21         public sealed class OperatingSystem : ICloneable\r
22         {\r
23                 private System.PlatformID itsPlatform;\r
24                 private Version itsVersion;\r
25 \r
26                 public OperatingSystem(PlatformID platform, Version version)\r
27                 {\r
28                         if(version == null)\r
29                         {\r
30                                 throw new ArgumentNullException();\r
31                         }\r
32                         \r
33                         itsPlatform = platform;\r
34                         itsVersion = version;\r
35                 }\r
36 \r
37                 /// <summary>\r
38                 /// Get the PlatformID\r
39                 /// </summary>\r
40                 public PlatformID Platform\r
41                 {\r
42                         get\r
43                         {\r
44                                 return itsPlatform;\r
45                         }\r
46                 }\r
47 \r
48                 /// <summary>\r
49                 /// Gets the version object\r
50                 /// </summary>\r
51                 public Version Version\r
52                 {\r
53                         get\r
54                         {\r
55                                 return itsVersion;\r
56                         }\r
57                 }\r
58 \r
59                 /// <summary>\r
60                 /// Return a clone of this object\r
61                 /// </summary>\r
62                 public object Clone()\r
63                 {\r
64                         return new OperatingSystem(itsPlatform, itsVersion);\r
65                 }\r
66 \r
67                 /// <summary>\r
68                 /// Return a string reprentation of this instance\r
69                 /// </summary>\r
70                 public override string ToString()\r
71                 {\r
72                         string str;\r
73                         \r
74                         switch((int) itsPlatform)\r
75                         {\r
76                         case (int) System.PlatformID.Win32NT: str = "Microsoft Windows NT"; break;\r
77                         case (int) System.PlatformID.Win32S: str = "Microsoft Win32S";  break;\r
78                         case (int) System.PlatformID.Win32Windows: str = "Microsoft Windows 98"; break;\r
79                         case 128 /* PlatformID.Unix */: str = "Unix"; break;\r
80                         default: str = Locale.GetText ("<unknown>"); break;\r
81                         }\r
82 \r
83                         return str + " " + itsVersion.ToString();\r
84                 }\r
85         }\r
86 }\r