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