From 74b642844dd228af2b50e56311ad83f0f4fccc4f Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Wed, 2 Jan 2019 16:37:47 +0100 Subject: [PATCH] Utils: Use enum for caching of operating system too. --- .../main/java/org/bitcoinj/core/Utils.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/core/Utils.java b/core/src/main/java/org/bitcoinj/core/Utils.java index 10b529e5..6ccc748e 100644 --- a/core/src/main/java/org/bitcoinj/core/Utils.java +++ b/core/src/main/java/org/bitcoinj/core/Utils.java @@ -554,7 +554,12 @@ public class Utils { ANDROID, OPENJDK, ORACLE_JAVA } + private enum OS { + LINUX, WINDOWS, MAC_OS + } + private static Runtime runtime = null; + private static OS os = null; static { String runtimeProp = System.getProperty("java.runtime.name").toLowerCase(Locale.US); if (runtimeProp == null) @@ -567,6 +572,18 @@ public class Utils { runtime = Runtime.ORACLE_JAVA; else log.info("Unknown java.runtime.name '{}'", runtimeProp); + + String osProp = System.getProperty("os.name").toLowerCase(Locale.US); + if (osProp == null) + os = null; + else if (osProp.contains("linux")) + os = OS.LINUX; + else if (osProp.contains("win")) + os = OS.WINDOWS; + else if (osProp.contains("mac")) + os = OS.MAC_OS; + else + log.info("Unknown os.name '{}'", runtimeProp); } public static boolean isAndroidRuntime() { @@ -582,14 +599,14 @@ public class Utils { } public static boolean isLinux() { - return System.getProperty("os.name").toLowerCase().contains("linux"); + return os == OS.LINUX; } public static boolean isWindows() { - return System.getProperty("os.name").toLowerCase().contains("win"); + return os == OS.WINDOWS; } public static boolean isMac() { - return System.getProperty("os.name").toLowerCase().contains("mac"); + return os == OS.MAC_OS; } }