add constants for names and add getDescription method

This commit is contained in:
Doug MacEachern 2005-06-16 22:17:13 +00:00
parent 61ebe669e7
commit 4fa97499bf
1 changed files with 59 additions and 8 deletions

View File

@ -9,11 +9,30 @@ import java.util.StringTokenizer;
public class OperatingSystem { public class OperatingSystem {
public static final String NAME_LINUX = "Linux";
public static final String NAME_SOLARIS = "Solaris";
public static final String NAME_HPUX = "HPUX";
public static final String NAME_AIX = "AIX";
public static final String NAME_MACOSX = "MacOSX";
public static final String NAME_FREEBSD = "FreeBSD";
public static final String NAME_WIN32 = "Win32";
public static final String NAME_OSF1 = "OSF1";
private static final int TYPE_LINUX = 0;
private static final int TYPE_SOLARIS = 1;
private static final int TYPE_HPUX = 2;
private static final int TYPE_AIX = 3;
private static final int TYPE_MACOSX = 4;
private static final int TYPE_FREEBSD = 5;
private static final int TYPE_WIN32 = 6;
private static final int TYPE_OSF1 = 7;
private static final String ETC = private static final String ETC =
System.getProperty("sigar.etc.dir", "/etc") + "/"; System.getProperty("sigar.etc.dir", "/etc") + "/";
private static OperatingSystem instance = null; private static OperatingSystem instance = null;
private int type;
private String name; private String name;
private String version; private String version;
private String arch; private String arch;
@ -39,10 +58,12 @@ public class OperatingSystem {
os.dataModel = props.getProperty("sun.arch.data.model"); os.dataModel = props.getProperty("sun.arch.data.model");
os.cpuEndian = props.getProperty("sun.cpu.endian"); os.cpuEndian = props.getProperty("sun.cpu.endian");
if (os.name.equals("Linux")) { if (os.name.equals(NAME_LINUX)) {
os.type = TYPE_LINUX;
os.getLinuxInfo(); os.getLinuxInfo();
} }
else if (os.name.indexOf("Windows") > -1) { else if (os.name.indexOf("Windows") > -1) {
os.type = TYPE_WIN32;
os.vendor = "Microsoft"; os.vendor = "Microsoft";
if (os.name.endsWith("XP")) { if (os.name.endsWith("XP")) {
os.vendorVersion = "XP"; os.vendorVersion = "XP";
@ -59,32 +80,38 @@ public class OperatingSystem {
os.name = "Win32"; os.name = "Win32";
} }
else if (os.name.equals("SunOS")) { else if (os.name.equals("SunOS")) {
os.type = TYPE_SOLARIS;
os.vendor = "Sun Microsystems"; os.vendor = "Sun Microsystems";
int ix = os.version.indexOf("."); int ix = os.version.indexOf(".");
//5.8 == solaris 8, etc. //5.8 == solaris 8, etc.
os.vendorVersion = os.version.substring(ix); os.vendorVersion = os.version.substring(ix);
os.name = "Solaris"; os.name = NAME_SOLARIS;
} }
else if (os.name.equals("HP-UX")) { else if (os.name.equals("HP-UX")) {
os.name = "HPUX"; os.type = TYPE_HPUX;
os.name = NAME_HPUX;
os.vendor = "Hewlett-Packard"; os.vendor = "Hewlett-Packard";
if (os.version.indexOf(".11.") != -1) { if (os.version.indexOf(".11.") != -1) {
os.vendorVersion = "11"; os.vendorVersion = "11";
} }
} }
else if (os.name.equals("OSF1")) { else if (os.name.equals(NAME_OSF1)) {
os.type = TYPE_OSF1;
//HP acquired DEC //HP acquired DEC
os.vendor = "Hewlett-Packard"; os.vendor = "Hewlett-Packard";
} }
else if (os.name.equals("AIX")) { else if (os.name.equals(NAME_AIX)) {
os.type = TYPE_AIX;
os.vendor = "IBM"; os.vendor = "IBM";
} }
else if (os.name.equals("Mac OS X")) { else if (os.name.equals("Mac OS X")) {
os.name = "Darwin"; os.type = TYPE_MACOSX;
os.name = NAME_MACOSX;
os.vendor = "Apple"; os.vendor = "Apple";
} }
else if (os.name.equals("FreeBSD")) { else if (os.name.equals(NAME_FREEBSD)) {
os.vendor = "FreeBSD"; os.type = TYPE_FREEBSD;
os.vendor = NAME_FREEBSD;
} }
else { else {
os.vendor = "Unknown"; os.vendor = "Unknown";
@ -100,6 +127,29 @@ public class OperatingSystem {
return instance; return instance;
} }
public String getDescription() {
switch (this.type) {
case TYPE_LINUX:
//"Red Hat 8.0"
return this.vendor + " " + this.vendorVersion;
case TYPE_SOLARIS:
//"Solaris 8"
return this.name + " " + this.vendorVersion;
case TYPE_HPUX:
//"HP-UX 11"
return this.vendorName + " " + this.vendorVersion;
case TYPE_MACOSX:
//"Mac OS X 10.4"
return this.vendorName + " " + this.version;
case TYPE_WIN32:
//"Microsoft Windows 2003"
return this.vendor + " Windows " + this.vendorVersion;
default:
//"OSF1 5.x", "AIX 5.2", "FreeBSD 5.3"
return this.name + " " + this.version;
}
}
public String getName() { public String getName() {
return this.name; return this.name;
} }
@ -255,6 +305,7 @@ public class OperatingSystem {
public static void main(String[] args) { public static void main(String[] args) {
OperatingSystem os = OperatingSystem.getInstance(); OperatingSystem os = OperatingSystem.getInstance();
System.out.println("description......" + os.getDescription());
System.out.println("name............." + os.name); System.out.println("name............." + os.name);
System.out.println("version.........." + os.version); System.out.println("version.........." + os.version);
System.out.println("arch............." + os.arch); System.out.println("arch............." + os.arch);