]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.excel/src/org/simantics/excel/ExecEnvironment.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.excel / src / org / simantics / excel / ExecEnvironment.java
diff --git a/bundles/org.simantics.excel/src/org/simantics/excel/ExecEnvironment.java b/bundles/org.simantics.excel/src/org/simantics/excel/ExecEnvironment.java
new file mode 100644 (file)
index 0000000..b144bc3
--- /dev/null
@@ -0,0 +1,54 @@
+package org.simantics.excel;\r
+\r
+public class ExecEnvironment {\r
+\r
+    public enum OSType {\r
+        APPLE, LINUX, SUN, WINDOWS, UNKNOWN\r
+    }\r
+    \r
+    public enum ARCHType {\r
+        PPC, PPC_64, SPARC, X86, X86_64, UNKNOWN;\r
+    }\r
+    \r
+    public final OSType os;\r
+    public final ARCHType arch;\r
+\r
+    private ExecEnvironment(OSType os, ARCHType arch) {\r
+        this.os = os;\r
+        this.arch = arch;\r
+    }\r
+\r
+    public static ExecEnvironment calculate() {\r
+        return new ExecEnvironment(calculateOS(), calculateArch());\r
+    }\r
+\r
+    public static ARCHType calculateArch() {\r
+        String osArch = System.getProperty("os.arch", "");\r
+        osArch = osArch.toLowerCase();\r
+        if (osArch.equals("i386") || osArch.equals("i586") || osArch.equals("i686") || osArch.equals("x86"))\r
+            return ARCHType.X86;\r
+        if (osArch.startsWith("amd64") || osArch.startsWith("x86_64"))\r
+            return ARCHType.X86_64;\r
+        if (osArch.equals("ppc"))\r
+            return ARCHType.PPC;\r
+        if (osArch.startsWith("ppc"))\r
+            return ARCHType.PPC_64;\r
+        if (osArch.startsWith("sparc"))\r
+            return ARCHType.SPARC;\r
+        return ARCHType.UNKNOWN;\r
+    }\r
+\r
+    public static OSType calculateOS() {\r
+        String osName = System.getProperty("os.name", "");\r
+        osName = osName.toLowerCase();\r
+        if (osName.startsWith("mac os x"))\r
+            return OSType.APPLE;\r
+        if (osName.startsWith("windows"))\r
+            return OSType.WINDOWS;\r
+        if (osName.startsWith("linux"))\r
+            return OSType.LINUX;\r
+        if (osName.startsWith("sun"))\r
+            return OSType.SUN;\r
+        return OSType.UNKNOWN;\r
+    }\r
+}\r