package org.hwbot.bench.service; import org.hwbot.bench.prime.HardwareService; import org.hwbot.bench.prime.Log; public class HardwareServiceFactory { public static String OS = System.getProperty("os.name").toLowerCase(); public static String OS_ARCH = System.getProperty("os.arch").toLowerCase(); protected String version = this.getClass().getPackage().getImplementationVersion(); protected boolean libraryLoaded; protected boolean processorSpeedReliable; private HardwareServiceFactory() { } public static boolean isWindows() { return (OS.indexOf("win") >= 0); } public static boolean isArm() { return (OS_ARCH.indexOf("arm") >= 0); } public static boolean isMac() { return (OS.indexOf("mac") >= 0); } public static boolean isUnix() { return (OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0); } public static HardwareService getInstance() { if (isWindows()) { Log.debug("Using windows hardware detection."); return new HardwareServiceWindows(); } if (isUnix()) { Log.debug("Using linux hardware detection."); return new HardwareServiceLinux(); } if (isMac()) { Log.debug("Using mac hardware detection."); return new HardwareServiceMac(); } Log.error("Can not detect hardware on platforn ", OS + " - " + OS_ARCH); return new HardwareServiceUnknown(); } }