add constants for names and add getDescription method
This commit is contained in:
parent
61ebe669e7
commit
4fa97499bf
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue