OS name
/* * OSName.java * * Copyright (C) 2009 Francisco Gmez Carrasco * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * Report bugs or new features to: flikxxi@gmail.com * */ //package com.softenido.core.util; /** * * @author franci */ public class OSName { // string for os.name property only few tested private static final String DARWIN = "darwin"; private static final String MAC = "mac"; private static final String MAC_OS_X = "mac os x"; private static final String OPENBSD = "openbsd"; private static final String LINUX = "linux"; // tested private static final String SOLARIS = "solaris"; private static final String SUNOS = "sunos"; // tested private static final String FREEBSD = "freebsd"; private static final String WINDOWS = "windows"; // tested private static final String WINDOWS_98 = "windows 98"; private static final String WINDOWS_98SE = "windows 98se"; private static final String WINDOWS_ME = "windows me"; private static final String WINDOWS_2000 = "windows 2000"; private static final String WINDOWS_XP = "windows xp"; // tested private static final String WINDOWS_VISTA = "windows vista"; // tested private static final String WINDOWS_CE = "windows ce"; private static final String OS_NAME = "os.name"; private final boolean linux; private final boolean solaris; private final boolean freebsd; private final boolean openbsd; private final boolean macos; private final boolean macosx; private final boolean posix; private final boolean windows; private final boolean windows98; private final boolean windows98SE; private final boolean windowsME; private final boolean windows2000; private final boolean windowsXP; private final boolean windowsVista; private final boolean windowsCE; private final boolean unknown; public static final OSName os = getInstance(System.getProperty(OS_NAME)); private final String name; public OSName(String osName) { name = osName; osName = osName.toLowerCase(); boolean _linux = false; boolean _solaris = false; boolean _freebsd = false; boolean _openbsd = false; boolean _macos = false; boolean _macosx = false; boolean _posix = false; boolean _windows = false; boolean _windows98 = false; boolean _windows98SE = false; boolean _windowsME = false; boolean _windows2000 = false; boolean _windowsXP = false; boolean _windowsVista = false; boolean _windowsCE = false; boolean _unknown = false; if (osName.startsWith(LINUX)) { _linux = true; _posix = true; } else if (osName.equals(SOLARIS) || osName.equals(SUNOS)) { _solaris = true; _posix = true; } else if (osName.startsWith(FREEBSD)) { _freebsd = true; _posix = true; } else if (osName.startsWith(OPENBSD)) { _openbsd = true; _posix = true; } else if (osName.startsWith(MAC) || osName.startsWith(DARWIN)) { _macos = true; _posix = true; _macosx = osName.startsWith(MAC_OS_X); } else if (osName.startsWith(WINDOWS)) { _windows = true; if (osName.equals(WINDOWS_XP)) { _windowsXP = true; } else if (osName.equals(WINDOWS_VISTA)) { _windowsVista = true; } else if (osName.startsWith(WINDOWS_2000)) { _windows2000 = true; } else if (osName.startsWith(WINDOWS_CE)) { _windowsCE = true; } else if (osName.startsWith(WINDOWS_ME)) { _windowsME = true; } else if (osName.startsWith(WINDOWS_98SE)) { _windows98SE = true; } else if (osName.startsWith(WINDOWS_98)) { _windows98 = true; } } else { _unknown = true; } this.linux = _linux; this.solaris = _solaris; this.freebsd = _freebsd; this.openbsd = _openbsd; this.macos = _macos; this.macosx = _macosx; this.posix = _posix; this.windows = _windows; this.windows98 = _windows98; this.windows98SE = _windows98SE; this.windowsME = _windowsME; this.windows2000 = _windows2000; this.windowsXP = _windowsXP; this.windowsVista = _windowsVista; this.windowsCE = _windowsCE; this.unknown = _unknown; } public static OSName getInstance() { return os; } public static OSName getInstance(String osName) { return new OSName(osName); } public boolean isFreebsd() { return freebsd; } public boolean isLinux() { return linux; } public boolean isMacos() { return macos; } public boolean isMacosx() { return macosx; } public boolean isOpenbsd() { return openbsd; } public boolean isPosix() { return posix; } public boolean isSolaris() { return solaris; } public boolean isUnknown() { return unknown; } public boolean isWindows() { return windows; } public boolean isWindowsCE() { return windowsCE; } public boolean isWindowsXP() { return windowsXP; } public boolean isWindows2000() { return windows2000; } public boolean isWindows98() { return windows98; } public boolean isWindows98SE() { return windows98SE; } public boolean isWindowsME() { return windowsME; } public boolean isWindowsVista() { return windowsVista; } public String getName() { return name; } }